Video in, a Cinema 4D camera out.

Every 3D job that has to sit inside real footage starts the same way: somebody has to work out where the camera was. vtrack is the tool I built to stop doing that by hand.

Built with ffmpeg · COLMAP · USD · Cinema 4D · Python 3.11 Posted

What it actually does

Drop a video in and it returns a Cinema 4D-ready USD camera plus sparse tracker nulls. Frames come out with ffmpeg, the camera is solved with COLMAP using its sequential matcher, and the result is exported as an animated USD camera that imports straight into Cinema 4D.

There is a macOS notification when a solve finishes, which sounds trivial and is not: a solve is long enough that you stop watching it, and a tool you have to poll is a tool you stop using.

What it does not do yet

This is the MVP, and the gaps are deliberate rather than forgotten. There is no dynamic-content masking, so anything moving in frame is still fighting the solve. There is no long-term track export and no dense reconstruction. The watch daemon that would make it fully hands-off is not written.

Drive ingest is wired up through rclone but needs a configured remote, so in practice it is local files today.

Why build it rather than buy it

Camera solving is not a new problem and there is good software for it. The reason to build is that the output I want is specific: a USD camera and nulls, shaped for the one application I actually animate in, with no manual step between the footage and the scene. A general tool gives you a solve. This gives me a scene.

Still to come

Dynamic-content masking; Long-term track export; Dense reconstruction; A watch daemon so it runs without being asked.

More

Let's create something squishy together

Send a rough idea. We bring out the fun side of brands in 3D.