Node-based procedural modeling, OpenUSD, Gaussian splats, a GPU path tracer and an AI assistant, all driving one scene model through one command layer.
Pixar’s Kitchen_set, imported from OpenUSD and rendered with Roxy’s path tracer.
A scene the Assistant built, a production USD asset, and a procedural model, each recorded or rendered in the app.
One paragraph of prompt in, a lit and rendered scene out. Every step the Assistant takes is a logged tool call through the same command layer a script uses, and the whole turn undoes as one entry.
The final frame: 1024 × 1024, 256 samples, denoised. The red and green bleeding onto the white blocks is light that bounced, not painted.
The stage is converted into Roxy's own scene model, hierarchy and all, then the camera moves into the kitchen and the path tracer renders two views of the interior. Sped up, ending on the finished renders.
The same escalator becomes a flat walkway, a straight escalator, an S-curve or a spiral, depending only on the path it follows. Steps, wedges, balustrades, handrails and landings all rebuild from that path and seven controls.
The path is resampled into frames and anchored, one step is modelled, and eleven wedge variants are packed onto the frames. A lighter display branch feeds the viewport and a full-detail branch feeds the render.
An outliner, a Details panel, a node editor, a Script Editor and a viewport, all views of the same scene, in the shape artists know from Maya and Houdini.
The UI is a view of the scene, never the owner of it.
Scene and session are one Qt-free model. The outliner, Details panel and node editor are views of it, refreshed from a typed change bus.
A gizmo drag, a panel edit, a script and the Assistant all run registered commands, so undo behaves the same for every one of them.
Format quirks are resolved at the IO boundary, and dependencies run one way: app → scene → core.
I’m a senior pipeline engineer with over 14 years of experience building tools and workflows for 3D artists in feature film, interactive, and automotive visualization. I lead pipeline teams, set long-term strategy, and keep the technical and creative sides pulling in the same direction. I’m credited on 10 feature films.
Roxy is where I build the tool I always wanted to write pipelines against.
Roxy's source is private. I'm glad to walk interviewers through it or share access on request.
Timed on an Apple M1 Max laptop. Counts are from Roxy’s main branch on 12 October 2026.
| MEASURE | RESULT | CONDITIONS |
|---|---|---|
| Commands in the registry | 222 | In 23 categories. The UI, scripts and the Assistant all call the same list. |
| Automated tests | 11,753 | In 943 modules, each filed by category and run under a time limit (full run, 11 Oct). |
| Import Pixar’s Kitchen_set | 1.25 s | OpenUSD, 1,788 meshes, 536,949 triangles, smooth normals computed on import. |
| Render a Kitchen_set still | about 3½ min | 1600 × 900, 256 samples, denoised. |
| Cornell box, by the Assistant | about 5 min | From prompt to saved render, including the 1024 × 1024, 256-sample final frame. |
| Two-level BVH | 37% faster | Against the flat BVH it replaced, by sharing geometry between instances. |