Editing & 3D

A browser editor, an AI rough-cut tool, and a measured experiment in generated 3D shots.

OmniCut and AI Edit

Active · 2026

A browser video editor, and a tool that rough-cuts my raw Minecraft recordings.

OmniCut is a multi-track editor in the browser: trim, split, filters, speed, fades, 20 transition types and auto-captions, exported by server-side ffmpeg or as an FCP7 XML and SRT bundle for Premiere and Resolve. The timeline model is a pure module with its own unit tests. One production crash set a rule for the whole server: Express 4 does not forward a rejected async handler, so a single bug had been taking the process down, and every async route is now wrapped.

AI Edit turns a raw OBS recording of my own Minecraft sessions into a rough cut, a preview render and a Shotcut project for touch-ups. Speech is found with voice detection and the transcript, because block sounds are as loud as my voice. The model scores sentences from 1 to 5 and the code fits the story to a target length; it never writes ffmpeg or MLT itself. Cuts are reviewed against norms measured from 89 published building videos, collected by mcstudy, which keeps measurements and deletes the footage.

Built with Node.js, Express, ffmpeg, JavaScript, Python, Flask, Whisper (Groq), DeepSeek, MLT

OmniCut editor with a test-pattern clip in the preview, the transition picker open over the timeline, and caption styling controls on the right

Blender explainer spike

Stopped · 2026

Can an LLM write Blender scenes good enough for explainer shots? Measured answer: not yet.

A one-week experiment in letting DeepSeek write Blender scenes for short 3D explainer shots, rendered headless with EEVEE on an integrated GPU and scored by a three-lens judge panel. Usable shots: 1 of 5 in the free-form round, 1 of 7 with an asset library, and 1 of 7 with assets plus a built environment. I stopped the line there.

The failures taught more than the one success. An exploded chair turned out to be a unit error, not a reasoning failure: the model added cubes with size=1 but positioned them as if they were Blender's default two-unit cube, and the same script with size=2 renders a correct chair. A helper toolkit fixed placement: zero API errors and zero floating objects across seven scripts.

Rendering cost 3.75 seconds a frame for a lit 1080 by 1920 scene, so a 60-second Short takes about two hours. The write-up also logs its own mistakes, like benchmarks run on an accidentally black frame and my score of 4 of 7 against the panel's 1 of 7.

Built with Blender 4.5, Python, EEVEE, DeepSeek, Kokoro TTS, ffmpeg

Blender render of a chair whose parts float apart: the model made one-unit cubes but placed them as if they were two units
The same script with size=2: the chair renders correctly

Other work