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 스타일 터미널 화면을 렌더링합니다. 각 글리프가 하나의 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가 워크스페이스를 빌드하고, 두 패스를 실행하며, 오디오를 생성하고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 스코어 제외).
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트