ノイズ流場を探索する

ご自身でパラメータを調整してみてください: : : : :

ノイズ・フローフィールド:キャンバスに「見えない風」が吹くとしたら

何もない真っ白なキャンバスを想像してみてください。そこに、数千もの小さな粒子を配置します。そして、それらに「前へ進め」と命じます。

しかし、すべての粒子に具体的な進路を指示するわけではありません。なぜなら、キャンバス上には「見えない風」が隠されているからです。ある場所では左へ、別の場所では右へと風が吹き、さらに先へ進むと風向きが変わります。渦を巻く場所もあれば、川のように流れる場所、あるいはゆっくりと向きを変える場所もあります。

粒子は「風の地図」を見ることはできません。ただ、その場所に吹いている風の向きに従って進むだけです。こうして数千もの粒子が動き出し、通った跡には細い軌跡が残ります。

やがて、複雑な模様が浮かび上がってきます。それは風や水の流れ、煙、羽毛、あるいは絹のようにも見え、空間を流れる「目に見えない力」のようでもあります。これこそがノイズ・フローフィールドです。

「風の地図」を想像してみる

ノイズ流体場(ノイズ・フローフィールド)を理解する最も簡単な方法は、まず数式を見ることではありません。それは、「風の地図」を想像してみることです。

キャンバス全体に風が吹いていると仮定しましょう。ある場所では → → → 風は右向きに吹いています。隣へ移動すると ↗ ↗ ↗ 風は右斜め上向きに変わります。さらに進むと ↑ ↑ ↑ 風は上向きになります。そして ↖ ↖ ↖ また向きが変わります。キャンバス全体をこのような矢印で埋め尽くすと、流体場ができあがります。これは、キャンバス上の各地点で、どちらの方向に流れるべきかを表すものです。この流体場の中では、粒子はただ「風に身を任せて進む」だけでよいのです。

ここで、小さな粒子を一つ置いてみましょう。ある地点に来ると、そこでの風向きは ↗ なので、粒子は右斜め上へ移動します。次の瞬間、新しい位置に来ると風向きは → に変わり、粒子は右へ移動します。さらに次には ↘ となり、右斜め下へ移動し始めます。ここで重要なのは、粒子自身は地図全体がどうなっているかを知らないということです。「どこへ行くべきか」さえ知る必要はありません。ただ「今ここにいるけれど、風はどちらに吹いているか?」と問い続け、その流れに従って進むだけでいいのです。

粒子が一つだけなら、特に変わったことは起きません。ただ進み、曲がり、また進み、曲がるだけです。

しかし、100個の粒子を投入すると、少し雰囲気が変わってきます。

1000個になると、軌跡が互いに絡み合い始めます。

そして1万個になると、全体として一つの流れるようなパターンが浮かび上がってくるのです。

最も驚くべき点:線を引いていないのに、これほど自然に見えること

完成した模様を見ると、「数学者が直接描いた曲線なのだろうか?」と思うかもしれません。しかし、そうではありません。「ここに曲線を引く」といった指示は一切していないのです。私たちが決めたのは、粒子がどちらへ進むべきかというルールだけ。あとは粒子を自由に動かします。粒子が通った跡には軌跡が残り、多くの粒子の軌跡が重なり合うことで、最終的な模様が形作られるのです。

つまり、ノイズ・フローフィールド(流体場)とは、流れの線を直接描くのではなく、流れそのものに線を残させる手法なのです。

では、なぜこれほど自然に見えるのでしょうか?

もし各位置の向きを完全にランダムに決めたとしたら、↗ ← ↓ → ↖ ↑ ← ↘ のように、何の規則性もない状態になるでしょう。粒子はあちこちへ動き回り、テレビの砂嵐のような無秩序な見た目になってしまいます。しかし、ノイズ・フローフィールドで使われる「ノイズ」は、そのような完全に独立した乱数ではありません。それは連続性を持ち、滑らかに変化するノイズであり、その代表的な実装の一つが パーリンノイズ です。パーリンノイズは隣接する位置間で滑らかに変化する値を生成できるため、連続的な流体場を構築するのに最適なのです。

ある場所では右向き、その隣もほぼ右向き、さらにその隣は少し右上向き、その先ではゆっくりと向きを変えていく……といった具合です。「ここで右を向いたのに、次の位置では突然下を向く」といったことではなく、→ → ↗ ↗ ↑ ↖ ↖ ← のように、向きが緩やかに変化していきます。そのため、粒子の動きも滑らかにカーブを描くことになります。これが、ノイズ・フローフィールドが非常に自然な印象を与える理由です。

"ノイズ" とは一体何ですか?

これを見ると、あなたはこう疑問に思うかもしれません。『しかし、明らかに規則的に見えるのに、なぜそれがノイズと呼ばれるのでしょうか? 「

ここでの『ノイズ』は、単純に不規則なランダム性として理解すべきではありません。ベルリン ノイズは滑らかで連続的なランダムな変化に近いものです。たとえば、0.41、0.43、0.45、0.48、0.52、0.55...、数値は変化していますが、0.42→0.97→0.03→0.81のように突然ジャンプすることはありません。

したがって、完全に規則的でも完全にカオス的でもなく、 まさに規則性とランダム性の中間にあります。これが、自然な視覚効果を生成するのに特に適している理由の 1 つです。ベルリン ノイズの設計目標の 1 つは、通常の乱数よりも連続的で自然な数値変化を生成することです。

そこで、音を「風」に変えました。

ノイズ自体は単なる数値ですが、 この値を角度に変換することができます。例えば、ある位置のノイズ値→角度に変換→方向が得られる→矢印になる→流れ場の一部となり、キャンバス全体はこのように計算されるのでノイズ→方向→流れ場→パーティクル→軌跡→ ノイズ流れ場となります。

全体的なプロセスの振り返り

これまでのプロセスをまとめると、以下のようになります:

ステップ1:滑らかに変化するノイズを生成します。

ステップ2:そのノイズを、さまざまな方向を示すデータに変換します。

ステップ3:それらの方向情報によって、目に見えない「フローフィールド(流体場)」を形成します。

ステップ4:フローフィールドが適用されたキャンバス上に、多数のパーティクル(粒子)を配置します。

ステップ5:各パーティクルは、フローフィールドを参照して、自身の位置における方向を確認し続けます。

ステップ6:パーティクルは、確認したフローフィールドの方向に沿って移動します。

ステップ7:パーティクルが移動した軌跡が描かれます。

最後に、流れるようなノイズ・フローフィールドのパターンが浮かび上がります

なぜ、ある時は水のように、またある時は煙のように見えるのでしょうか?

それは、流体場(フローフィールド)が異なるスケールや変化のパターンを持ち得るからです。流体場の変化が非常に緩やかであれば、広範囲にわたって方向が揃い、粒子は 幅広く滑らかな流れ を形成します。一方、変化がより細やかであれば、粒子の動きは複雑になり、 繊細な渦や絡み合い が生じることがあります。つまり、いくつかのパラメータを変えるだけで、同じシステムから全く異なる視覚効果を生み出すことができるのです。

その中でも特に重要なパラメータの一つが ノイズスケール、すなわち 乱流の細やかさ です。これは大まかに言えば 「風の変化がどれくらい大きいか」 と捉えることができます。スケールが大きければ、風向きの変化は緩やかになり、粒子は 🌊 広範囲にわたる流線を形成します。逆にスケールが小さければ、風向きの変化は細かくなり、粒子は 🌀 より複雑で密度の高いテクスチャを形成します。

もう一つ興味深い点があります。それは「風は動くのか?」ということです。もちろん動きます。ノイズに水平・垂直の2次元だけでなく、時間とともに変化する次元を加えれば、ある瞬間の風向きと次の瞬間の風向きを微妙に変えることができます。すると、流体場全体がゆっくりと変化し始めます。粒子は動き続けますが、それらが身を置く「風」そのものも変化しているのです。その結果、画面は単なる静止画ではなく、 絶えず呼吸し、流れ、変化し続ける世界 へと変わるのです。

目に見えるのは「風」ですが、実際には風はありません

粒子そのものだけを表示すると、小さな点がたくさん見えるだけです。しかし、それぞれの粒子が軌道を離れると、状況はまったく異なります。粒子は、●が、動き、——、継続し、継続します。そして、最後に完全な流線が現れます。 多数の粒子の流線が絡み合って、 私たちが見ているノイズ流場を形成します。つまり、 最終的な美しさは実際には粒子の動き + の蓄積によって生まれます。軌跡です。

写真の中には本物の風も、本物の水も、本物の煙も、本物の粒子すらありません。すべては数学的計算です。

しかし、滑らかに変化する方向場に従って多数の粒子が移動すると、私たちの目は自然にそれを流れとして解釈します。 したがって数学→運動になり、運動→軌道になり、軌道→視覚となり、 視覚→ 自然を思い出させるのです。

ノイズ流場とアトラクターの違いは何ですか?

数学的なアトラクターをすでに探求したことがあるなら、ノイズ流場は全く異なる体験となるでしょう。

例えば、ド・ヨング・アトラクターは、ある点が漸化式に従って計算され続けることに重点が置かれています。

池田アトラクターは、回転、拡大縮小、そして位置の間のフィードバックが重要です。

ローレンツ・アトラクターは、3次元力学系とカオスに焦点が当てられています。

一方、ノイズ流場は、点が最終的​​にどこに引き寄せられるかではなく、多数の粒子が「目に見えない流場」に沿ってどのように動くかに重点が置かれています。そのため、どちらかと言えば数学的な風の​​場の地図のようなものです。

ノイズ流場には必ずしも「引き寄せる(アトラクトする)」要素が必要なわけではありません。アトラクターは通常、システムが長期的に運動した結果、何らかの安定した構造を形成することを強調しますが、ノイズ流場にはそのような「終点」が全く存在しないこともあり得ます。粒子は前進し続け、境界に達したら再び現れたり、あるいは次々と新しい粒子が生成されたりすることもあります。さらには、流場全体が時間とともに変化することさえあります。したがって、厳密な意味での「アトラクター」としてではなく、流場によって駆動されるジェネレーティブ・アート・システムとして理解する方が適しています。

見えない地図

ノイズ流体場を最もシンプルな物語に凝縮するなら、こう考えることができます。キャンバスの上に、ある「見えない地図」が広がっていると想像してください。その地図上のあらゆる場所には、矢印が配置されています。これらの矢印は完全にランダムなわけではなく、緩やかに向きを変えながら互いにつながり、連続した流れを形成しています。そこに、数千、数万もの粒子を放ちます。粒子は地図の全体像を知りません。ただ、「今、自分はどこにいるのか?」、そして「ここの風はどちらに吹いているのか?」を知るだけです。そうして粒子は動き出し、通った場所に軌跡を残していきます。やがて、粒子の軌跡によって、この「見えない地図」が描き出されるのです。

目にするのは単なる一枚の絵ではなく、ある「動き」が残した痕跡です。粒子の動きがなければ、軌跡は生まれません。流体場がなければ、粒子はどちらへ進めばよいのか分かりません。ノイズがなければ、このような滑らかで自然な方向の変化も生まれません。これらが組み合わさることで――ノイズ → 方向 → 流体場 → 粒子 → 軌跡 → ノイズ流体場――見えなかった「数学的な風の​​場」が、ついに私たちの目に見える形となるのです。

アトラクターの世界をさらに探求する

ノイズ・フローフィールドは、アトラクターと同様に、「単純なルールから複雑な視覚的世界が生まれる」という興味深い概念を提示しています。

パラメータによる抽象的なテクスチャ生成に興味があるなら、ド・ヨン(De Jong)アトラクタークリフォード(Clifford)アトラクターを試してみてください。

回転、フィードバック、カオスに興味があるなら、池田アトラクターを探求してみましょう。

3次元空間における奇妙な動きに興味があるなら、相沢アトラクターローレンツ・アトラクターを試してみてください。

一方、ノイズ・フローフィールドはまた違った体験をもたらします。それは「点が終点にたどり着くのを待つのではなく、無数の点が目に見えない地図に沿って流れていく様子を観察する」という体験です。

風やフローフィールド、さらにはそれらを制御する数学的なルールさえも目には見えません。見えるのは、それらが通った軌跡だけです。そして、それらの軌跡が組み合わさり、最終的に「流れるような数学的絵画」が描き出されるのです。

他にも素晴らしい数学的図形を鑑賞したり、Wikipediaでノイズに関する詳細を調べたりすることができます。

新しいタブを開くたびに、こうした素晴らしい数学的ビジュアルを目にしてみませんか?今すぐChrome拡張機能をインストールして、「数学ふしぎ箱」を新しいタブのページに設定しましょう。🚀

詳細を見る