アルゴリズミックデザイン学習への拡大

最近はPython学習の方向が一気に分散し、まとまった進化はまだ見られないままなので、noteへの記録をつい怠っていた。
CheckiOは中断したままだ。

まず、参考書を新しくする度に、必ずCLASS絡みで躓いてその先へ行けなくなってしまう、という行き詰まり感があった。
この辺りが脳みその限界かもしれない。だが、このままでは埒が明かないので、言語学習はとりあえず脇に置き、別アプローチでのPython学習を模索することにした。

1. アルゴリズムの学習
模索と言うのは実は後付けで、ある日久しぶりに立ち寄った本屋での衝動買いがきっかけだった。買ってみた後で、この別アプローチは必要なことかもしれないと思った。

4冊目の参考書「Pythonで学ぶアルゴリズムとデータ構造」

これまでは ”出たとこ勝負” でコードを書いてきたが、今後は効率よく筋道立ててシステマティックに考えられるような方法論等の習得を図り、もう少しマトモなプログラマを目指したい。
結構分厚い本なのでなかなか読み進まないのだが、最初の1/4頁は当たり前のこと過ぎて退屈で仕方がない。「線形検索」あたりからやっと専門書っぽくなってきた。今ここ。

2. Rhinoceros × Python
それと並行して、コンピュテーショナルデザインというキーワードを最近知ったのをきっかけに、別の学習をしている。

5冊目の参考書「Rhinoceros×Python」

コンピュテーショナルデザインとは、アルゴリズミックなデザイン手法で、建築系から発している概念のようである。そもそも僕は、ちっとも再就職のアテがないのでこれまでのキャリアに見切りをつけてプログラマに望みを繋ごうとしている、プロダクトデザイナーが本職の人間だが、建築系にはほぼ全く通じてないので知らなかった。ただ、アンテナを張ってなかったのは反省すべき点。なぜなら、僕がこれまで手足のように使ってきた3Dモデル設計ツールのRhinocerosに、すでにPythonが組み込まれており、エディタもろとも使える状態にあったからだ(ただしPythonのバージョンは2.7)。さらに言えば、デザインのCMF(色・素材・仕上げ)の検討やプロモーション表現などに使う3DCGツールとして僕が利用していたCinema4Dにも、Pythonスクリプトを組み込める。いずれも全く灯台下暗しであった。
これらの従来のプロダクトデザインツールにPythonを組み合わせ、コンピュテーショナルデザインというスキルを新たに武装することで、お仕事ゲットに繋げられるかもしれない。少なくとも、Pythonお家芸のデータ解析辺りの大海原に漕ぎ出すよりは、過去の経験を活かせるし、はるかに目標を定めやすい。問題は、この新分野にどれほどのニーズがあるかということと、これを使って僕ならではのどんな価値が生み出せるのか? だが、それはおいおい考えていこうと思う。
今はRhinocerosをPythonコードで操る基礎的手法の習得中。

3. Rhinoceros × Grasshopper
「コンピュテーショナルデザイン」というキーワードを知るそもそものきっかけは就活だった。
Rhinocerosでの開発環境は多様で、実はPython以外にもRhino-Scriptという専用スクリプトと、プラグインでGrasshopperというGAE (Graphical Algorithm Editor) が用意されている。実は建築系ではこのRhino × Grasshopperコンビがコンピュテーショナルデザインにおける主流ツールとなりつつあることを、面接オファーが来た企業から教えられたのだ。僕はこの時点でGrasshopperの経験がゼロだったため結局断られてしまい、チャンスを逃してしまった。
NURBSの自由曲面を自在に操れるRhinocerosは建築には到底向かないと思っていたので、この分野で注目を浴びていたのは意外だった。今はこのGrasshopperも習得を進めている。そもそもPythonなどを知らなくともアルゴリズミックデザインを簡易に実現するのがGAEの役割なので、比較的容易に習得できそうだが、具体的で実践的な使いこなしが課題となりそうだ。

6冊目の参考書「コンピュテーショナル・モデリング入門から応用」

Python学習からは離れているが、GrasshopperにもPythonを埋め込めるし、考え方の根本は共通点が多いので同類の学習対象と捉えている。
以下は最近のスタディのGrasshopper画面。遠い昔に提案したことのあるスピードメータのGUIアイデアを再現してみた。針の動きに合わせて目盛りの文字サイズが動的に変化する。動作サンプル動画を添付した。

画像1


この記事が気に入ったらサポートをしてみませんか?