Track: Developer Tools

Why I built it

I am building a cinematic water park in Blender with Codex. The frustrating part was never asking an agent to change a scene; it was knowing whether it changed the right object, whether the water was genuinely simulated, whether the result remained editable, and how to undo it without damaging the scene.

FrameCrawler makes that creative loop visible and bounded inside ChatGPT and Blender.

What works now

A Blender 5.1 add-on and a TypeScript ChatGPT companion communicate through MCP. ChatGPT creates a small, typed job instead of an open-ended scene mutation. Blender requires explicit approval, performs the bounded action, and returns a receipt with the protected-scene boundary, approval time, revert instruction, and proof artifacts. The ChatGPT widget shows Requested → Changed → Proven, before/after images, GLB inspection, and a playable Blender-rendered liquid preview. Deterministic receipt gates reject incomplete proof, missing revert guidance, missing/future/stale approval timestamps, and approvals that predate the job. The non-local bridge requires an exact HTTPS origin plus a dedicated private proxy-assertion header. Localhost remains the default.

The demonstration uses a real Blender water-park scene, not a recreated web simulation. Blender performs the geometry, Mantaflow cache, physics, camera, lighting, and rendering. Three.js renders portable GLBs in the conversation. The current V14 proof contains a 48-frame Mantaflow bake, 192 cache files, six moving effectors, real liquid collision, and a short H.264 preview built from actual cached Blender frames.

Why Codex and GPT-5.6 matter

Codex helped turn a sprawling Blender add-on into a narrower contract, receipt, evaluation, and recovery protocol. GPT-5.6 is used where deterministic checks stop: comparing the director's intent with rendered evidence and proposing a bounded repair. The builder cannot approve itself.

What I learned

A checksum is not artistic proof. A screenshot is not an editable scene. A passing server smoke is not a human review. FrameCrawler keeps those truth surfaces separate and makes unfinished handoffs say Waiting.

Build Week implementation

Every capability presented in this submission was built after July 13 during Build Week: the ChatGPT companion, artifact-native widget, approval/revert receipt, strict completion invariants, production-bridge guards, real water-park proof import, and packaged v0.9.0 add-on/app. The current judged snapshot is anchored in commit 6f36c99, and BUILD_WEEK_SCOPE.md records that submission boundary. The image-to-3D provider adapter and public hosted OAuth sandbox remain explicit gates; I do not claim they are complete.

Judge test

macOS, Blender 5.1, Node.js 20+. The submission package includes the Blender add-on ZIP, ChatGPT companion ZIP, local MCP endpoint, automated smoke, real .blend/proof artifacts, and exact setup instructions.

Human-edit note

This is a working draft. I will rewrite the final submission in my own voice after the clean-profile human test and demo recording.

Built With

Share this project:

Updates