2016年8月11〜18日、夏休み(+1日有休)まるまる中国の深圳と香港に滞在してきました。

このうち15〜17日、チームラボ高須さんと現地企業の協力で行われている「ニコ技深圳観察会(英語ではShenzhen High Tour)」に参加してきました。

この観察会は、最近「ハードウェアのシリコンバレー」と言われたり「秋葉原を30倍にしたような電気街がある」と言われたりしている深圳にて、「現地集合解散、参加者がみんなネットに感想を公開することを前提にしている形の大人の社会科見学」です。

詳細は高須さんの本、まとめページをご覧いただくといいです。
『メイカーズのエコシステム 新しいモノづくりがとまらない。』(NextPublishing) 高須 正和 (Amazon)
ニコ技深圳観察会 まとめ (ポータル)

というわけで、レポート書いていきます!
今回は深圳という街がなぜものづくり界隈で注目されているのかの説明や、自分自身のツアー参加のきっかけを書いていきます。

実際に訪問した場所の具体的な説明はまた別記事で書きますので、具体的な内容が知りたい方はそちらをご覧ください。

 

深圳のなにがすごいの?

深圳は日本語読みで「シンセン」、中国語読みで「シェンジェン(Shenzhen)」という名前の、香港のとなりにある街です。

海に面している&(先に発展していた)香港のとなりという地の利を活かして、鄧小平が1980年代に経済特区に指定、そこから急速に発展してきた都市です。

日本だと、大手製造メーカーの工場がたくさんある、というイメージが強いかと思います。
もちろんそうした面も現在進行形だと思いますが、最近この深圳が注目されているのは、「ただの工場たくさんエリアだと思ってたのに、イノベーションの中心になってるっぽい」からです。

seeedMakeblockDJIといったメイカー(趣味でものをつくる人や、それが高じて仕事になってしまったような人)たちに人気な若い会社や、
世界で最初かつ最大のハードウェアアクセラレータ(ベンチャー企業のビジネスを後押しする組織)HAX
がこの街にそろっています。

また、それらの「有名どころ」の周りには、無数の加工会社、アセンブリ工場、試験の受託会社、卸売業者などによって、世界一(らしい)のサプライチェーンがかたちづくられています。

ちょっと郊外?の街なかで見つけた加工屋さん。(緑の布には「栄養 朝食 ミルクティー デザート」と書いてあるが、それらが販売されているようには見えない)

 

深圳は、設計し、材料を集め、加工し、組み立て、試験を行い、売る。というものづくりの一連の流れを世界で最もすばやく行える場所になっていて、世界中の「ものをつくりたい人」がこの場所をめざして来るという状況が生まれています。

さらに、この状況に目をつけた中国政府(深圳市政府?)が、この街にベンチャーインキュベーション施設や、複数のデザインハウスで一棟まるごと埋め尽くされているビルなんかをバンバンつくったりしていて、深圳のものづくりのプレーヤーはどんどん増えているようです。
(デザインハウス:デザインのアウトソーシングを請け負ったりする会社。日本の「デザイン事務所」とは少し雰囲気が変わるんじゃないかと思います。)

今回訪問させていただいたデザインハウス inDare
「一棟まるごとデザインハウスビル」Sino-Finnish Design Parkに入居している。このビルは、その名のとおりフィンランド政府(?)も協賛してつくったみたいです。

 

こうしたものづくりに関わる組織や人間がかかわり合ってつくりだされているのが、上記高須さんの本のタイトルでもある「メイカーズのエコシステム」です。

生き物のエコシステム(生態系)のように、それぞれがそれぞれの仕事をすることで、全体としてものづくりの流れが生まれています。

このエコシステムを実際に現地で見聞きするというのが、このツアーなのです。

エコシステムといえば、seeedで会社の説明をしてくれたShuyangさんが以下のようなことを言っていたのが印象的でした。

「(seeedに競合はいるのか?という参加者の方からの質問に対して)いるかもしれないけれど、気にしていない。ひとつのケーキを取り合うんじゃなく、そのケーキを大きくするために協力するべき。」

深圳のものづくりのプレーヤーたちは、みんなでこのエコシステムを育てていこうという意識を持って仕事をしているんだろうなぁと感じられるご回答でした。

 

 

ちょっと待って、日本でも同じことができるんじゃないか?

一方で、浜松(浜松町じゃないよ)で製造業に携わっている自分からすると、浜松でも、家や会社から車で行ける範囲に各種販者さんも加工屋さんも製品組み立ててくれる会社もあるし、工業技術センター的な施設に行けばちゃんとした試験機も貸してもらえる。浜松でも同じことができるんじゃないか?とも感じます。
日本の他の工業地帯に住んでいる方も同じように思うかもしれません。

ただし、こんなふうに感じるのは自分が“ちゃんとした”会社に所属してものづくりをしているからなのかもしれないとも思いました。
10年、20年の取り引きがあって、ある程度のロット数が見込めるからなのかもしれません。

よし!会社を建ててものづくりベンチャーをやろう!と思った人がいたときに、浜松のエコシステムはそれを受け入れられるでしょうか?

もっと言えば、ビジネスではなく趣味でものづくりをしているメイカーを受け入れられるでしょうか?

これは加工屋さんや工場の人たちの気持ちの問題というよりは、seeedHAXのような、ものづくりベンチャーと加工屋さん・工場とのあいだの橋渡し的存在がそのエコシステムのなかにいるのかいないのかという問題な気がします。

海外のものづくりベンチャーが深圳にやってきて、そこで自分たちのつくりたいものをつくってくれる取引先を見つけるのは、もちろんとても大変なことだと思います。
しかし、そこにseeedHAX、また次の投稿で書くJENESISが入って、よい取引先を見つけるサポートをしてくれる。
そういった環境が、おそらく世界でもっとも整っているのが深圳なのだと思います。

なので、浜松もハード的な要素は揃っているのでしょうが、ソフト的な要素において深圳はやはり優れているのだと言えます。

ちなみにこれはあくまでちらっと深圳に行った(かつ、浜松もまだ3年目の)自分の感想なので、「いやいやハード的にも深圳はあなたが思っているよりもっともっとすごいよ」という意見もあるかもしれません。
このあたりは高須さんの本JENESIS 藤岡さんの章を読むのがおすすめです。

また、日本だと板金屋さんの海内工業などがメイカー向けのビジネスをやっています。
seeedHAXのような“メイカー向け”企業ではなく、加工屋さんが自ら、ものづくりベンチャー・メイカーとの橋渡しの役割を担ってくれるのが日本式になってくるのかもしれません。

 

 

なぜ参加?

どうでもいいかもしれませんが、参加のきっかけを書きます。自分が書きたいので!

深圳はぼくの、another skyなんですよぉぉぉぉぉぉおおおおおお!!!!!!!!

ぼくはいまから6年前の2010年、大学3年の夏の3ヶ月間、深圳の嘉兰图设计(英語名Newplan)という会社でインターンシップを行っていたのです。

ここは上述したようなデザインハウスでして、そこでプロダクトデザインを学ばせていただいていました。

スケッチの描き方やRhinocerosの使い方から始まって、デザインハウスの仕事の進め方をここで教えてもらいました。

たった3ヶ月ではありましたが、中国と日本のデザインのちがいだとか、ちょうど尖閣諸島問題が起きたときだったので政治と歴史の話だとか、いろんなことを考えて、現地の人と話して、すごくいい経験になりました。当時は毎日帰りたがっていましたが。笑(主にいわゆる“海外水まわり事情”によるホームシック)

165160_1749591020889_6939946_n当時のようす

 

このインターンシップのとき、自分はプロダクトデザインをやっていきたいという気持ちだったのですが、このインターンの直前に行った世界を変えるデザイン展、帰国後に読んだヴィクター・パパネックの『生きのびるためのデザイン』、2011年東日本大震災、大学4年から入った田中浩也研(慶應SFC)等々の影響で、興味の対象がデザインからデジタル・ファブリケーションやパーソナル・ファブリケーションといった方面にだんだんと移ってきました。

つまりは、自分のつくりたいものを外から中まで自分でつくれるようになりたいという気持ちが湧いてきたのでした。

それから大学で電子工作を学んだり、3Dプリンタ、3D切削機、レーザーカッター等の工作機械の使い方を覚えたりしていろいろ好きなものをつくり、そしていまはその3Dプリンタや3D切削機をつくるメカ屋として働いています(英語と小論文で大学に入ったのに人生なにが起こるかわからない)。

そんなかんじで数年間中国とは縁のない生活をしていたのですが、2年前のある日、会社の休み時間中になんとなくmaker faire関連のページを見ていたら、maker faire 深圳の記事があるじゃないですか。

え、中国でmaker faireやってるの??
で、え、深圳?!
あの深圳?!
上海とか北京じゃなくて、広州でもなくて、深圳?!?!

と、画面を3度見ぐらいしました。

それから調べれば調べるほど、出てくる出てくる「深圳のものづくりがすごい!」という記事。

この記事とか。

David Liは、それは中国的なオープンソースなのだと言っています。カウンターカルチャー的なアイデアによるものではなく、むしろ必要に迫られた製造のためのオープンなアプローチです。

※ それ:山寨(シャンジャイ)のこと。中国ではパクリ商品のことをこのように呼ぶ。

面白すぎて、完全にしびれました。
あのころデザインをやりたいと思っていた人間として、完全に「まちがったもの」としかとらえていなかった山寨を、中国ものづくり界のオープン性の象徴としてとらえている…!!!!!

なにその考え方おもしろすぎーーーーーーーィィィィィィィィィィィイイイイイイイ!!!!!!

これは完全に深圳が自分のことを呼んでいる!

と思いました。

そのあと当然の成り行きでニコ技深圳観察会参加者のブログを見つけ、最初に高須さんにメールしたのが2014年8月。
なかなか会社の休みと合わず、2年経ってやっと念願かなったりというわけでした。

 


当時お世話になった友人たちと夕食

 

ツアー後には6年前すごくよくしてくれた友人たちと再会して、みんなけっこうもうお金を稼いでるんだろうけど、あえてあのころごはんを食べていたローカルな場所に連れていってくれました。

みんな当時深圳大学の学生だったので、深圳大学の近くです。

ガンガン発展していく深圳ですが、この深圳大学のまわりはあんまり変わってなくて、もう懐かしくて懐かしくて…。(友人の話によればこのエリアにも再開発の影が落ちてきているようですが)

今回6年ぶりに深圳に行って、深圳に飛び込んだ6年前の自分に負けないように、自分のつくりたいものをどんどんつくって、自分のやりたいことをどんどんやっていこうと、あらためて思うことができました。

次はMaker Faire深圳に行きたいな〜!

 

ニコ技深圳観察会レポート(2) 動画で綴る深圳ものづくりの現場レポート編 につづく

DSC03024

ArduinoをAVRライター(ISP)として使い、ATtiny85にプログラムを書き込む。
(昨日FabLab浜松でAVRISP mkIIを借りて、ATtiny85にブートローダを書き込み、プログラムを書き込んでいましたが、今日家でプログラムを書き込もうとして自分がmkIIを持っていないことに気づいた、という状況です。)

Arduino Board:  Arduino UNO
Arduino Software:  Arduino 1.6.4
マイコン:  ATtiny85
PC:  mac OSX 10.9.5

ツール / 書込装置 で
ArduinoISP
を選んでいたら、
avrdude: Error: Could not find USBtiny device (0x2341/0x49)
というエラーで書き込めず。

書込装置を
Arduino as ISP
にしたら書き込めました。

わかりづら!!!

http://highlowtech.org/?p=1706
これを見ながらやりました。
ここで使われている10 uFのコンデンサは手元になかったので、なしでやってみましたが書き込めました。
本当はつけた方がいいみたいです。

1797497_10204896138064526_9096364330600019088_n
(伊勢ギークフェア2014出展時の写真)

ブロック型学習リモコン「Remote Blocks」です。

テレビやエアコンのリモコンの信号を「コピー」して使うことができる「学習リモコン」というものがありますが、
それをブロック型にしたものです。

好きなボタンの種類(十字キー、上下キーなど)のブロックを選び、つなぎあわせ、各ボタンに好きなリモコン信号を覚えさせることで、自分の好きなリモコンをつくることができます。

上記の写真の、ボタンがなにもついていないブロックに赤外線受光モジュールと赤外線LEDがついており、そのブロックにボタンのついたブロックをつなぎあわせていきます。
ボタンがなにもついていないブロックには赤外線受光モジュールと赤外線LED、ボタン電池(LR44 3つ)、主電源、信号の送受信中に光るLEDが含まれています。
ボタンがついているブロックには、それぞれマイコン(ATmega328P)が含まれており、それぞれのボタンの信号を覚えておくようになっています。

ブロックとブロックは、銅箔テープを貼った磁石でくっつけます。
磁石が4つありますが、それぞれ
・GND
・4.5V
・赤外線LED用出力ピン
・赤外線受光モジュール用入力ピン
となっています。
このとき、上の写真でいうと、ワンボタンブロックのボタンを押して、このボタンに割り当てられていた信号を出力したとき、銅箔テープを通って、十字キーブロックの出力ピンに電圧がかかることになってしまいます。
これを防ぐために、出力ピン用の銅箔とマイコンのあいだにはダイオードをはさんでいます。

マイコンのプログラミングはArduino IDE 1.0.5
基板の設計はEagle
基板の切削はRoland MODELA MDX-20 + fabmodules
筐体の設計はRhinoceros
筐体の制作はレーザーカッター(@TAKE-SPACE(FabLab浜松)
で行っています。


今後の課題

・電池がすぐ切れるので省電力化したい。
・小型化したい。
・ATmega328Pではなくてもっと小さくて安いマイコンを使いたい。
・秋月で買った赤外線LED、指向性が強くテレビやエアコンの受光部にまっすぐ向けないと反応しない。もっとラフにリモコンを持っても反応するようにしたい。
・浜松市北区新都田にあるローランドディージーという会社のMDX-540という3次元切削機でもっとかっこいい筐体をつくりたい。
・ブロックとブロックの連結部分は磁石だと心もとないので、イヤホンプラグ・ジャックなどを用いて、物理的にもっとしっかりとつながるようにしたい。複数のブロックをつなげても、一本のリモコンとして持てるようにしたい。


ソースコード(Arduino IDE 1.0.5)

#define IR_DATA_SIZE 768
byte ir_data[IR_DATA_SIZE];
unsigned int ir_index;
#define PIN_LED 13
#define PIN_IR_IN 9
#define PIN_IR_OUT 10
#define PIN_SWITCH 8 /* 5/6/7/8 */

unsigned long duration;
boolean flagShort, flagLong = false;

void setup(){
pinMode(PIN_IR_IN, INPUT);
pinMode(PIN_IR_OUT, OUTPUT);
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_SWITCH, INPUT);
}

unsigned int analog_count = 0;
void loop(){

duration = pulseIn(PIN_SWITCH, HIGH, 10000000);

if (0 < duration && duration < 1000000){ // under 1 second flagShort = true; }else if(duration >= 3000000){ // of and over 3 seconds
flagLong = true;
}

if(flagLong == true){
digitalWrite(PIN_LED, true);
ir_read(PIN_IR_IN);
digitalWrite(PIN_LED, false);

flagLong = false;
}
if(flagShort == true){
digitalWrite(PIN_LED, true);
ir_write(PIN_IR_OUT);
digitalWrite(PIN_LED, false);

flagShort = false;
}
}

void ir_read(byte ir_pin){
unsigned int i, j;
for(i = 0; i < IR_DATA_SIZE; i++){ ir_data[i] = 0; } unsigned long now, last, start_at; boolean stat; start_at = micros(); while(stat = digitalRead(ir_pin)){ if(micros() – start_at > 2500000) return;
}
start_at = last = micros();
for(i = 0; i < IR_DATA_SIZE; i++){ for(j = 0; ; j++){ if(stat != digitalRead(ir_pin)) break; if(j > 65534) return;
}
now = micros();
ir_data[i] = (now – last)/100;
last = now;
stat = !stat;
}
}

void ir_print(){
unsigned int i;
for(i = 0; i < IR_DATA_SIZE; i++){
Serial.print(ir_data[i]);
if(ir_data[i] < 1) break;
Serial.print(“,”);
}
Serial.println();
}

void ir_write(byte ir_pin){
unsigned int i;
unsigned long interval_sum, start_at;
interval_sum = 0;
start_at = micros();
for(i = 0; i < IR_DATA_SIZE; i++){
if(ir_data[i] < 1) break;
interval_sum += ir_data[i] * 100;
if(i % 2 == 0){
while(micros() – start_at < interval_sum){
digitalWrite(ir_pin, true);
delayMicroseconds(6);
digitalWrite(ir_pin, false);
delayMicroseconds(8);
}
}
else{
while(micros() – start_at < interval_sum);
}
}
}


参考

橋本商会 http://shokai.org/blog/archives/8012
(こちらのソースコードをほぼそのまま使わせていただきました!ありがとうございます。)

@eiKatou Blog http://eikatou.net/blog/2012/07/1796/

赤外線リモコンの通信フォーマット http://elm-chan.org/docs/ir_format.html

ATmega328Pのヒューズ設定に関して。
以下問題ありませんでした。

UNO用ヒューズ書き込み をしたあと、 Duemilanove用ヒューズ再書き込み
Duemilanove用ヒューズ書き込み をしたあと、 UNO用ヒューズ再書き込み


Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05

Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

(http://www.codingwithcody.com/2011/04/arduino-default-fuse-settings/)

IMG_6728
ATmega328P-PU

IMG_6732
Arduino UNOにさし込む。
(※ 別の種類のArduino(Duemilanoveなど)でArduino UNO用のブートローダ書き込み(&ヒューズ書き込み)、ということもできます。その反対も。)

IMG_6730
さし込むとき、向きをまちがえないこと。
はしの半円の切り欠きを外側に。

IMG_6731
ちなみに外すときは、マイナスドライバーやキリ、ピンセットなどを使って丁寧に(できるだけ垂直に)外します。
そうしないとマイコンの足が曲がります。

IMG_6734
Arduino UNOとAVR ISP mkIIをこのようにつなぐ。
Arduino UNOのUSBケーブルも、AVR ISP mkIIのUSBケーブルも両方PCにつなぐ。
(通信はAVR ISP mkIIだけ行っていればokですが、ATmega328P-PUに給電する必要があるため、Arduino UNOのUSBケーブルもつなぎます)
このあたりのピンマッピングが気になる場合は「Arduino ICSP pin mapping」と検索。

IMG_6735
AVR ISP mkIIのLEDが緑に点灯していたら接続okの意味。
(だめなときは赤で点灯します → ① Arduino UNOとAVR ISP mkII両方のUSBケーブルがPCにささっているか確認 ② コネクタの向きが正しいか確認 ③ ATmega328P-PUをArduino UNOのボードに取り付ける向きが正しいか確認)

scrn0
Arduino IDEを開く
ツール / マイコンボード / Arduino UNO を選択

scrn1
ツール / 書込装置 / AVRISP mkII を選択

scrn2
ツール / ブートローダを書き込む をクリック。
AVR ISP mkIIのLEDが緑色やオレンジ色に点灯、中のほうの緑色のLEDが点滅します。
しばらくしてArduino IDEに「ブートローダの書き込みが完了しました」という表示が出たら完了です。
なにかスケッチを書き込んでみて、正しく動作するか確認してみてください。

今週もいろいろ描いて機構を考えました。
img20131104_18194700 img20131104_18192143img20131104_18184814 img20131104_18181212 img20131104_18171590 img20131104_18162985 img20131104_18160950 img20131104_18154295

仕様が決まりました。
img20131104_18202155img20131104_19195626merged

五十嵐 悠紀さんの
Beady: Interactive Beadwork Design and Construction
を読みました。

Yuki Igarashi, Takeo Igarashi and Jun Mitani. Beady: Interactive Beadwork Design and Construction. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2012), Volume 31, Issue 4, Article No. 49, Los Angels, USA, August 2012. PDF

Yuki Igarashi, Takeo Igarashi and Jun Mitani. “Beady: Interactive Beadwork Design and Construction” . ACM SIGGRAPH Asia 2011 Technical Sketch, Hong Kong, Dec. 2011. PDF (Interactive modeling only.)

五十嵐 悠紀,五十嵐 健夫,三谷 純:「インタラクティブなビーズデザインと制作支援」, 第19回インタラクティブシステムとソフトウェアに関するワークショップ (WISS2011), pp.48-53,京都天橋立, 2011年12月1-3日. PDF (Interactive modeling only.)

http://www.geocities.jp/igarashi_lab/beady/index-j.html

メモです。
(まちがっている点もあるかもしれません)

ビーズのつくりかた(レシピ)は、レシピ本などではこういうふうに2次元で表される。

http://allabout.co.jp/gm/gc/210807/2/より引用)

ある形状を構成するためのビーズを1本の糸で通せるかという問題は、
このビーズを頂点ととらえたグラフのハミルトンパスを探すという問題に置換できる。
が、あるグラフにハミルトンパスがあるかどうかを判定するのはNP完全。

そこで、そのかわりに、枝付きのspanning treeをつくる。
(spanning tree=スパニング木。スパニングツリーで検索してしまうと、ネットワーク用語のスパニングツリーがたくさん出てきてしまう)
スパニング木 http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%91%E3%83%8B%E3%83%B3%E3%82%B0%E6%9C%A8
ビーズ細工という特徴から、それでもできちゃうということみたい。

ちなみにこのCADでは、ビーズの部分は立体物の頂点ではなく面としてとらえられる。
その面を通る線(論文ではオレンジ色で表されている部分)をface stripと呼んでいるみたい。

つまりそのface stripに枝をつくる。

清水くんの発表
水野先生「ガチでやりたかったら、かばん芯(プラ板)っていうのをハンズで買って、表地と裏地ではさんで縫う。
もっと上のものになると、3次元成型のかばん芯とかもある。」

右増し目
ふつうに編む
その目をさらに編む
これをくりかえす
なお、表編みをする場合は裏編みで目を増やし、
裏編みをする場合は表編みで目を増やしてから編んでいく、で統一。
(表編みのときに表編みで増やしてもたぶん大丈夫だけど、なんとなく)

左増し目
目の下の部分をひろい、左手の棒針にかける
その目で編む
あたらしく編まれた目の下の部分をひろい、左手の棒針にかける
その目で編む
これをくりかえす

右減らし目
減らしたいところまで伏せ目をする

左減らし目
(メリヤス針を用いるとやりやすい)
左端から2目めを1目めのなかに通す
3目めを、いま1目めのなかに通した2目めのなかに通す
これを減らしたいところまでくりかえす

編み図生成

田中先生のつくったvoxelizerをほんの少しいじり、
バイナリデータを保存しておく配列の中身をtextファイルとして保存できるようにした。
(PrintWriterを使う)

https://docs.google.com/file/d/0BxRcKtV–DLXSUQ1RGpnN0k4eEk/edit?usp=sharing
(Processing 1.5.1にて動作確認)

たとえばresolution12でvoxelizeした場合、以下のようなバイナリデータが生成された
(わかりやすいように、たとえばresoluiton12の場合、12字で改行、12行でさらに改行されるようになっている)

000000000000
000001100000
001111111100
001111111111
001111111111
011111111111
011111111111
000111111100
000011111100
000000000000
000000000000
000000000000

000000000000
000001111000
001111111110
001111000111
001100000001
001100000001
001110000111
000111000110
000011111100
000000000000
000000000000
000000000000

000000000000
000001111000
001111101110
011111000011
011100000001
011000000001
011100000011
001111000110
000011111100
000001110000
000000000000
000000000000

000000000000
000001111100
011111001110
111000000011
110000000001
110000000001
111000000011
011110000110
000011011100
000001110000
000000000000
000000000000

000000000000
000001111100
011111101110
110000000011
100000000011
100000000001
110000000011
011110000110
000011111100
000001110000
000000000000
000000000000

000000000000
000000111000
011111111110
111111000110
100000000011
100000000011
110000000011
011111111110
000011111100
000000000000
000000000000
000000000000

000000000000
011000000000
111111111100
111111111110
100001000110
100000000110
111111101110
011111111110
000000000000
000000000000
000000000000
000000000000

000000000000
111000000000
111100000000
101111111100
100111111100
100111111100
111111111100
000110111000
000000000000
000000000000
000000000000
000000000000

000000000000
010000000000
111000000000
101100000000
100100000000
100100000000
111100000000
011000000000
001000000000
000000000000
000000000000
000000000000

000000000000
000000000000
111000000000
111100000000
111100000000
111111000000
111111000000
011011000000
011000000000
011000000000
011000000000
000000000000

000000000000
000000000000
000000000000
000000000000
000000000000
001111000000
011111100000
011011100000
011000100000
011000000000
011000000000
001000000000

000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
000011000000
000011100000
011000100000
011000000000
011000000000
001000000000

 

これを編んでいこうと思います。
ちなみにバイナリデータにしてわかったが、中空のvoxelizeになっているので、
編みの場合はここを密実になるように編んでいく。
(例: 1111000111は1111111111にする)

3Dの描画

import processing.opengl.*;

size(500, 500, OPENGL);
pushMatrix();
translate(100, 100);
box(100, 100, 100);
popMatrix();

もしくは

size(500, 500, P3D);
pushMatrix();
translate(100, 100);
box(100, 100, 100);
popMatrix();

 
 
 

マウスのスクロールを取得
http://wiki.processing.org/w/Wheel_mouse

 
 
 

配列の要素をテキストファイルとして保存

宣言
PrintWriter writer;

 

void setup() { } 内
writer = createWriter("xyzarrays.txt");

 

たとえばこういうかんじにする


void keyPressed(){
  if(key == 's'){
    for(int k = 1; k<=resolution; k = k + 1){
      for(int j = 1; j<=resolution; j = j + 1){
        for(int i = 1; i<=resolution; i = i + 1){
          if(i!=resolution){
            writer.print(xyzarrays[i-1][j-1][k-1]);
          }else{ //i==resolution
            writer.println(xyzarrays[i-1][j-1][k-1]);
        }
        }
      }
    }
    writer.flush();
    writer.close();
  }
}