Articles

How to Create a Kérastase Hair Serum Fluid Effect in Houdini

Includes one exclusive complete course

The exclusive course — a full production tutorial you won't find anywhere else, never sold alone.

Best Seller
Most Loved
Tutorial Camera Rig

ADVANCED CUSTOM CAMERA RIG

ANIMATION · CONSTRAINTS · CUSTOM UI

BUILD A FULLY CUSTOM CONSTRAINT-BASED CAMERA RIG IN HOUDINI WITH A CUSTOM UI PANEL. DESIGN FLEXIBLE SYSTEMS FOR PRECISE, CINEMATIC CAMERA ANIMATION ON ANY PROJECT.

€29.99

Freebies
Free Studio HDRI Pack box by Artivoxa showing 60 studio lighting setups with softboxes wrapped around the packaging

Studio HDRI Collection

ASSETS · EXR & HDR · 60 HDRIS

DOWNLOAD 60 STUDIO HDRIS CAPTURED IN A REAL PHOTO STUDIO. LIGHT YOUR PRODUCT AND BEAUTY RENDERS LIKE A PHOTOGRAPHER — SOFTBOX, LANTERN, STRIP AND GRID SETUPS, READY FOR ANY RENDERER.

FREE

ARTILABZ™

Everything You Need to master Houdini.

ARTILABZ™ gives you unlimited access to all Houdini courses, 3D assets, simulation files, textures and tools. updated every month.

01

Premium Houdini Tutorials

Full access to every course — fluid simulation, procedural FX, brand visuals and more.

02

Monthly New Content

Fresh tutorials and assets added every month — your library grows with you.

03

Instant Access to Everything

The moment you join, the full library is yours — no drip-feed, no waiting.

04

Project Files Included

Every tutorial comes with the full Houdini scene file — open every node, learn every detail.

FROM 14.99€/MONTH

How to Create a Kérastase Hair Serum Fluid Effect in Houdini

Have you ever struggled to capture the sleek, flowing quality of a hair serum in your 3D projects? You know the look you want: smooth, luminous streaks that wrap around each strand with realistic motion. But when you dive into Houdini, the fluid simulation can feel overwhelming and unpredictable.

Perhaps you’ve spent hours tweaking particle counts, only to end up with jittery blobs instead of a refined, glossy finish. Or you’ve wrestled with VDBs and found your render times skyrocketing without achieving that signature ultralight, serum-like sheen. It’s frustrating when your creative vision gets lost in technical complexity.

In this article, we address those pain points head on. You’ll gain a clear workflow for creating a Kérastase Hair Serum fluid effect entirely in Houdini. No more guesswork on solver settings or endless trial and error with shaders. We break down each step in terms you can follow at an intermediate level.

By the end, you’ll understand how to generate a stable simulation, refine its surface details, and apply realistic shading so that your CGI hairs drip with authenticity. You’ll also learn optimization tips to keep your scene manageable and your render times reasonable.

If you’re ready to transform your hair serum visualizations from clumsy splashes into polished, professional results, read on. This guide will demystify the process, streamline your approach, and equip you to create stunning serum effects in Houdini.

What references, assets, and project settings should I prepare for a wet-serum hair shot?

Before you dive into SOPs and DOPs, gather visual and technical references that capture both hair movement and fluid adhesion. High‐speed footage of hair being sprayed or dipped in oil reveals how droplets coalesce and slide along individual strands. Macro photography of glossy, serum‐coated tresses highlights how the fluid thickness varies along curves. Collect Kérastase promotional stills to understand the desired stylized sheen and flow patterns.

Next, assemble your core assets. Start with a clean groom from Houdini’s Groom Shelf: a set of guide curves representing root-to-tip flow, embedded with length and thickness attributes. Export a low‐res hair card version for early look‐dev and faster viewport interaction. Prepare a neutral scalp mesh with proper UVs for texture projection. If you’ll use Redshift or Mantra, include shader presets for anisotropic hair and dielectric fluid.

  • Guide groom SOP network with density controls
  • Hair card proxy geometry for fast preview
  • Scalp mesh with clean UVs and scalp attribute
  • Shader library for hair and fluid mixing

Finally, configure your Houdini project settings to avoid scale mismatches and memory bottlenecks. In the Project pane, set your scene unit to centimeters to match hair diameter conventions. Enable Packed Primitives and GPU Instancing for hair curves in Display Options → Geometry. Under Cache Disk Options, designate a fast SSD folder for SOP and DOP caches. If you plan on simulating with FLIP or Vellum, increase substep count to at least 4 in the solver to capture fine droplet dynamics along thin curves. Lastly, tweak your OpenGL Display Shader to preview refraction and specular highlights interactively—this ensures your workflow stays responsive as you iterate on wet‐serum behavior.

How do I prepare the hair geometry and create robust emission guides for the serum?

Convert groom/guide curves into emission surfaces or ribbons (sweep/polywire) for consistent particle sourcing

Begin by importing your groom curves with the Groom Import SOP, ensuring all guide attributes (position, thickness) are preserved. To generate a uniform emission surface, feed the curves into a Sweep SOP: set Skin By Ribbons, specify a few rows across the width and enable “Closed U” for seamless ribbons. For tubular geometry, swap to a PolyWire SOP, driving the radius from your curve’s width attribute.

  • Groom Import SOP – bring in hair guides
  • Sweep SOP – create ribbon primitives
  • PolyWire SOP – generate tubular meshes
  • Fuse/Smooth – weld seams and even surface density

This approach yields a single, manifold mesh that POP Source or FLIP simulation can sample uniformly. By controlling ribbon density or polywire divisions you avoid sparse emission spots and ensure consistent particle birth across the hair volume.

Bake velocity, UVs and a wetness mask from the groom so emission follows hair motion and styling

Attach a Trail SOP set to “Compute Velocity” to your groom curves before conversion. This stamps each point with v@v, allowing particles to inherit hair motion. Next, use a UV Texture SOP (e.g., Columns projection) on your ribbons or tubes to generate a predictable u,v parameterization along and across the hair strands.

For a dynamic wetness mask, insert an Attribute Wrangle on the groom prior to sweeping:

  • Compute curve parameter: float t = @curveu;
  • Define mask: f@wetmask = fit(pow(t,1.5), 0,1, 0.2,1);
  • Add noise: f@wetmask *= noise(@P * 3.0 + t);

Store velocity (v), UV (uv) and wetness (wetmask) as point attributes on your emission mesh. When connecting a POP Source to your FLIP or particle network, reference those attributes under Source Attributes. This guarantees the serum emission carries the precise motion, mapped UVs for shading, and a gradated wetness control that adapts to hair styling.

How do I set up FLIP emission from hair and control particle seeding and initial velocity?

To drive a FLIP emission from hair guides, first convert your hair curves into an emission-ready point cloud. Scatter points along each curve using a Scatter SOP, leveraging the hair density attribute (for example, “density”) to control seed count. Promote density from primitives to points if needed with an Attribute Promote node.

Next, inside your DOP network use a FLIP Source DOP. Point its SOP Path to the scatter geometry and set Emission Type to “Points.” Enable Activation “Always” or link to a channel for timed bursts. Ensure Volume Initialization is set to “Surface” to avoid volumetric fog around hair.

Fine-tune particle seeding by adjusting the Scatter node’s Force Total Count or Density Scale. Introduce variation via the “Enable Jitter” checkbox and seed value. If you need per-curve control, copy a custom seed attribute onto each curve and reference it in the Scatter SOP’s Seed Expression (e.g., detail(“../hair_geo”, “curve_seed”, ch(“primnum”))).

  • Scatter Density Scale: scales points per hair length
  • Scatter Force Total Count: overrides density for uniform count
  • Seed Attribute: use attribcopy to vary curves

To assign initial velocity, add an Attribute Wrangle before the FLIP Source. Compute a velocity vector based on hair tangents:
v@v = normalize(v@tangent) * chf(“initial_speed”);
or sample guide motion by copying guide’s v attribute into your scatter points. Inside the FLIP Source, enable Use Point Velocity to transfer this v attribute onto new FLIP particles.

By scattering points with controlled jitter and mapping velocity from hair tangents or guide motion, you gain precise control over both the seeding density and initial momentum of your fluid emission, ensuring the serum fluid follows the hair geometry naturally.

How do I simulate adhesion, coating, breakup and dripping behavior (viscosity, surface tension, stickiness)?

Hair serum is a high-viscosity, sticky fluid that must coat strands, form beads and break into drips under gravity. In Houdini, this requires a FLIP setup with tuned viscosity, surface tension and object adhesion. By converting hair curves into a collision SDF and assigning per-particle adhesion, you control how the serum clings, flows and fragments.

  • Hair collision SDF: Use a VDB from Polygons node on the groom geometry. Feed that VDB into a Static Object in DOPs for fluid interaction.
  • FLIP viscosity: In your FLIP Solver, enable viscosity and set the Viscosity Ratio. Values between 5 and 15 generate a thick, serum-like flow. Increase Viscosity Substeps to avoid tearing at high ratios.
  • Surface tension: Enable it under the FLIP Solver’s Particle tab. A Surface Tension Scale of 0.2–0.5 yields cohesive droplets and smooth ligaments.
  • Adhesion/stickiness: Create a per-point attribute “adhesion” on the hair SDF. In the FLIP Solver’s Volume Interaction, reference this to adjust friction and sticking strength (0.8–1.0 for strong cling).

To simulate breakup and dripping, balance surface tension against viscosity. Higher tension smooths filaments; lower viscosity promotes pinch-off. For realistic drips, set Particle Separation around 0.02 and increase substeps (e.g., 4–6) so the Rayleigh-Plateau instability emerges naturally. Finally, use a Particle Fluid Surface SOP to remesh and export the glossy, serum coating on your hair.

How do I convert FLIP particles into a thin, detailed wet-film surface that integrates with hair?

To capture a skin-tight film from your FLIP particles, first convert the particle cloud into a foam-free, thin surface using the Particle Fluids Surface SOP. This node builds a level set volume (VDB) around particles, ideal for capturing micro details of a hair serum effect.

Key SOPs in this stage:

  • Particle Fluids Surface (emits level set VDB)
  • VDB Smooth SDF (refines thin features)
  • VDB Convert (to polygons)
  • PolyRemesh or PolyReduce (optimizes topology)

After smoothing the VDB, use VDB Convert set to “convert VDB to polygons” with a low isovalue (e.g. 0.001). This preserves the film’s silhouette around each hair strand cluster. Follow with PolyRemesh to maintain even quads and avoid stretched triangles that could tear in deformation.

To integrate with hair curves, project the curves onto the wet film with the Ray SOP in “minimum distance” mode. This snaps curves to the fluid surface, ensuring the serum clings naturally. Finally, merge the projected curves and wet-film mesh in your shading network, driving transparency and clearcoat based on their proximity attributes for a realistic, glossy finish.

How do I shade, light, and render the serum to achieve a realistic Kérastase-like finish (materials, AOVs, compositing passes)?

Achieving a premium, glassy-pool serum look begins at the shading stage. In Houdini’s Solaris or traditional OBJ/POP context, assign a Principled Shader tuned for high transmission and subtle subsurface scattering. Set the base color to a faint amber or pale gold, then crank the transmission value to 1.0 and dial the IOR to around 1.47, matching typical cosmetic fluid. Introduce a minute amount of subsurface scattering (scatter weight ~0.05) and tweak the scatter radius to a few millimeters to simulate light penetration through the viscous gel.

Next, refine specular behavior by lowering roughness to 0.02 for crisp reflections and adding slight anisotropy (~0.1) to emulate streaks typical of serum surfaces. Use the clearcoat layers sparingly: clearcoat weight 0.1 and clearcoat roughness 0.005 will give a thin highlight sheen without overpowering the refraction.

Lighting should complement the shader. Build a three-point rig: a warm key light, a cooler fill, and a hair light to accentuate edges. For an editorial, beauty-style appearance, wrap the scene with a soft HDRI environment (studio light) and position rectangular area lights close to the mesh to generate soft gradients. In Solaris, use Hydra Storm or Karma XPU with area lights set to varying temperature values (key ~5600K, rim ~6500K) for color contrast.

  • Enable multi-light in Karma to adjust individual light AOVs interactively in compositing.
  • Capture AOVs: diffuse_direct, specular_direct, transmission, sss, emission, and cryptomatte for selection mattes.
  • Export deep EXR to preserve subtle refraction edges and depth for realistic compositing.
  • Use an ambient occlusion AOV to ground the fluid into its environment with soft contact shadows.

In your compositing tool (Nuke, After Effects), recombine passes using additive blending for transmission and specular. Use the AO pass multiplied over the beauty layer to enhance detail in creases without darkening the pure highlights. Apply a subtle lens blur to the transmission AOV to mimic real camera falloff through liquid. Finally, grade the composite: boost midtone contrast, add a gentle glow on specular peaks, and fine-tune hue to a rich, luxurious gold that echoes the Kérastase branding.