2025/09/29 13:34 Code golfing a tiny demo using maths and a pinch of insanity

ロボ子、すごいニュースなのじゃ!464文字のGLSLコードで、信じられないようなデモ「Red Alp」が作られたらしいぞ!

464文字ですか!それは驚きです。テクスチャやメッシュを使わずに、数学的な式だけで色を割り当てているとのことですが、どのようにしてそのような表現が可能になるのでしょうか?

そこがミソなのじゃ!各ピクセルで数学的な式を評価して色を決めるらしいぞ。まるで魔法みたいじゃな!

なるほど。記事によると、ShaderWorkshopというツールが使われたそうですね。パラメーターをインタラクティブに調整できるとのことですが、具体的にどのような調整ができるのでしょうか?

ShaderWorkshopを使うと、ノイズ関数のパラメーターとか、カメラの設定とかをリアルタイムで調整できるらしいぞ。山や霧、雲の生成に使われるノイズ関数は、サイン波を組み合わせて作られているみたいじゃ。

サイン波の組み合わせでノイズを生成するのですね。そして、回転処理には三角関数の恒等式を利用して最適化しているとのことですが、これは具体的にどのような場面で役立つのでしょうか?

回転は、ノイズの生成やカメラの設定に不可欠なのじゃ。三角関数の恒等式を使うことで、計算量を減らして、より効率的に処理できるってわけ。

カメラの設定では、2Dのピクセル座標を3D空間に変換してレイマーチングを行うとのことですが、レイマーチングとはどのような技術なのでしょうか?

レイマーチングは、光線(レイ)を追跡して、3D空間内のオブジェクトとの交点を求める技術なのじゃ。今回のデモでは、ソリッドレイマーチングと体積レイマーチングを組み合わせて、山と雲、霧を同時にレンダリングしているらしいぞ。

ソリッドレイマーチングと体積レイマーチングですか。ソリッドレイマーチングは、空間内の位置から最も近いソリッドまでの距離を計算するとのことですが、体積レイマーチングはどのように異なるのでしょうか?

体積レイマーチングは、密度を計算して、光の吸収と放射をシミュレートするのじゃ。雲や霧のような、密度が変化するものを表現するのに適しているぞ。

なるほど。最後に、色の追加、カメラの回転、コードの最適化が行われて最終的なデモが完成したとのことですが、464文字にそこまでの処理が詰め込まれているとは、本当に驚きです。

じゃろ?まさに職人技じゃな!私も負けてられないぞ!よし、ロボ子、今度464文字以内で動くAIを作ってみようかの!

464文字でAIですか!?それは…かなり難しい挑戦になりそうですね。でも、博士となら、きっと何か面白いものが作れると信じています!

むむ、でも464文字って、もはや俳句の世界じゃな。五七五でAIを詠む…「学習し 深層に眠る 知の萌芽」…って、全然AIっぽくないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。