Development Tool

Content
Pipeline

Deterministic imports, content addressed caching, and a shared result store. Two engineers on two machines always produce the same cooked output.

Why pipelines drift, and how this one does not

Asset pipelines drift because imports depend on ambient state. The version of a texture compressor on the local box, a flag toggled months ago, a plug in that one artist installed. Crowe Asset Pipeline kills ambient state by sandboxing every import inside a pinned toolchain and hashing every input that contributes to the result.

Two machines with the same input files produce the same output bits. If the bits already exist in the shared cache, the import returns in milliseconds instead of minutes. On a studio network, the first person to import pays the cost and everyone else benefits.

Imports are incremental. Touching a normal map does not rebuild the albedo or recompile the material graph that uses them. A dependency graph tracks exactly what downstream artifacts need refreshing and schedules them on the work queue.

3D model viewport
Pipeline Subsystems

What runs under the hood

Import

Sandboxed importers

Each importer runs in a sandbox with a pinned toolchain. No access to the rest of the workstation. The input hash, the toolchain version, and the importer config are the only things that change the output.

  • Pinned toolchain per importer
  • Deterministic output given fixed inputs
  • Parallel import with dependency scheduling
  • Out of process isolation
Textures

Virtual textures up to 16k

Streaming virtual textures with tile residency driven by the camera. The importer emits a tile set and a page table, and the runtime streams only the pages visible this frame.

  • Virtual textures up to 16k by 16k
  • BC and ASTC compression per target
  • Mip generation with perceptual weighting
  • Tile residency visualizer
Meshes

LOD and vertex layout

Automatic LOD generation with shape aware decimation and meshlet packing. The importer produces GPU ready vertex buffers with a layout optimized for the shipped renderer on each target.

  • Shape aware LOD generation
  • Meshlet packing for mesh shaders
  • Target specific vertex layout
  • Vertex animation texture export
Audio

Transcoding and loudness

Source audio transcodes to Opus or ADPCM per platform. Loudness is normalized to the EBU R128 target, then tagged so the mixer can still apply per clip gain at runtime without resampling.

  • Opus and ADPCM codec backends
  • EBU R128 loudness normalization
  • Dynamic range analysis report
  • Per platform codec selection

Measured on a shipping project

Baseline numbers from a mid sized codebase with roughly 240 gigabytes of source content, on a ten engineer studio sharing a LAN cache.

94%Cache hit after first import
12sMedian cached import
3 minFull cold rebuild per artist
0Per machine output drift
Related

Works with

Cook a project

The SDK includes a content only sample. Run one import and watch the cache fill for the whole studio.