BigBluePipeline

A VFX studio pipeline, rebuilt as the artist-side front end for b2c3d.

Role
Pipeline architect
Areas
VFX, Pipelines, Tools
Blender with a small night-market alley in the camera view: a wooden noodle cart, selected with an orange outline, under a string of glowing paper lanterns, with the B2C menu in the top bar and the cart's properties on the right.

A visual effects facility runs on its pipeline: the code that decides where every file lives, which version of which application an artist gets, and how work moves from one department to the next. I designed the original version of this pipeline while I was pipeline architect at Mirada Studios. BigBluePipeline is that pipeline brought forward to Python 3.13 and PySide6 and rebuilt around b2c3d.

The front end for b2c3d

b2c3d is the single source of truth for assets. BigBluePipeline is how artists reach it from the applications they already work in. They publish, version and import assets from inside Blender, the primary app, and Maya, through one shared set of Qt dialogs. A thin host adapter for each application supplies its integration, so a tool works the same everywhere.

A shared dialog layer connected to four hosts: Blender, Maya, standalone and batch.
A tool an artist learns in one application behaves the same in the next.

Exchange sends each publish to b2c3d as a bundle: the native file plus the formats each consuming application needs, such as glTF and USD.

The dialogs guard the asset namespace. Names are compared without regard to case, so a publish that matches an existing asset asks first: add it as the next version, or go back and rename it. A publish at a lower level, such as a shot-level prop over a show-level one, says what it will override and asks before doing it. Each artist signs in to b2c3d individually, and only a session token is kept, in the operating system's keychain. Publishing never waits on the network: if b2c3d can't be reached, the publish lands locally and the send is queued to retry.

The screenshots here use a fictional demo production.

Five steps: the artist publishes, a bundle is built, existing content is checked, the asset is sent to b2c3d, and a publish made while offline is queued and replayed later.
A failed or repeated publish never duplicates an asset and never blocks the artist's own work.
A central Exchange interface connected to the b2c3d backend, a null test backend, a custom backend and the parallel Tracking interface.
Third-party services sit behind an interface, so swapping one never touches tool code.

What it inherits

The core of the studio pipeline carries over:

  • Context. Every shell and tool knows its job, sequence, shot and role, and the context persists between sessions.
  • Path resolution. Code never hardcodes a path. It asks for a named key, and the value is a macro string that expands other keys, tokens, the current context, passed data and environment variables.
  • Layered configuration. Each module ships YAML defaults, and settings are overlaid from facility to job to sequence to shot to user, with role-specific layers at each level. The same tree of tools, libraries and config repeats at every level, so anything can be overridden per show or per shot.
  • App launching. Per-version profiles set up the environment for each application, so an artist gets exactly the right build.
  • Department integrations. Publish, subscribe and utility modules per department (model, layout, anim, camera, fx, light, texture), driven by one shared config of publish formats, levels and role restrictions. The original pipeline covered Maya, Nuke, Houdini, Cinema 4D, Mari and Photoshop.
  • Around the edges. Asset approval levels, render farm submission, production tracking integration, notifications and file locking.
Five steps: ask by key, look up the template, expand tokens, fill in the current job, sequence and shot, receive one concrete path.
Moving a show or a studio means changing templates in configuration, not editing code.
Six stacked layers: module defaults at the base, then facility, job, sequence, shot and user, each able to override the one below.
A tool asks for one setting and gets the value from the most specific level that defines it.

The show, sequence and shot hierarchy that organizes the pipeline is the same one b2c3d uses for its productions.

Five publish levels from facility down to user, with the type of asset that usually lands on each.
Each asset type has a default publish level, and every level can be changed in configuration.
Six columns, one per asset type, each listing the file formats that type publishes.
A publish is a set of formats, so the next department gets what its own tools can open.
Four cards: typical roles, warn, refuse, and the single switch that turns role enforcement on or off.
The same guard serves a five-person team and a large production by changing one setting.