Convincing Cookie & Biscuit CGI depends on more than adding noise to a rounded cylinder. The silhouette must communicate the product type, the baked shell must differ from the interior crumb, and every crack, inclusion and fragment must make sense at real-world scale. In a Houdini-centered workflow, these qualities are best built as art-directable layers rather than one destructive procedural effect.
This guide covers reference analysis, procedural modeling for whole and broken products, layered biscuit materials, controlled crumb generation, steam effects, lighting and final troubleshooting. The goal is a reusable asset that can produce believable advertising variants without sacrificing composition or iteration speed. Although the examples focus on Houdini, the underlying decisions—separating visual scales, matching detail to the camera and preserving control—apply to most food product visualization pipelines.
What makes a cookie or biscuit believable in CGI?
Begin by defining what the product is meant to communicate. A soft cookie, a dry biscuit, a laminated cracker and a filled product have different silhouettes, fracture behavior and material responses. Bake level, diameter, thickness, edge profile and moisture cues should therefore be established before procedural detail is added.
Analyze references at three visual scales:
- Primary form: silhouette, diameter, thickness, puffing and overall deformation.
- Secondary form: cracks, broad swelling, chipped edges, inclusions and major pores.
- Tertiary detail: fine grain, micro-pores, roughness breakup and subtle color variation.
The larger forms should remain readable before tertiary detail is introduced. If a clay render already looks too smooth or mechanically perfect, additional shader noise will not solve the underlying modeling problem.
Separate the baked shell from the interior crumb
A broken or sliced cookie needs two connected but visually distinct regions. The outer shell controls browning, crispness, edge wear and baked surface displacement. The interior controls porosity, density, moisture and the irregular profile of the exposed crumb.
This separation is useful even when the first shot shows an intact product. It allows the same source asset to support whole, broken, bitten and sliced variants without asking a surface shader to imitate geometry that does not exist. A broken edge should have torn ridges, cavities and an uneven crust transition; a deliberate slice may be flatter, but it still needs enough crumb structure to avoid looking like a clean Boolean cut.
Use references to determine the appropriate pore distribution. A dense biscuit may have a compact interior with small, closely spaced voids. A softer cookie can support larger cavities, stretched regions and uneven pockets around chocolate, nuts or fruit. Uniform holes read as a procedural pattern rather than baked food.
The same crust-and-crumb distinction appears in larger baked products. Comparing the asset with a bread and pastry CGI workflow can help clarify which structural principles transfer and which details must be reduced to cookie scale.
Establish scale from photographic references
References should define more than color. Estimate the product’s real diameter and thickness using packaging, utensils or another known object. Then compare pore diameter, crack width, chip size and crumb fragments against those dimensions. Familiar food products expose scale errors quickly: pores that are too large can make a biscuit look like bread, while coarse steam motion can make the entire product appear miniature.
Inspect the following before modeling:
- Silhouette: diameter, thickness, edge collapse, puffing and asymmetry.
- Surface structure: broad swelling, flattened contact areas, pores, cracks and inclusions.
- Reflectance: whether the product appears dry, oily, matte, glazed or lightly polished by handling.
- Bake pattern: darker edges, toasted patches, pale centers and local variation around inclusions.
- Interior: crumb density, void size, moisture impression and fracture direction.
- Shot requirements: which intact, broken, sliced or bitten states the campaign needs.
Even a molded industrial biscuit usually contains small changes in edge thickness, browning and compression. Preserve its designed shape, but avoid perfectly repeated pores, cracks and color patches across multiple copies.
Build a production-friendly cookie model in Houdini
Start with a controlled hero shape, not random deformation. The recognizable product silhouette should remain stable while procedural layers create believable variation around it.
Create the base form and reusable masks
A curve-based profile is a practical starting point. Clean and resample the outline, convert it to a surface, and extrude it to the required thickness. For a round cookie, retain the broad circular read while introducing restrained changes in radius and edge continuity.
- Set the base proportions. Expose diameter, thickness and edge radius as parameters. These values affect both scale and the way highlights travel across the product.
- Round manufactured edges. Use a controlled bevel or shaped profile. A sharp edge looks cut out, while an oversized bevel makes the biscuit appear inflated or melted.
- Add low-frequency variation. Introduce shallow bulges, dents and thickness changes with a low-amplitude noise field or custom radial deformation.
- Create region masks. Store attributes for the top, side, underside, center and perimeter. These will later control deformation, browning, wear and debris.
In Houdini, Attribute Noise or a custom VOP deformation is more useful when multiplied by masks than when applied uniformly. An edge mask can allow stronger wear near the perimeter, while a radial mask protects the center for branding, inclusions or a clean advertising highlight.
Combine several frequencies instead of increasing the strength of one noise field. Broad deformation can represent baked swelling, medium-scale variation can break up the edge, and fine detail can remain in displacement or bump. Keeping high-frequency texture out of the base mesh makes the asset easier to edit and reduces unnecessary scene weight.
Expose production parameters such as size, thickness, edge_wear, surface_bulge, bake_variation and variant_seed. A seed should alter imperfections without changing the product specification. This creates related variants more reliably than duplicating the asset and editing each copy by hand.
Model broken, sliced and bitten states downstream
Keep the intact source model available upstream and branch into shot-specific states. This preserves a stable product master while allowing a foreground fracture to carry more detail than a background biscuit.
For a planned advertising composition, a controlled cut is often more useful than a fully physical fracture. Establish the primary separation with a Boolean or clipping operation, then distort the exposed plane with localized displacement, remeshing or point deformation. Voronoi fracture can supply fragments, but an unedited cellular pattern usually looks too mechanical for baked food.
A convincing break requires four structural decisions:
- Orient the break for the camera. A crosswise fracture clearly exposes the crumb, while a diagonal break adds depth and a more dynamic silhouette.
- Distort the separation plane. Use broad deformation to create the torn profile before adding pores.
- Create a crust-to-crumb transition. Add a narrow, irregular band rather than ending the browned shell at a perfectly sharp boundary.
- Provide real depth. Model or displace several ridges and cavities so the surface casts readable shadows.
Assign the generated interior to a named primitive group and derive a distance-based blend around its border. This keeps the material transition editable without rebuilding the fracture. Give the crust enough apparent thickness for the camera; a paper-thin shell creates an obvious CG seam.
Large cavities and torn ridges should be modeled or displaced when they influence the silhouette or cast visible shadows. Smaller pores can use displacement, bump or a procedural texture. Avoid identical spherical holes. Vary pore scale, orientation and density using stable position data, curvature and clustered masks. Include compact regions as well as open cavities so the crumb does not resemble foam.
Keep chocolate chips, nuts and fruit pieces in a separate procedural branch. Controls for density, scale, clustering and embed depth allow the same body asset to create several products while preserving the intended silhouette.
Build a layered biscuit material
A realistic biscuit material should describe the baked crust, exposed crumb and inclusions as related physical regions. Treating the entire asset as one base color with high-frequency noise usually produces a plastic or dirty result.
Separate baked color, roughness and relief
Begin with broad color variation. A positional or object-space gradient can create a lighter center and darker perimeter, while low-frequency noise introduces uneven toasted areas. Broad variation must read from the final advertising camera; fine speckle alone creates activity without communicating baking.
Drive the interior with a dedicated group or attribute. Exposed crumb is generally lighter than the crust, but it should not be a flat beige patch. Add restrained warm and cool variation, slightly darker pockets around major voids and occasional toasted areas near the shell.
Roughness should follow the same material logic:
- Browned crust: moderately rough with subtle variation; toasted or oily patches may be slightly smoother.
- Interior crumb: generally dry and rough, with localized changes around torn surfaces and pores.
- Chocolate or glaze: smoother where appropriate, using a separate mask rather than inheriting the biscuit’s porous response.
- Cracks and cavities: somewhat darker through occlusion and depth, but not uniformly black.
Use displacement for major cracks, cavities and baked ridges. Reserve bump or normal detail for fine grain and shallow pores. In a MaterialX or Karma network, separating these scales makes it straightforward to reduce fine detail on distant assets without changing the hero material.
Object-space coordinates, rest positions, UVs or baked attributes keep the procedural texture attached to the geometry. Screen-dependent patterns can swim during animation. When several cookies share one material, bind a per-object seed so toasted areas and pores do not repeat in the same locations.
Match material detail to the final camera
A hero close-up may require displaced pores, explicit fracture cavities and a dedicated crumb shader. A background product can use the same broad color logic with simplified bump. Pixel coverage, lighting and depth of field should determine the level of detail—not the maximum resolution available in the scene.
Evaluate the shader using the intended lens, framing and focus distance. Raking light reveals shallow cracks and relief, while broad frontal light places more responsibility on color and roughness separation. Depth of field can hide fine texture, but it cannot correct an overly smooth foreground silhouette.
Use subsurface scattering cautiously. A moist or freshly exposed interior may benefit from restrained scattering, but a dry biscuit is primarily opaque. Excessive subsurface response makes thin edges waxy and can undermine an otherwise photorealistic cookie render.
Generate crumbs and fragments procedurally
Crumbs should explain how the product was broken, handled or placed. Divide them into categories rather than scattering one object everywhere:
- Hero fragments: a few larger pieces with distinct silhouettes and visible interior crumb.
- Medium crumbs: related shapes concentrated around breaks and contact zones.
- Fine debris: sparse particles or small instances that add local texture.
Use masks to control density and placement
Create dedicated scatter surfaces for the plate, tabletop, product top and exposed break. Groups and attributes should determine which debris category each region accepts. Proximity to the fracture can increase density, while gravity-facing masks can prevent fragments from appearing on implausible undersides.
In Houdini, generate points separately from the source meshes and drive them with painted masks, procedural fields or distance ramps. Attributes such as pscale, orient, Cd and a debris-category value provide downstream control. This separation makes requests such as fewer foreground crumbs or a cleaner branding area easy to accommodate.
Use a small library of irregular source meshes rather than one sphere copied hundreds of times. Vary source index, scale, rotation, color and orientation while preserving the material relationship with the main product. Packed primitives or instancing keep repeated debris manageable; distant crumbs only need the correct projected size, silhouette and shading response.
Combine procedural coverage with manual art direction
A scatter should provide a plausible base, not decide every visible placement. Remove pieces that compete with the cookie, then promote important foreground instances to unique geometry. A larger fragment near the fracture, smaller pieces farther away and sparse fine debris can suggest a break more clearly than a uniform halo.
Use ray intersections or surface projection to establish resting positions. Align each fragment broadly to the hit normal, then vary tilt, embedment and height. Small offsets can prevent z-fighting, but uniform offsets make every crumb appear to float. Contact shadows should confirm correct placement rather than hide poor intersections.
If the shot implies falling or rolling debris, a lightweight RBD or particle settling pass can establish plausible motion. Cache the result and edit the visible pieces afterward. For a still image, direct placement is often more efficient because compositional clarity matters more than simulation complexity.
Create readable steam without obscuring the product
Steam is a storytelling device, not a correction for weak modeling or shading. It should emerge from a plausible warm region such as a freshly exposed interior, hot filling or nearby heated surface. Emitting uniformly from the entire cookie usually creates an unconvincing halo.
Source the effect from an interior group, fracture mask or selected points. Store emission strength, direction, temperature or lifetime attributes, then shape the motion with restrained buoyancy, turbulence and dissipation. For a still image, physically accurate vapor may disappear too quickly, so some temporal exaggeration is reasonable when it preserves the impression of warmth.
Choose curves, simulation or a hybrid
Procedural curves or wisps work well when a still image needs a small number of controllable tendrils. Generate curves from the source region, lift them with low-frequency noise, taper their ends and vary width and opacity. They can then become a soft volume or translucent renderable geometry. This method offers precise control around the product silhouette, logo and focal crumb detail.
Sparse Pyro is more appropriate when the vapor must develop naturally over time, interact with nearby surfaces or show layered motion during a camera move. It offers richer breakup but adds dependencies such as voxel size, cache length, velocity scale, substeps and volume shading.
A hybrid approach can combine a simulated base with a few art-directed wisps that restore a clear shape near the product. Whichever method is used, judge it through the final camera. Fine strands may disappear after depth of field, motion blur, downsampling or compositing.
Keep steam distinct from smoke
Steam should remain soft, translucent and low-density. Dark cores, hard boundaries, excessive opacity or aggressive turbulence can make it resemble smoke, dust or a graphic overlay. Use gentle extinction and allow the vapor to reveal background color rather than becoming a solid white form.
Match wisp width, rise speed and breakup frequency to the physical size of the biscuit. Large curls and rapid motion can make the product appear miniature. A macro shot may support delicate filaments, while a wider composition may require broader tonal shapes to remain visible at delivery resolution.
Build visibility through placement, background contrast and lighting before increasing density. A pale volume over a bright background may need a darker local backdrop or a controlled rim light. Raising opacity first often obscures the crust, exposed crumb and branding.
Where the production setup allows, render steam separately. A dedicated volume pass makes it easier to adjust density, warmth and contrast without re-rendering the hero asset. Verify that the pass respects the final depth of field, motion blur and holdouts so the vapor remains integrated rather than pasted over the image.
Use lighting and camera choices to reveal food texture
Modeling and shading only matter when the image makes their differences visible. Start with a broad directional key that describes the overall form, then add controlled fill or bounce to keep the shadow side readable. This arrangement can reveal pores, edge relief and exposed crumb without flattening the cookie into an evenly lit disk.
Use low-angle or raking light selectively to emphasize cracks and baked surface displacement. A source that is too small or too grazing can create distracting highlights, so keep the specular response restrained and allow roughness variation to carry part of the texture. A dry biscuit should not appear varnished or greasy unless that finish belongs to the product.
Camera height and focal length should support the advertising message. A low camera can make the product feel substantial, while a macro view prioritizes pores, inclusions and fracture detail. A wider frame may be necessary when packaging or serving context is part of the composition. When the product must coexist with a box or wrapper, the staging principles used in food packaging CGI can help preserve hierarchy between the edible asset and its branding.
Set focus around the intended message. A sharp broken edge often communicates texture better than a sharply focused top crust. Excessive blur hides the detail built into the asset, while an unnecessarily deep focus range can make the scene feel flat. Check the final crop and delivery resolution rather than approving the shot only in a large viewport.
Useful AOVs may include diffuse, specular, shadow and volume components. They allow controlled adjustments to baked color, highlights, debris grounding and steam visibility. Keep pass names, caches and shot versions organized so look-development changes do not require reconstructing the Houdini scene.
Common realism failures and practical fixes
Diagnose weak renders in a fixed order: silhouette and scale first, then crust and crumb, followed by debris, steam, lighting and compositing. This prevents a modeling issue from being buried under texture noise or a lighting problem from being treated with stronger displacement.
The cookie looks plastic
Likely causes: a smooth silhouette, uniform roughness, excessive specular response or no distinction between crust and interior.
Fix: refine the edge profile, add broad baked-color variation and use shared masks to coordinate color, roughness and displacement. Keep the crumb drier and structurally different from the shell. Reduce subsurface scattering if edges appear waxy.
The procedural pattern is obvious
Likely causes: repeated edge profiles, identical pore maps, duplicated toasted patches or a single crumb source.
Fix: vary several systems rather than changing one global seed. Use alternate crack masks, pore scales, fragment shapes and bake distributions while preserving the product’s overall design.
The scale feels wrong
Likely causes: oversized pores, cracks or crumbs; excessive microdisplacement; coarse steam motion; or an unsuitable lens and camera distance.
Fix: compare every detail category against the same real-world dimensions. Evaluate the result through the final shot camera rather than an isolated close-up.
The broken edge looks fake
Likely causes: a flat cut, paper-thin crust, uniformly spherical pores or a material boundary that does not follow the fracture.
Fix: establish broad torn geometry first, add a crust-to-crumb transition and reserve pore detail for secondary breakup. Make sure detached fragments share the same material construction and sit convincingly on the receiving surface.
The surface remains flat despite heavy detail
Likely causes: too much high-frequency noise, insufficient medium-scale form or frontal lighting.
Fix: separate silhouette variation, baked swelling and fine grain. Adjust the key light so medium-scale relief creates visible gradients before increasing displacement strength.
The steam is invisible or overpowering
Likely causes: poor background contrast, incorrect physical scale, excessive density or chaotic motion.
Fix: reposition the vapor, refine its rise and breakup, and use controlled backlighting. Adjust the separate steam pass in compositing where possible instead of washing out the beauty render.
Final production checklist
- Silhouette: Confirm believable thickness, controlled asymmetry and clean subdivision without unintended faceting.
- Materials: Check that baked crust, exposed crumb and inclusions remain distinct but physically connected.
- Scale: Compare pores, cracks, fragments, steam and camera perspective against one consistent reference.
- Breaks: Verify that fracture boundaries have broad shape variation, sufficient depth and a credible crust transition.
- Debris: Remove repeated or floating crumbs and protect negative space around the hero product.
- Variation: Review every visible instance for repeated silhouettes, pores, bake patches and fragment arrangements.
- Steam: Keep vapor readable without covering the focal texture, product outline or branding area.
- Camera and light: Confirm that the intended detail survives focus, crop, downsampling and final output resolution.
- Scene stability: Test material references, caches, volume paths, frame ranges and the published Houdini network.
- Controls: Expose useful parameters for variation seeds, pore scale, fracture detail, crumb density and steam intensity instead of hard-coding shot decisions.
Store geometry, materials, debris, steam and render controls as separate but connected parts of the asset. That structure allows a softer crumb, cleaner plate or stronger warmth cue to be revised without rebuilding the entire shot. The most effective Cookie & Biscuit CGI workflow is not the one with the most procedural detail; it is the one that keeps scale, variation and visual hierarchy under control from reference analysis to final render.