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 着色器驱动。

关键组件

  • hud crate – 定义“屏幕”(字符位置、摄像机参数、调色板),并写入包含每帧方框坐标与摄像机变换的 JSON 文件。
  • Pass 1 – flat – 渲染 3840×2160 的类 SVG 终端画面,每个字符对应一个 SVG 元素,确保每个字符的精确像素位置已知。
  • Pass 2 – lens – 一个 SkSL 着色器将 Pass 1 的帧作为 iChannel0 读取,并模拟物理摄像机:透视、景深(36 点黄金角度散景)、色彩偏移、泛光、颗粒感,以及绘制方框、链接与锁定效果的“追踪器”叠加层。
  • 音频生成 – tools/sfx.py 读取追踪器 JSON 并使用 NumPy/SciPy 合成极简配乐(屏幕嗡嗡声、按键声、锁定哔声、切换声),然后使用 FFmpeg 标准化响度。
  • 可选的 Slab 配乐 – score/score.py 在 Slab DAW 中构建一段 6 秒的丰富音乐,并与相同的数据同步。
  • 构建脚本 – tools/render.sh 构建工作区、执行两个阶段、创建音频并组装 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 配乐)。

相关

  • 项目
  • 项目
  • 项目
  • 项目