Crowds & Simulation
4 Ways to Cache Water Flip Fluid Simulation | Houdini Tutorial
Legacy TutorialWritten guide
This tutorial is part of the CGI Nerd archive. Some software features, interfaces, or workflows may have changed since it was recorded.

Playing loads YouTube content. YouTube processes data after activation.
Watch on YouTubeIf the player is blocked or unavailable, use Watch on YouTube.
This lesson examines four places to save a water effect: the dynamics state, preview geometry, final surface geometry and an Alembic export. They are not four interchangeable “make it faster” buttons. Each preserves a different stage of the work and avoids repeating a different calculation.
The instructor creates a simple FLIP fluid from an object and adds a ground plane. He shortens the demonstration to 48 frames, described as two seconds, then reduces particle separation so the simulation becomes more expensive. The preserved lesson metadata identifies Houdini 16.5; the exact point build is not established here. The workflow and interface are historical.
First distinguish saving from using a cache
Two recurring observations drive the lesson. First, increasing simulation detail raises the amount of work and memory involved. Second, writing files does not automatically redirect every displayed branch to those files.
If playback stays slow after a save, inspect what is currently being displayed and whether it is reading the saved result. The lesson shows both a dynamics-level File read and geometry-cache Load from Disk controls; they occur at different stages.
Save and read the dynamics state
Inside the AutoDopNetwork, the instructor uses the output’s save controls to write a .sim sequence. He changes the location and keeps a frame-dependent naming convention. The recording refers to the simulation-frame variable in that sequence; it does not use one overwritten snapshot for every frame.
After writing, playback still tries to do expensive work. He adds a File node in the dynamics network, selects the sequence and changes its operation from No Operation to Read Files. The cached result then feeds the output chain.
The important check is the read path: does it identify the sequence that was just written, and is that node’s result the one reaching the output? A correct file on disk cannot accelerate a branch that is still evaluating another result.
The instructor reports roughly twenty minutes to write his two-second simulation. This is a report about that run and hardware, not a prediction for another scene. Reading the cache improves scrubbing but still consumes memory and does not guarantee real-time playback.
Cache the preview geometry
The fluid geometry object contains a preview-cache stage. The instructor inspects its lighter representation, assigns a separate destination/name and saves it to disk. Because the simulation state is already cached, this step is computing the geometry representation from that result rather than establishing a new fluid solve.
He initially expects this to finish quickly, then observes later frames taking longer as the water spreads and interacts. The elapsed estimate changes during the recording. The article therefore does not present the early estimate as a fixed benchmark.
After saving, he returns to frame one and finds that geometry is still cooking. He enables Load from Disk on this cache stage. This repeats the central distinction in a different context: writing the preview and displaying the saved preview are separate actions.
The expected outcome is easier access to the preview representation. It is still geometry that must be read and displayed, so it may be slower than looking only at particles from the dynamics stage.
Cache the final surface separately
Farther down the fluid chain, the instructor inspects the smoother surface used for rendering. It is more expensive than the preview. He gives that cache its own output location/name, saves the range, then enables Load from Disk there as well.
Separate names matter because these files represent different results. A preview cache and a final surface should not be confused simply because they correspond to the same frame of water. Inspect the displayed surface when selecting the cache stage.
The recording reports a final-surface export taking a little over thirty minutes and notes that playback remains slow. That is consistent with the source’s distinction between avoiding repeated calculation and still having a large surface to load. No exact polygon count, throughput measurement or general performance guarantee is supplied.
To compare representations, the instructor returns toward the particle import and observes a lighter result. Choose the stage that contains the information needed for the current inspection instead of assuming the final surface must always be the best interactive view.
Export the animated result as Alembic
The fourth stage uses ROP Alembic to write an .abc file for interchange. The instructor chooses a name and range, leaves the shown options at their defaults and starts the export. He checks that the file exists afterward.
This export concerns animated geometry. It is distinct from a .sim dynamics state, and the lesson does not show an external program resuming Houdini’s FLIP simulation from the Alembic file. Nor does it demonstrate a Maya or Unreal import test in this recording.
A related Houdini-to-Maya lesson does show an Alembic handoff using rigid-body geometry. That is a separate example, not proof that this water export was tested in every destination.
Choose the stage by the work you want to avoid
The dynamics cache avoids repeating the fluid solve. The preview and final-surface caches avoid repeating their respective geometry calculations. Alembic packages an animated geometry result for a separate interchange step. Loading any of these still costs time and memory.
Caption-based revisit ranges are 00:00–03:00 for the test simulation and increased detail; 03:00–07:03 for dynamics files and reading; 07:03–12:03 for the preview cache; 12:03–16:07 for the final surface; and 16:07 onward for Alembic. These are reading references rather than official chapters or seeking controls.
The article has not been reproduced in Houdini. Exact cache paths, current interface changes and receiving-application requirements remain scene-specific. The repeatable inspection is to identify the stage, write its result, activate reading at that stage, and confirm that the displayed output actually uses it.