相空間×SDF1:2階の線形部分方程式が作る場

field

はじめに

先回のblogでは2階の線形微分方程式を2点の初期値を与えて解き、相空間上で動かしました。今回は2点あるいは4点の相空間上の位置に対して、torusの形状を与え、SDF(Signed Distance Field)を描きました。SDFはモノが作る表面からの距離の場のことです。詳しくは2026.04.05のblog「モノの形状が作る場:SDFの概念と可視化・・・」を参考にしてください。SDFを描くのは、blog「場を利用したベクションの表現」や「「場を利用したベクションの表現」の補足・・・」と同じです。「場を利用したベクションの表現」では、このポイントの動きを作るのが、3体間の衝突回避の動きでした。今回はこれが線形微分方程式から解いたポイントの位置の動きを利用する例です。行っていることは同じですが、微分方程式を使う場合、意図した動きが作れます。相空間での動きを知っていても、SDFの場は普段見ること自体がないので、驚きます。微分方程式を解いて作る相空間だけでは数学的な解ですが、SDFと合わせることでアートになります。また粒子表示ではベクションが得られます。このため工学的な応用もあるように思います。

相空間×SDF

先回のblog「微分方程式のコントロール・・・」の映像で円が次第に大きくなりそして小さくなることを繰り返しました。この映像を思い出していただいて、次の映像を見てください。

初期値のポイントを4つにした場合が次です。

粒子を使った表示はベクションを表すことができるので、移動体の速度が速くなると発散させ速度が遅いと収束させるようにすると、動きと対応した場の表示ができるでしょう。

上の2つの映像は、オブジェクト(torus)の表面の外側では、外部から表面に流れ込み、オブジェクトの内側では放出するスタイルですが、これを反転した表示が次です。

トポロジー的な位相空間のイメージになりました。
それぞれ、非常にダイナミックに変化する場を作ることができました。

今回は過去行ったことの合成ですが、あらためて簡単にプログラムを紹介致します。

主要部分について説明します。「point generator-transform-particle-field-math mix-transform-null-フィードバック」の系と、「line-feedback-math-mix-null-フィードバック」の、2つの系統があります。最初の系統がパーティクルを発生しSDFを作る部分です。後の系が2階の線形微分方程式を解く系です。最初の系のfeild POPのspecification POPパラメータに微分方程式からのnull POPを指定することで、微分方程式のポイントがfield POPで指定したtorusに替わります。このtorusの表面からの距離を計算し場を作製します。微分方程式の式は微分方程式の系のmath mix POPに書いています。またSDFの場を作る1-DIstの式は、最初の系のmath mixに書いています(1-Distにする理由はDistのままですと、表面から外へ粒子が向かいまうすが、これを反転させるためです)。最初の2つの映像と最後の映像とは粒子の方向が違うわけですが、これはtransform POPのuniform scaleの値が1.02の場合と0.98の場合の違いです(Dist or 1 -Distとこのunifrom scaleの値で、ベクションの方向を決めることになります)。

まとめ

「場を利用したベクションの表現」で述べた、3体間の衝突回避の動きをSDFで表示したのと、行っている内容は同じです。しかし微分方程式では動きをコントロールできるため、制御したSDFを作れる特徴があります。実際描いてみると、非常にダイナミックな場となり驚きました。数学的な動きから模様を作ったり、立体物を作製することはしばしばあります。そしてMonogokoroでも行ってきました。しかしそれを場に変換することはめずらしいと思います。またSDFの粒子表示はベクションになるので、これを移動体の速度と関連した表示に使う応用があると思いました。

コメント