Overview
Lava pours from above onto a Bialetti moka pot sitting on rocky ground. As the lava flows, it cools over time and on contact with the pot — viscosity increases dynamically via a dual-ramp POP VOP system that reads both particle age and speed. Hot, fast-moving lava stays fluid; slow or old lava thickens and solidifies. The FLIP sim particles are meshed through a VDB pipeline with a dilate-smooth-erode pass for clean, organic lava surfaces, and exported as Alembic for final rendering in Blender.
Project Details
- Client: Personal
- Duration: 10 Seconds
- Category: 3D Animation
- Timeline: 240 frames @ 24fps
Tools Used
Houdini FLIP Lava Simulation
The lava source is a deformed sphere positioned above the pot, fed through a FLIP Source with ultra-fine particle separation (0.0017) and 6x oversampling for dense, smooth initial lava. A rest attribute is baked onto emitter particles before the DOPnet — this travels with each particle through the sim for stable procedural texturing in Blender without texture swimming.
- FLIP Solver — time scale 0.5 for heavy slow-motion lava feel
- Substeps: 6 — high, needed for stable viscosity solving
- Viscosity: per-particle, driven by POP VOP
- Viscosity precision: double — stable thick-fluid behaviour
- Reseeding: off — preserves particle count and age attributes
- Gravity: standard -9.81 Y
Dual-Ramp POP VOP Cooling Viscosity
The heart of the effect. A POP VOP inside the DOPnet dynamically adjusts each particle's viscosity every timestep based on two factors: age (how long the particle has existed) and speed (how fast it's currently moving). The two are multiplied together and clamped.
Age Ramp
Particle lifetime → base viscosity
- Min viscosity: 2.5 (hot, fluid)
- Max viscosity: 6,000 (cooled, nearly solid)
- Delayed onset — particles stay fluid for first ~16% of life
- Rapid thickening between 47-72% age
Speed Ramp
Velocity → viscosity multiplier (1x to 20x)
- Aggressive cutoff at 9.3% of speed range
- Any moving particle: viscosity stays low
- Near-stationary particles: full 20x multiplier
- Creates cooling-on-contact behaviour
Combined Result
- Fresh + flowing: viscosity ~2.5 — very fluid
- Old + flowing: viscosity ~6,000 — still somewhat fluid due to 0.2 global scale
- Fresh + stopped: viscosity ~50 — starting to thicken
- Old + stopped (on pot): viscosity ~120,000 — nearly solid
VDB Meshing Pipeline
Raw FLIP particles are converted into smooth polygon meshes through a VDB From Particles node (voxel size 0.002) followed by the classic dilate-smooth-erode pass:
- Dilate (VDB Reshape SDF, radius 1, 3 iterations) — expands the SDF outward, filling gaps between particles into a blobby connected surface
- Smooth (VDB Smooth SDF, mean value, radius 3) — smooths the dilated surface
- Erode (VDB Reshape SDF, radius 1, 3 iterations) — shrinks back to original volume with a much smoother surface
- Final smooth — masked by a speed volume so flowing lava stays glossy while cooled lava retains surface detail
VDB Collision Setup
All scene colliders were modelled in Blender and imported as Alembic — pot, rocks, and ground plane. The pot and rocks are converted to VDB volumes for accurate FLIP collision. The pot uses a double-collision setup (two separate Static Objects referencing the same VDB) to prevent FLIP particles leaking through thin shell geometry. All colliders have friction set to 1.0 so lava sticks to surfaces on contact.
Techniques & Nodes
Houdini
- FLIP Solver v2.0 (viscosity, time scale 0.5)
- POP VOP (dual-ramp viscosity system)
- FLIP Source (0.0017 separation, 6x oversample)
- VDB From Particles (0.002 voxel size)
- VDB Reshape SDF (dilate + erode)
- VDB Smooth SDF (speed-masked)
- Volume Rasterize Attributes (speed field)
- Rest SOP (stable texture coordinates)
- VDB From Polygons (collision volumes)
- Static Object (double pot collision)
- Particle Sink (overflow removal)
- Alembic ROP export
Blender
- Scene assembly & collider modelling
- Alembic geometry cache import
- Rest-attribute procedural lava texturing
- Final lighting & rendering
Houdini → Blender Export Pipeline
- Lava mesh: Alembic (.abc) with Cd, rest, and material attributes
Let's work on something amazing together.
Bring your vision to life with cutting-edge visual effects.