CAD をつかってランプシェードをデザインするとしたら,通常はその CAD に用意されたツールを駆使して自由にかたちをつくっていくだろう. しかし,私は「ランプシェードを構成するそれぞれの曲線はどこからくるのか?」 とかんがえてしまうので,こういうデザイン法はしっくりこない. いわゆるジェネラティブ・デザイン (generative design) においては,比較的単純なプログラムや数式から,もののかたちが生成される. かたちは単純な場合もあるが,複雑なかたちであっても,できるだけ単純なプログラムや数式からつくられるほうがよいとかんがえられる. 「偉大なものはすべて単純なり」という思想だ.
3D 印刷による透明なランプシェードをつくるとき,私は「螺旋走査線 3D 印刷法」をつかっている. 現在,この方法によってオブジェクトをつくるには,そのかたちをいわゆる CAD ではなくて,プログラムによってあたえる必要がある. そうする必要があるのは,透明ランプシェードのようなオブジェクトにおいては,かたちだけでなくて フィラメントをどのようにつみあげていくかによって,その性質 (ランプシェードにおいては光の散乱や陰のできかた) がかわってくるからだ. 従来の CAD ではかたちだけしか指定することはできないから,それをつかうかわりに Python 言語によるプログラムをつかって,かたちとフィラメントのつみあげかたとをあわせて指定する. そのため,かたちについても CAD のような静的なやりかたではなくて,ジェネラティブな (生成的な,したがって動的な) やりかたで指定する.
ジェネラティブ・デザインのためには Processing というプログラミング言語が使用されることが多いが,Processing によるプログラミングと同様に,この 3D 印刷用のプログラミングも ジェネラティブ・デザイン向きだということができる. プログラムによってあたえられる比較的かぎられた手続きや比較的少数のパラメタによって,かたちがつくられる. 単純なプログラムや数式から複雑なかたちがつくられるフラクタルのようなかたちもおもしろいが,単純なかたちをうまくいかすこともひとつの方法だ. これまで球をもとにしたかたちを追究してきたが,それは,いきなり複雑なかたちを導入するのでなく,まずは球という単純なかたちからはじめたかったからだ.