A portable Houdini project starts with a consistent folder tree. Point $JOB at the root, and the free generator in the Lab gives you the standard SideFX layout plus the shell commands to create it.
What $JOB is
$JOB is the environment variable Houdini uses for your project root. When Read, Write and cache paths are anchored to $JOB instead of a local drive, the same .hip resolves on any machine set up for the project. Getting the folder tree right is what makes caches, renders and textures portable.
The standard folder tree
PROJECT/ <- point $JOB here
abc/ Alembic caches (.abc) - geometry/camera exchange
audio/ sound for playback and lip-sync
comp/ composited output (COP / external compositor)
desk/ desktop / pane layouts and scratch
flip/ FLIP fluid caches
geo/ cached geometry (.bgeo.sc, .vdb)
hda/ Houdini Digital Assets (.hda / .otl)
render/ rendered frames (Karma / Mantra)
scripts/ Python / HScript / shelf scripts
sim/ general DOP simulation caches
tex/ textures and image maps
video/ encoded movies / flipbooks
Generate it in the Lab
Open the $JOB generator in Houdini VEX Lab, and it outputs this tree plus ready-to-run shell commands (mkdir -p lines) so you can scaffold a clean project in seconds. Set Houdini's $JOB to the new root and your paths resolve from the first save.
Keep an existing project tidy
The generator is for starting clean. To audit an existing Houdini project against this structure - and catch caches on local drives, stray files and naming drift - use Hive, the Houdini project audit tool. Start clean here, stay clean there.
Frequently asked questions
What is $JOB in Houdini?
$JOB is the environment variable for your project root. Anchoring paths to $JOB instead of a local drive means the same .hip resolves on any machine set up for the project.
Where should I point $JOB?
At the project root - the folder that contains geo, sim, render, tex and the rest - so all your $JOB-relative paths resolve from the first save.