アトラクタを可視化する不思議な WebGL デモ! Fluctuating Repetition
数学的な理解はちょっとむずかしそうだけど
今回ご紹介するのは、WebGL によってアトラクタを描画する面白いデモ作品です。
数学を専攻したことがない私の貧弱な知識では、細かいところが残念ながら解説できそうにないのですが、そんな私が見ても、とてもおもしろいデモ作品だなと感じさせてくれます。
方程式に使われているいくつかの値を変化させることで、様々な図形や模様が見えてくるという不思議な作品となっています。
値を少しずつ変えながら値をマッピングする
今回のデモが数学的にどのような意味を持つものなのかは、先程も書いたとおりで私にはちょっとよくわからなかったのですが……
仕組みとしては、方程式に与えるパラメータを少しずつ変化させながら、その計算結果を次々と頂点の座標としてマッピングしていくという、アトラクタの一種だと思います。
なんとなく、マンデルブロ集合なんかの計算にやり方が似ている気がしました。こういう時に数学ちゃんと勉強しておけばよかったと思いますね……
方程式に与えるパラメータは、その全てをスライダーによって操作することができるようになっています。
また、XYZ の各軸に対して、スケーリングが自由に行えるようになっているので、縦横に拡大したり縮小したりといったことが行えます。当然、奥行きである Z についても操作が行えるので、これを利用するとより立体感のある見た目にすることもできます。
たとえば、上の画像の様子をそのまま Z 拡大した状態が以下のようになります。
拡大してみると、また違った雰囲気になりますね。
そのほか、a から f までの方程式の各係数を変化させてみると、驚くほど規則的な、美しい模様が出てくることがあります。
こちらのサイトは WebGL 版ですが、オリジナルとなる Canvas2D 版が置かれているサイトのほうでは、作者さんが用意してくれたいくつかの描画結果の画像が掲載されています。
かなりいろいろなパターンが生成されるみたいですので、自分でパラメータをいじりながら、どんな模様が出てくるかなとワクワクしながら楽しく操作できると思います。
また、ビューア部分はホイール操作によるズームイン・アウトが行えるようになっているほか、マウスのドラッグ操作で点描画されているモデルを回転させたりすることもできます。
真正面から見ると二次元的な線や点の重なりに見えますが、これを少しだけ Z 軸に対してスケールを広げたあと、ドラッグ操作をしてみると見事に三次元上に点がマッピングされているのがわかると思います。
単純な式を連続的に解いていくだけで、このような美しい規則的な模様が出てくるというのは、とても不思議ですね。
少し回転させてみると立体的な構造になっているのがわかる。
アトラクタという言葉や、それにまつわるたくさんの研究について調べてみると、今回のデモのようにフラクタルっぽい描画の様子がたくさん見つかると思います。
これらを研究している学者さんたちのように、隅々まで数学的な理解をする必要は必ずしもないと思いますが、こういったデモ作品を通して、あらためて数学に興味を覚える場合もあると思います。
ウェブという開かれたフィールドで、今回のデモのような数学の神秘に触れることができる作品が公開されているというのは、一昔前には考えられませんでしたよね。
WebGL を活用した見事なウェブコンテンツだと思います。
ぜひチェックしてみてください。
リンク:
Fluctuating Repetition in 3D (WebGL)
Fluctuating Repetition — koaning.io ※オリジナルの Canvas2D 版