Have you ever stared at a simulation of oil or slime and felt something just doesn’t look right? It’s frustrating when your Houdini fluids refuse to flow or drip like they should, especially after hours of tweaking.
As an intermediate artist, you know that mastering fluid viscosity is key to realism, but the settings can feel like a maze. Too low, and your lava looks like water; too high, and your mud won’t budge.
Understanding how viscosity influences motion and surface detail will save you time and elevate your scenes. By exploring key parameters and practical tips, you’ll gain control over how oil, slime, and lava behave in your next sim.
Get ready to demystify the tweaks that bring sticky goo and molten streams to life. Soon, you’ll know exactly which values to adjust for believable, dynamic fluids in Houdini.
How does fluid viscosity work in Houdini and why does it matter for oil, slime, and lava?
In Houdini the FLIP solver models fluid viscosity as a diffusion term in the Navier-Stokes momentum equation. By default, FLIP uses kinematic viscosity (ν), which divides dynamic viscosity (μ) by density (ρ). You activate it under the Solver tab, adjusting the viscosity value and selecting between Eulerian and particle-based viscosity methods. This controls how momentum diffuses between neighboring fluid parcels.
Each FLIP particle carries a viscosity attribute, computed each substep. High viscosity slows velocity gradients, producing smooth, slow flows. Low viscosity allows rapid acceleration and thin jets. Houdini solves the diffusion term using finite differences on the velocity grid, then transfers results back to particles—this procedural loop ensures stability even at extreme values.
For oil, slime, and lava, unique behavior emerges when tuning viscosity:
- Oil: Medium-high ν produces thick ripples and gentle splashes, ideal for spills or drips.
- Slime: Very high ν mimics yield stress; use custom ramps to freeze motion below a threshold, simulating Bingham plastics.
- Lava: Couple FLIP viscosity to a temperature field from Pyro. Map ν vs. temperature to create rigid crusts and flowing cores.
Understanding and tweaking fluid viscosity in Houdini is key to achieving realistic deformation, splash breakup, and flow coherence in oil slicks, gooey slime, and molten lava. Proper settings ensure your simulation behaves according to the physical properties of each material, saving iterations and enhancing visual fidelity.
Which Houdini solver and simulation scale should I use for viscous fluids?
Selecting the correct solver is the first step. Houdini’s FLIP solver combines grid and particles to simulate liquids with moderate to high viscosity, offering stability and detail. For extremely sticky fluids—lava or tar—the SPH solver excels by computing direct particle interactions, reducing volume loss in cohesive flows.
Equally important is defining your simulation scale. Houdini units default to meters, so mapping 1 unit to 1 m gives real-world consistency. For fine viscous features—droplets and strands—scale your geometry and particle separation so key details fall between 0.01 and 0.2 units, keeping viscosity and timestep within stable numeric ranges.
- FLIP solver: best for oil (5–100 cP) and slime (100–1,000 cP)
- SPH solver: ideal for lava (>10,000 cP) or tar
- Particle Separation: 0.005–0.02 units for oil/slime; 0.02–0.05 units for lava
- Scale domain so a typical droplet measures 0.01–0.1 Houdini units
- Use XSPH or Predictive-Corrective viscosity methods in FLIP DOPs
| Fluid Type | Solver | Particle Separation | Scale (units) |
|---|---|---|---|
| Oil (5–100 cP) | FLIP | 0.005–0.02 | 0.01–0.2 |
| Slime (100–1,000 cP) | FLIP | 0.01–0.03 | 0.02–0.5 |
| Lava & Tar | SPH | 0.02–0.05 | 0.1–1.0 |
How do I set viscosity, density, surface tension and temperature for oil, slime and lava?
Recommended numeric ranges and units for oil, slime and lava
In Houdini’s FLIP Solver the key parameters are viscosity (dynamic viscosity in Pa·s), density (kg/m³), surface tension (N/m) and temperature (K). Below are typical production ranges:
| Fluid | Viscosity (Pa·s) | Density (kg/m³) | Surface Tension (N/m) | Temperature (K) |
|---|---|---|---|---|
| Oil | 0.05–0.5 | 800–950 | 0.020–0.035 | 293–333 |
| Slime | 1 000–10 000 | 1 000–1 200 | 0.050–0.080 | 293–313 |
| Lava | 1 000–1e8 | 2 400–3 000 | 0.200–0.300 | 1 600–1 900 |
Enable “Viscosity” in the FLIP Solver and choose the PD or IISPH method for stiff fluids. Set surface tension under the Surface tab. Adjust density on the Solver’s Particle tab to control mass and buoyancy.
Driving viscosity with temperature fields, attributes and VEX
To simulate cooling lava or heating oil, drive per-particle viscosity from a scalar temperature field. The SOP workflow:
- Generate or advect a volume temperature field onto particles via a Volume Sample or Scatter SOP.
- Use an Attribute Wrangle or Volume VOP before the FLIP Solver to compute @viscosity from @temperature.
Example VEX in an Attribute Wrangle (Run Over: Particles):
float tmin = 1600; float tmax = 1900; float viscHot = 1000; float viscCold = 1e6;
f@viscosity = fit(@temperature, tmax, tmin, viscHot, viscCold);
Finally, in the FLIP Solver activate “Use Particle Viscosity” so each particle uses its viscosity attribute. Increase substeps and dampening when viscosity spans several orders of magnitude to maintain solver stability.
How do I control breakup, cohesion, yield stress and non-Newtonian behaviour to get the right motion?
Breakup arises when surface tension is too low or particle separation too coarse, causing FLIP particles to fragment into spray and droplets. Cohesion counteracts this by gluing particles. Tuning these forces balances fragmentation and bulk fluid appearance, from oil rivulets to bubbling lava flows.
Control breakup & cohesion in Houdini’s FLIP solver via its Surface Tension parameters. Lower tension yields finer breakup; higher tension and cohesion preserve blobs. Core settings include:
- Surface Tension Strength – scales liquid fragmentation.
- Cohesion – resists breakup by attracting nearby particles.
- Particle Separation – defines base droplet size and resolution.
Yield stress fluids hold shape until local stress exceeds a threshold. In the FLIP solver’s Viscosity tab, set Type to “User” and build a Gas VOP. Inside, read the built-in strainRate magnitude, compare it to your yield stress constant, and output high viscosity below threshold and low viscosity above.
For non-Newtonian behaviour like shear-thinning slime, use the same User VOP to map strainRate through a ramp. Adjust the ramp curve to approximate Carreau or power-law models, yielding viscosity that decreases or increases with shear. Preview strainRate and viscosity fields via Volume Slice SOP to refine the mapping.
Finally, ensure solver stability when enforcing yield stress by increasing FLIP substeps and reducing particle separation. Higher substeps resolve stress transitions cleanly, while tighter separation refines breakup regions and avoids tunneling under high cohesion or yield stress.
How should I remesh, shade and composite viscous fluids to match oil, slime and lava visually?
Begin by converting your FLIP simulation (with enabled viscosity) into a surface mesh. Use a VDB from Particles node to build a level set, then apply VDB Remesh for clean quad topology. If you need lower poly counts, convert to polygons and target density with PolyReduce. This workflow preserves the broad shear streaks of oil, the drippy tendrils of slime and the chunky crust of lava.
For shading, leverage Houdini’s Principled Shader or your preferred renderer’s layered material. Oil demands high specular, an IOR around 1.47 and micro-normal noise for subtle surface variation. Slime benefits from a thin subsurface scattering layer, tinted by depth and a touch of translucency. Lava uses an emission layer driven by a temperature or custom attribute, blending a dark basaltic diffuse with glowing fissure patterns.
In compositing, export multi-layer EXRs with AOVs for diffuse, specular, SSS, emission and velocity. In COPs or Nuke, grade each pass: add a glow to lava cracks via an emission threshold, sharpen oil highlights in the specular pass, and enhance slime translucency in the SSS channel. Reproject motion blur using the velocity pass and fine-tune color casts—cool blues for oil, vibrant greens for slime, warm oranges for lava—to sell each viscous nature.
- VDB from Particles + VDB Remesh for crisp surfaces
- Principled Shader or Redshift Material for layered BSDF
- Composite in COPs/Nuke using multi-layer EXR AOVs
How do I stabilize viscous simulations and fix common artifacts (leaks, jitter, slow convergence)?
Viscous fluids in Houdini can suffer from particle leaks at boundaries, jittery motion in high-viscosity regimes, and slow convergence of the solver. These issues stem from stiff forces, under-resolved collision geometry, or too few substeps. Addressing them requires tuning the Flip Solver’s integration, collision setup, and viscosity iterations.
- Increase substeps and viscosity iterations
- Refine collision SDFs and adjust tolerance
- Switch to implicit viscosity integration
- Apply velocity smoothing or post-solve filters
1. Numerical stability
Under high viscosity, explicit integration blows up unless you lower the CFL or raise substeps. In the Flip Solver under Simulation, set CFL < 4 and boost Substeps to 2–4. Under Viscosity, choose Implicit integration and increase Iterations to 10–20. Implicit solves stiff viscosity forces more robustly and converges faster than explicit methods.
2. Fixing leaks at collision boundaries
Leaks happen when particles penetrate coarse collision SDFs. Export your collision geometry to a VDB SDF with tight voxel size (1–2× particle separation). In the Collision tab, raise Surface Tolerance slightly (0.01–0.02) to seal small gaps. If fluid still escapes, enable Use Geometric Cloth Thickness or add a thin tube SOP to grow your collider.
3. Smoothing jitter and noise
High-viscosity simulations often show per-particle velocity jitter. Under Particle Motion, enable Velocity Smoothing and set a small radius (1.5× particle separation). You can also apply a VEX-based post-solve filter on v to damp high-frequency noise. For extreme slimes, a low-amplitude Pyro self-diffuse step can give a more cohesive look.
4. Addressing slow convergence
If your sim grinds to a halt, first profile with the Performance Monitor. Reducing particle count or increasing particle separation speeds up solve. Use the Padding option in flip tanks to limit active domain. For large scenes, consider splitting viscosity and advection into separate flip solves and merging results with a DOP Import.
By understanding how CFL, integration type, SDF resolution, and solver iterations interact, you can stabilize even highly viscous fluids. Experiment with incremental changes: small substep increases, minor SDF refinements, and iterative viscosity tuning yield the smoothest, leak-free simulations.