← PROJECTS

NL Beam Simulator

自然言語プロンプトで32台のMAC One CDムービングライトを制御。 ムード(夕焼け、オーロラ、雷雨など)を言葉で伝えると、 3Dビームシミュレーションがリアルタイムに応答します。

32台のフィクスチャー 15のNLプリセット PSN位置データ 3Dパースペクティブレンダリング

概要

NL Beam Simulatorは、詩的な意図と技術的な照明制御の間のギャップを埋めるシステムです。 DMXチャンネルを手動でプログラミングする代わりに、オペレーターは日常的な言葉でビジュアルの 雰囲気を記述します。システムはこれらの記述をPSN(PosiStageNet)データから得られた フィクスチャーレイアウト上のアニメーションRGBパターンにマッピングします。

各フィクスチャーの実際の位置(PSN JSONエクスポートから取得)は、インタラクティブな カメラ制御を備えた3Dパースペクティブビューに投影されます。ビームはセンターステージに 収束し、MA3の3Dウィンドウに匹敵するビジュアライゼーションをWebブラウザ上で実現します。

32
フィクスチャー
15
NLプリセット
2
フィクスチャーリング
30
FPSレンダー
360°
カメラオービット

アーキテクチャ

入力
自然言語
"夕焼け空"
エンジン
パターンジェネレーター
f(index, time) → [R, G, B]
出力
3Dビームレンダー
PSN座標 → パースペクティブ投影

パターン関数シグネチャ

各プリセットはフィクスチャーインデックスと経過時間を受け取り、RGBトリプレットを返す純粋関数です。 パターンロジックとレンダリングを分離することで、パターンを独立して作成できます。

// Pattern interface
type PatternFn = (fixtureIndex: number, time: number) => [r: number, g: number, b: number];

// Example: 5-stop gradient with temporal drift
sunset: (i, t) => {
  const pos = i / (TOTAL - 1);
  const drift = Math.sin(t * 0.15) * 0.08;
  const stops = [[255,220,80], [255,140,30], [220,50,30], [170,30,100], [60,20,120]];
  // Hermite interpolation across stops...
  return [r, g, b];
}

プリセット

15の自然言語プロンプト、それぞれがユニークなアニメーションアルゴリズムにマッピング。 プリセット間のトランジションは約1.5秒のスムースステップクロスフェードで行われます。

🌅

サンセットスカイ

5ストップグラデーション — 淡い黄色 → オレンジ → 深紅 → マゼンタ → インディゴ — ゆっくりとした時間的ドリフトとフィクスチャーごとのシマー。

gradient
🪄

マジックアワー

淡いゴールド → ピーチ → ローズ → ソフトマゼンタ → ダスティラベンダー。ストリップ全体に呼吸するようなグロー変調。

gradient

星空

ディープブルーのベースに擬似ランダムな星配置。高指数のパワーカーブによるシャープなオン/オフのきらめき。

particle
🐙

深海の生物発光

4乗の強度カーブで脈動する散在する発光ノード。深海の生物発光生物を想起させる表現。

organic
🌿

森の木漏れ日

グリーンのベースにキュービックイーズのダップルスポット。揺れる樹冠を通る木漏れ日をシミュレーション。

organic
🌌

オーロラ

異なる周波数の3つの重なり合うサイン波が、グリーン、パープル、ブルーの光のカーテンを生み出します。

wave
🔥

焚き火のゆらめき

ランダムなフリッカーに正弦波と放射状の熱分布を掛け合わせた、リアルな炎のシミュレーション。

random
⛈️

遠雷

ほぼ暗闇のアンビエントにまれに明るいフラッシュイベント。パワーカーブ減衰を伴う確率的な雷の強度。

stochastic
🌸

桜吹雪

二次花弁強度によるピンクと白の振動。選択的な白いブルームが散る桜の印象を作り出します。

organic
🏙️

サイバーパンクネオン

位置依存オフセットによる3相HSVサイクリング。高速パルス変調がエレクトリックなネオン感を演出。

hsv-cycle
🫧

呼吸する光

2.2乗のイージングによる統一されたスローパルスで自然な吸気/呼気カーブを実現。微妙なフィクスチャーごとの位相オフセット。

meditative
💥

フラッシーストロボ

黄金比分布による高速ランダム色相選択。8倍の基本速度でのバイナリオン/オフ切り替え。

strobe
🌊

海の波

振幅の二乗による可視的な波のピークを持つ三重サイン波干渉パターン。ブルーティールのパレット。

wave
🔷

フラクタルパターン

5オクターブのサイン関数の加算合成により、進化する色彩を持つ自己相似な幾何学パターンを生成。

fractal
🌋

溶岩流

6乗のバブルバーストを伴うゆっくり移動する熱グラデーション。まれに明るい噴火が起こるディープレッド-ブラックのパレット。

organic

フィクスチャーレイアウト

32台のMAC One CDフィクスチャーが2つの同心リングに配置され、位置情報はPSN(PosiStageNet) JSONエクスポートから取得。内側リングの8台はz = 2.65mの矩形配置、外側リングの24台は 半径5m、z = 3.5mの円形に配置され、それぞれ固有のRotZ値で内側を向いています。

{
  "Name": "MACOneCD 1004",
  "FID": "1004",
  "Patch": "1.221",
  "PosX": "3.536",
  "PosY": "3.536",
  "PosZ": "3.5",
  "RotZ": "127.72"
}

技術詳細

レンダリングパイプライン

3DビューはHTML Canvas上のソフトウェアラスタライザーを使用。各フレーム: フィクスチャーはヨー/ピッチカメラ回転で変換され、奥から手前にデプスソートされ、 ビームコーンを表すグラデーション台形として描画。フロアグローは全フィクスチャーの 色を平均したラジアルグラデーションで合成。フレームバジェットは33ms(30fps)、WebGL不要。

パターンエンジン

パターンはステートレスな純粋関数:f(index, time) → [r,g,b]。 エルミートスムースステップ補間による前のパターンとターゲットパターン出力間の クリーンなクロスフェードトランジションを実現。ステートマシンなし、キーフレームなし — 純粋な数学のみ。

React Canvas 2D PSN JSON MAC One CD Perspective Projection Hermite Interpolation Additive Synthesis HSV Color Space requestAnimationFrame Depth Sorting