mrsarac/ff-tracking
A virtual camera films an AI agent's screen while a tracker locks onto every glyph. Two fframes passes, one SkSL shader, all sound synthesized.
ff-tracking – コード駆動型視覚効果デモ
概要 – Rustベースのデモで、ターミナル風のAIエージェントUIを撮影する仮想カメラの短い動画をプログラムで作成します。カメラはエージェントが「入力」するすべてのグリフを追跡し、リアルな被写界深度、レンズフレア、カラーパレットの切り替え、そして同じデータから生成されたサウンドを適用します。パイプライン全体は fframes ライブラリ(Rustの動画生成フレームワーク)と、Skia Metal (macOS) または Vulkan (Windows) 上で動作するカスタムSkSLシェーダーによって駆動されます。
主要コンポーネント
hudcrate – 「画面」(グリフ位置、カメラパラメータ、パレット)を定義し、フレームごとのボックス座標とカメラ変換を含むJSONファイルを書き出します。- Pass 1 –
flat– 3840×2160のSVG風ターミナル表現をレンダリングします。各グリフが1つのSVG要素に対応するため、すべての文字の正確なピクセル位置が把握できます。 - Pass 2 –
lens– SkSLシェーダーがPass 1のフレームをiChannel0として読み込み、物理カメラをシミュレートします:透視投影、被写界深度(36タップの黄金角ボケ)、色収差、ブルーム、グレイン、そしてボックスやリンク、ロックオン効果を描画する「トラッカー」オーバーレイ。 - オーディオ生成 –
tools/sfx.pyがトラッカーのJSONを読み込み、NumPy/SciPyを使用して最小限のサウンドトラック(画面のハム音、キー入力音、ロック音、カット音)を合成し、FFmpegでラウドネスを正規化します。 - オプションのSlabスコア –
score/score.pyがSlab DAWで6秒間の豊かな楽曲を構築し、同じJSONデータと同期させます。 - ビルドスクリプト –
tools/render.shがワークスペースをビルドし、2つのパスを実行し、オーディオを作成してout/tracking.mp4を組み立てます。ヘルパーコマンドを使用して、プレビュー、フレーム抽出、または特定のステージ後のシェーダー停止が可能です。
重要性 – 決定論的でデータファーストなレンダリングパイプラインを使用して、AIエージェントの「思考プロセス」の映画のような視覚化を作成する方法を示しています。このプロジェクトは、コンピュータビジョン風の追跡、GPUシェーダー、手続き型オーディオを組み合わせたプログラムによる動画生成の具体的な例であり、手動のキーフレームではなくRustコードによって完全に駆動されています。
はじめに – Apple-silicon macOSでは、Rust、FFmpeg、Python 3をインストールし、以下を実行してください:
git clone https://github.com/mrsarac/ff-tracking && cd ff-tracking
tools/render.sh # out/tracking.mp4 を生成
Windowsユーザーは docs/WINDOWS.md の追加手順(Vulkanバックエンド)に従ってください。
カスタマイズ – hud/src/lib.rs 内の SCENE_LIST を編集することで、入力テキスト、カラーパレット、カメラの傾き/ズーム、フォントサイズを変更できます。編集後、tools/render.sh を再実行すると、すべてのトラッカーボックス、フォーカスシフト、オーディオキューが自動的に更新されます。
ライセンス – MIT(GPL-3.0 slabkit に依存するオプションのSlabスコアを除く)。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト