The most common way a Houdini project loses work is a cache collision: two File Cache SOPs writing to the same path, so one silently overwrites the other. Good cache naming makes that structurally impossible.
Why caches collide
A File Cache SOP builds its output path from a base name, the node name ($OS) and a version. Collisions happen when that path stops being unique: two nodes are given the same base name, an artist copies a node and points it at an existing path, or a hard-coded path drops the per-node token. When two caches resolve to the same file on disk, one silently overwrites the other. The fix is to keep every cache path unique and self-describing.
The tokens that keep caches unique
$OS- the operator (node) name, and part of the default File Cache path. Keeping it in the path means renaming the node changes the output, so each cache node writes somewhere unique.- Version token. A padded
v001that increments, so re-caching does not clobber the previous version and you can roll back. $F4- zero-padded frame number for sequences, so frames sort correctly and never collide across a range.- Descriptor. What the cache is -
pyro,collision,proxy- so the file is legible on disk.
A robust File Cache path looks like:
$JOB/geo/$OS/SHOT010_pyro_v003.$F4.bgeo.sc
Unique base name, a version that increments, padded frames, and a home under $JOB/geo - three separate reasons it will not collide with anything else.
Where different caches belong
- Geometry (
.bgeo.sc) under$JOB/geo/. - Simulations (flip, pyro, RBD) under
$JOB/sim/, kept apart from cheap geo caches. - VDB volumes (
.vdb) named with a descriptor and version so smoke, temperature and density fields never overwrite each other. - Alembic (
.abc) under$JOB/abc/for exchange and handoff.
Validate every cache path at once
Checking dozens of File Cache nodes by hand is exactly where collisions slip through. Hive scans a project in your browser and flags cache outputs that share a name, lack a version token, are missing frame padding, or land outside geo and sim - before one silently overwrites another. It runs locally, nothing uploaded, and pairs with the asset naming convention for the rest of the project.
Frequently asked questions
Why do my Houdini caches overwrite each other?
Usually because two File Cache nodes resolve to the same output path - a shared base name, or a copied node that was never renamed. Including $OS and a version token in the path makes each cache unique.
What does $OS do in a cache path?
$OS is the operator (node) name. Putting it in the File Cache path means each node writes to a distinct file, so renaming a node changes its output and caches stop colliding.
Can Hive check cache naming?
Yes. Hive scans a project in your browser and flags cache outputs that share names, lack version tokens or frame padding, or sit outside the geo and sim folders - without uploading anything.