My RBD Destruction Sim Won’t Render the Same on the Farm as Locally: Why?
Why won’t my RBD destruction sim render the same on the farm as locally? Two things cause an RBD fracture to land differently on a farm than on your machine. Either the farm is resolving the simulation instead of reading your baked result, and an RBD solve is not guaranteed to repeat exactly, or the farm is running a different build of Houdini or the Bullet solver than you used, so the same setup resolves to different motion. The fix is the same in both cases: bake the destruction to a packed or Alembic cache, render every machine from that one cache, and pin the software versions across local and farm so the data is read identically. Once nothing resolves and the build matches, local and farm produce the same frame.

It looked perfect on your machine. You send it to the farm, the frames come back, and the chunks of the shattered wall are sitting in different places. Not wildly wrong, just enough that it does not match your approved local version, and on destruction that is the kind of difference a supervisor notices immediately. The shot did not change. What changed is whether the farm trusted your simulation or redid it.
Why an RBD Solve Does Not Repeat
Rigid body destruction runs through a solver, Bullet in Houdini, and that solve is sensitive in ways a final render is not. Multi threading can introduce tiny differences in contact resolution run to run. Substep and collision settings affect how pieces interact. A different build of the DCC or solver can resolve the same collisions to slightly different outcomes. None of this matters while everything stays on your machine reading your result. The moment a farm re solves the destruction, or solves it with a different build, the fracture diverges, and on a chaotic system like shattering geometry small differences compound fast.
We watched this on a wall break: rendered straight from the live sim across machines, the broken pieces were visibly out of position by around frame 25, the point where the chaos had amplified the initial mismatch. Baking the destruction to a packed cache and rendering everything from it removed the divergence completely.
| Why local and farm differ | What to do |
|---|---|
| Farm re solves instead of reading the cache | Bake the RBD to a packed or Alembic cache, confirm the render reads it |
| Different Houdini or Bullet build | Match the exact versions across local and farm |
| Live sim left in the render scene | Remove or bypass the DOP network so nothing re cooks |
Lock It Down
Bake the destruction to disk as a packed cache or Alembic, so the render reads finished transforms rather than re solving physics. Strip or bypass the live simulation in the scene you send out, so a node cannot accidentally re cook it. Then make sure the render machines run the same Houdini and solver build you baked with. The deeper mechanics of why a solve does not repeat, and how to handle it across many nodes, are in our non deterministic sims guide, and the reason the solve cannot simply be re run cheaply is in the heavy simulation guide.
Matching the build is where the render setup matters. On an IaaS service like iRender, you control the machine, so you install the exact Houdini and Bullet versions your cache was baked with. The point specific to a farm versus local mismatch: a SaaS farm may run a build you do not choose, so if your fracture is version-sensitive, controlling the environment yourself is what guarantees the read matches. That control is yours to set up, which means pinning the version is on you, not automatic. How that works is in our iRender explainer, and which SaaS farms let you select versions is in the comparison.
Need the farm to render your destruction exactly as it looked locally?
Frequently Asked Questions
Why does my RBD sim look different on a render farm than locally?
Either the farm is re solving the destruction instead of reading your baked cache, and an RBD solve is not guaranteed to repeat exactly, or the farm runs a different Houdini or Bullet build that resolves the collisions slightly differently. On chaotic destruction those small differences compound, so pieces end up out of position. Baking to a cache and matching versions fixes it.
How do I make a destruction sim render consistently across machines?
Bake the RBD to a packed or Alembic cache so the render reads finished transforms instead of re solving physics, remove or bypass the live sim in the scene you send out, and run the same Houdini and solver build on every render machine. Once nothing re solves and the build matches, every machine renders the identical fracture.
Is a baked cache enough to keep an RBD sim consistent?
It is the main step, but the build still matters. A cache holds the result, yet if a render machine runs a different version of the software, how it reads and interprets that data can vary subtly. Bake the destruction and also match the Houdini and solver versions across local and farm, which is easiest on a server you control where you set the exact build.
See more: My FLIP Fluid Sim Cache Is 200GB. How Do I Render It on a Render Farm?
No comments