Pixar's Kitchen_set rendered in Roxy: a cluttered kitchen with a ceiling lamp, a green stove, a blue fridge and a table in the foreground
A 3D CONTENT TOOL, BUILT FROM SCRATCH

Roxy

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.

Samples

A scene the Assistant built, a production USD asset, and a procedural model, each recorded or rendered in the app.

CORNELL BOX

The Assistant builds it, the path tracer renders it

about 5 minutes, shown about 13× faster
A sped-up recording of Roxy: the Assistant panel works through a prompt while a Cornell box appears in the viewport, then the Render View fills in the final image
A Cornell box: a white room with a red left wall and a green right wall, two white blocks and a square ceiling light

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.

OPENUSD

Pixar's Kitchen_set, imported and rendered

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.

A sped-up recording of Roxy importing Pixar's Kitchen_set from OpenUSD, gliding into the kitchen and rendering two views of the interior
The procedural escalator on a circular path, winding up as a spiral
PROCEDURAL ESCALATOR

One asset, any path

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 ESCALATOR’S GRAPH

215 nodes in seven labelled frames

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.

A close-up of the escalator's node graph: the path and anchor frame, then the step prototype and its eleven wedge variants
The asset as a flat moving walkway
No rise: the same asset as a flat moving walkway.
The same asset as a straight escalator between two floors
A straight path with a 450 cm rise.
The escalator following an S-shaped path, seen from above
An S-curve path, seen from above.
Wedge-shaped steps on the spiral escalator: grooved treads with yellow safety edges, brushed steel and a glass balustrade
Wedge steps on the spiral: grooved treads, brushed steel and glass.
Roxy's window with the escalator on a circular path, winding into a spiral
The spiral in Roxy’s window, with its graph and controls.
The Details panel showing the escalator's controls: rise, angle, step width, flat steps, anchor, step travel and detail
The seven controls the graph exposes, in the Details panel.
WHAT IT DOES

One tool, from first primitive to final frame

01 · PROCEDURAL MODELING

Every shape owns a node graph

Extrude, inset, bevel, array, heightfield terrain with erosion, and a VEX-style wrangle compiled to GPU kernels. Change any node and the shape recooks.

02 · CONTENT LIBRARY

Build once, place many times

Publish a build as a master; instances store only their overrides, and the renderer shares their geometry instead of copying it.

03 · OPENUSD

Imports that report what they lose

Stages come into Roxy's own scene model with up-axis, units and transform conventions resolved at the boundary, and every lossy conversion is counted, not hidden.

04 · SPLATS & MARBLE WORLDS

Captured worlds next to CG

Ingests Gaussian splat captures and World Labs Marble worlds, and composites them with modeled geometry in the same render.

05 · PATH TRACER

Physically based, on the GPU

Principled BSDF with GGX, VNDF sampling and Kulla-Conty energy compensation; physical sky, caustics and displacement, on Metal.

06 · ASSISTANT & SCRIPTING

Ask, script or click: same commands

Claude builds through the commands you would script, with your own API key, and its changes land on the same undo stack as yours.

INSIDE THE APP

Built like the tools it learned from

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 escalator's whole node graph, 215 nodes in seven labelled frames
The escalator's whole graph, laid out by the Assistant in seven labelled frames.
The Assistant panel listing its steps next to the viewport and the node graph
The Assistant mid-build: each step is a logged tool call, and a turn undoes as one entry.
The Script Editor with a short script and the hover hint for renderImage
The Script Editor, with hover hints generated from the command registry.
The escalator in the viewport as a shaded wireframe
The viewport draws a lighter display branch; the render uses full detail.
The UI is a view of the scene, never the owner of it.

One model

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.

One command layer

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.

Honest boundaries

Format quirks are resolved at the IO boundary, and dependencies run one way: app → scene → core.

ABOUT

Built by Seth Schwartz

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.

Emailsethaschwartz@gmail.com LinkedInseth-schwartz-a626981b ResumePDF

Roxy's source is private. I'm glad to walk interviewers through it or share access on request.

BENCHMARKS

Benchmarks and current metrics

Timed on an Apple M1 Max laptop. Counts are from Roxy’s main branch on 12 October 2026.

MEASURERESULTCONDITIONS
Commands in the registry222In 23 categories. The UI, scripts and the Assistant all call the same list.
Automated tests11,753In 943 modules, each filed by category and run under a time limit (full run, 11 Oct).
Import Pixar’s Kitchen_set1.25 sOpenUSD, 1,788 meshes, 536,949 triangles, smooth normals computed on import.
Render a Kitchen_set stillabout 3½ min1600 × 900, 256 samples, denoised.
Cornell box, by the Assistantabout 5 minFrom prompt to saved render, including the 1024 × 1024, 256-sample final frame.
Two-level BVH37% fasterAgainst the flat BVH it replaced, by sharing geometry between instances.