01 — Overview
Pipeline

The asset pipeline runs once per asset. The shot pipeline repeats for every shot. Hover any node for details.

CREATURE ASSETS ENVIRONMENT ASSETS Maya base mesh · proxy ZBrush high-poly sculpt Substance Painter bake · paint textures Maya rig · blend shapes 03_Output/ geo · usd · tex Bought Assets FAB · Megascans Custom Geo Maya · Houdini Unreal Engine layout · dress · USD export 03_Output/ usd · tex SHOT PIPELINE — READS FROM 03_OUTPUT/ Creature Environments Creature Textures Maya animation Houdini FX creature FX · sims Houdini Solaris USD assembly Karma XPU EXR · ACEScg Nuke comp · Rec.709 Premiere Pro edit · sound · Rec.709
02 — Structure
Folder structure

Click any folder to expand or collapse. The pipeline only reads from 03_Output/ and 02_OUT/ — working files are never referenced by shot files.

📁CNS/
📁00_Pipeline/pipeline document lives here
📁01_Preproduction/
📁01_Story/
📁02_Concept/
📁03_Storyboard/
📁04_Animatic/
📁02_Assets/
📁01_Smart/
📁01_Concept/art · references · moodboards
📁02_WorkingFiles/Maya · ZBrush source files
📁03_Output/pipeline-ready deliverables only
📁geo/rest pose geometry — USD · FBX
📁usd/bind pose / geo exports
📁tex/Substance Painter EXR texture sets
📁02_Dumb/same structure as Smart
📁03_ENV_Mushroom_Biome/
📁01_Concept/
📁02_WorkingFiles/Unreal project · source geo
📁03_Output/
📁usd/USD exports from Unreal
📁tex/
📁04_ENV_Savannah/same structure as Mushroom Biome
📁05_FX_Assets/
📁04_Production/one shot folder per shot · by scene
📁SC01/
📁CNS_SC01_SH010/
📁01_Animation/
📁01_working/Maya scene files (.ma)
📁02_OUT/USD / FBX exports → read by Houdini
📁02_Assembly/hip files · sources from 01_Animation/02_OUT/
📁CNS_SC01_SH020/ ...
📁SC02/ ...
📁05_Renders/multi-channel EXR · one file per frame
📁SC01/CNS_SC01_SH010/
🎞CNS_Render_SC01_SH010_v01.1001.exr
📁06_Comp/
📁SC01/CNS_SC01_SH010/
📄CNS_Comp_SC01_SH010_v01.nk
📁prerenders/
📁07_Footage/
📁01_Previs/playblasts — one mov per shot
📁SC01/CNS_SC01_SH010/
🎞CNS_Previs_SC01_SH010_v01.mov
📁02_Footage/final comp output — ProRes 422
📁SC01/CNS_SC01_SH010/
🎞CNS_Footage_SC01_SH010_v01.mov
📁08_Sound/
📁09_Edit/CNS_Edit_v01.prproj
📁10_Delivery/dated subfolders per submission
📁otls/CNS_tools.hdanc — shared HDAs
03 — Naming
Conventions

Pattern

CNS_{PROCESS}_{SCENE}_{SHOT}_v{##}.{ext}

CNS_Animation_SC01_SH010_v01.ma      ← Maya scene file
CNS_Assembly_SC01_SH010_v01.hipnc    ← Houdini scene file
CNS_Previs_SC01_SH010_v01.mov        ← playblast — viewport previs clip
CNS_Comp_SC01_SH010_v01.nk           ← Nuke comp file
CNS_Render_SC01_SH010_v01.1001.exr   ← render — all AOVs as channels inside
CNS_Footage_SC01_SH010_v01.mov        ← ProRes 422 final output
Previs uses the normal production workflow — no separate previs stage. Animate or assemble a rough pass in the shot's 01_Animation/ or 02_Assembly/ files, playblast to 07_Footage/01_Previs/, and share the clip for review. Once timing is locked, continue refining the same files.

Shot numbering

Shots are numbered in increments of 10. A new shot between SH010 and SH020 becomes SH015. Existing shot numbers never change — all file references stay intact throughout the project.

Scene prefix
SC01, SC02, SC03 ...
Shot number
SH010, SH020 — increments of 10
Version
_v01, _v02 — keep all, never overwrite
Maya scene
CNS_Animation_SC01_SH010_v01.ma
Houdini scene
CNS_Assembly_SC01_SH010_v01.hipnc  ← FX when needed, assembly always
Previs playblast
CNS_Previs_SC01_SH010_v01.mov
Nuke comp
CNS_Comp_SC01_SH010_v01.nk
Render frame
CNS_Render_SC01_SH010_v01.1001.exr
Footage
CNS_Footage_SC01_SH010_v01.mov
Asset files (rig, textures, environment USDs) are not subject to a strict naming rule — the folder structure enforces where they live. Artists name assets freely as long as outputs land in the correct 03_Output/ subfolders.
04 — Timing
Frame range

Frame 1001 is the first deliverable frame. Nothing before 1001 is ever rendered or delivered. The range before 1001 is preroll — and it matters for both animation and FX.

Animators

Animate through the preroll so the character is already in motion by frame 1001. This is required for correct motion blur on the first frame, and gives FX artists a character that's moving correctly when their simulations start.

FX Artists

Simulations need warm-up time with an already-moving character — otherwise the first rendered frames look jumpy. Set DOP start frame or ignition start to at minimum frame 900. Communicate the required preroll length to the animator for each shot.

05 — Colour
Colour pipeline

One working colour space throughout. Converted to delivery format exactly once — at the Nuke output stage.

Karma XPU output
ACEScg
Nuke working
ACEScg
Nuke output → Premiere
Rec.709
The ACEScg → Rec.709 conversion happens exactly once — in Nuke at the final output stage. Textures are authored in sRGB or linear as normal — Solaris interprets them correctly based on whether the input is set to color, vector, or float.
06 — Software
Application notes
Game Artists
Maya

Creature modelling, rigging, animation. Root prim must be Smart or Dumb — do not rename after first Solaris assembly. Creature animation exports as USD to 01_Animation/02_OUT/. Cameras and lights export as separate USD layers directly to Solaris.

Game Artists — Creatures only
Substance Painter

PBR texturing for creatures only. Export EXR texture sets to 03_Output/tex/. Normal map format must be set to OpenGL — not DirectX, which is the default in most game pipelines. Wrong format inverts normals in Karma.

Game Artists
Unreal Engine

Environment geometry, layout, and previs only. No final rendering. Export USD to 03_Output/usd/ per environment folder. Root prim name matches the environment (e.g. MushroomBiome). Solaris assembles under scene/environment/.

VFX Artists
Houdini FX

Reads creature animation from 01_Animation/02_OUT/. Runs all simulations: ground interactions, foliage, creature impacts. Shared HDAs in otls/. Hip files saved to 02_Assembly/ per shot.

VFX Artists
Houdini Solaris + Karma

USD scene assembly per shot. Material bindings via Assign Material LOPs — persist when animation updates. Karma XPU renders to multi-channel EXR. AOV config defined once in CNS_karma_template.usd.

scene/creatures/Smart
scene/creatures/Dumb
scene/environment/
scene/fx/
scene/lights/
scene/cameras/
VFX Artists
Nuke + Premiere

Nuke handles per-shot compositing. Reads multi-channel EXR, converts ACEScg → Rec.709 at output only, exports ProRes 422 to 07_Footage/02_Footage/.

Premiere assembles the final cut. Sound and music added here.

07 — Delivery
Handoff
Asset → Production
03_Output/ only

When an asset is ready, all deliverables go into 03_Output/. Nothing outside that folder is ever referenced by shot files. Working files stay isolated.

Animation → Houdini
02_OUT/ per shot

Maya exports USD to 01_Animation/02_OUT/. Houdini reads directly from there. No copying needed. Increment the version on each update.

Production → Comp
EXR in 05_Renders/

VFX artist confirms final EXRs are in 05_Renders/SC{##}/CNS_{SC}_{SH}/. Nuke picks up from there. No manual copying.

Comp → Edit + Delivery
07_Footage/ split by type

Playblasts go to 07_Footage/01_Previs/. Nuke comp output goes to 07_Footage/02_Footage/. Increment version on revision, never overwrite. Premiere imports from 02_Footage/.