Ever drop a virtual jelly cube in Houdini only to see it hit the ground like a rock? Do you wrestle with soft-body settings, trying to coax a playful, wobbly bounce but end up with awkward jitter or a shapeless blob?
Simulating a realistic jelly cube can feel daunting when the default Vellum solver yields results that lack bounce or look overly stretchy. You tweak stiffness and mass, but the cube either flattens instantly or behaves like overcooked gelatin.
If you’re puzzled by collision setup, constraint networks, or substep control, you’re not alone. Beginners often hit a wall when moving from simple rigid bodies to soft dynamics in Houdini.
This introduction is your entry point to a clear workflow for a satisfying bounce. You’ll learn how to configure Vellum constraints, set collision geometry, and dial in the right stiffness so your jelly cube springs to life.
What do I need to start this tutorial (Houdini version, system requirements, and prefab assets)?
Before diving into the jelly cube simulation, ensure you have Houdini 19.0 or later. Vellum received major performance and feature updates in 18.5, but 19.0 stabilizes the latest cloth and soft-body solvers. Running an older version risks missing solver parameters and shelf tools referenced in this guide.
Your workstation should meet the following baseline:
- CPU: 6-core (12-thread) Intel or AMD with AVX support for parallel constraint solves.
- RAM: Minimum 16 GB, ideally 32 GB to cache intermediate frames during higher-resolution sims.
- GPU: NVIDIA GTX 1660 Ti or better if you plan to accelerate viewport playback via OpenCL.
- Storage: SSD for fast I/O when loading and writing .bgeo and simulation caches.
Finally, download or prepare these prefab assets to streamline setup:
- A simple cube geometry (grid subdivided to 10×10×10 faces) with UVs laid out—this ensures uniform internal constraint distribution.
- A basic material network (SHOP or MTLX) with a translucent jelly shader or Principled Shader preset.
- Optionally, a preconfigured vellumconstraints and vellumobject digital asset to skip manual node wiring—available from SideFX Orbolt or your production library.
How should I model and prepare the cube so it deforms well with Vellum?
To achieve a smooth, jiggly bounce with the Vellum solver, start with a finely subdivided cube. Uniform topology distributes strain evenly, preventing stiff spots or tearing. Avoid non-manifold edges or stretched UVs—these cause erratic deformations. Instead, generate a quad-dominant mesh with consistent edge length so the solver can calculate internal forces predictably.
Remesh or voxelize the cube for even strain distribution
Houdini offers two main paths to uniform topology:
- Remesh SOP: Set a target Edge Length (e.g., 0.1–0.2 units) and enable “Use Polygons.” Adjust iterations until faces are evenly sized.
- VDB workflow: Use IsoOffset to voxelize the cube at a chosen voxel size. Convert the resulting level set back to polygons with Convert VDB, yielding clean quads.
Both methods produce a mesh where each element shares similar volume. This consistency lets Vellum’s internal constraints deform the cube smoothly, delivering that satisfying jelly-cube bounce.
How do I set up the scene: collider, ground, gravity, and initial placement for a clean bounce?
Start by creating a static ground plane as your collider. In the OBJ context, drop a Grid SOP and size it larger than the cube’s footprint. Dive into a DOP Network, place a Static Object, and set its Geometry Path to the grid. Enable “Collisions” so the Vellum Solver can detect impacts against this plane.
- Grid SOP → Static Object (collider)
- Vellum Configure Softbody → Vellum Solver
- Gravity Force node linked into the solver
Inside the DOP Network, add a Gravity Force node and connect its output to the Vellum Solver. Use an acceleration vector of (0, –9.81, 0) for realistic weight. In the solver’s Properties, increase substeps (for example, 8–12) to prevent the cube from tunneling through the ground during fast motion.
Finally, place the jelly cube at an initial height that prevents geometry intersection on the first frame. In the SOP network for your cube, insert a Transform SOP and raise it so the bottom face sits just above the grid—around 0.1 units gap. This margin ensures the solver can compute proper contact forces before the bounce, resulting in a clean, satisfying jiggle.
How do I build the Vellum network to make the cube behave like jelly?
To recreate the classic jelly bounce, build a procedural SOP chain that defines independent stretch, bend and damping constraints. Then solve them with a Vellum Solver to control elasticity, flexibility, and energy loss.
Configure Vellum constraints: stretch, bend, and damping
- Geometry setup: use a Box SOP (size 1), followed by a Subdivide SOP (iterations 2) to add enough points for deformation.
- Stretch constraints: add a Vellum Constraints SOP, set type to “Distance,” group to * and Stiffness to ~200 for strong elastic response.
- Bend constraints: chain another Vellum Constraints SOP, choose “Bend,” group * and Stiffness around 10 to control flexural resistance.
- Strain damping: in the Vellum Solver SOP enable Strain Damping under Advanced and set it to 0.1–0.2 to gradually dissipate oscillations.
- Solver settings: enable self-collisions and set Collision Padding to 0.01 to prevent geometry intersections during heavy deformation.
Optionally, scatter internal points and use a separate Vellum Constraints node with type “Volume” and stiffness ~10 to preserve volume and enhance the squishy effect under compression.
Which Vellum parameters should I tune for a satisfying bounce (stiffness, damping, mass, friction, substeps)?
A well-bounced jelly cube relies on fine-tuning a handful of Vellum parameters. Adjusting stiffness, damping, mass, friction, and solver substeps gives you control over shape retention, energy loss, and stability. Below we break down each attribute and explain why it matters in a typical Houdini Vellum workflow.
Stiffness defines how strongly the mesh resists deformation. In Vellum Configure Cloth or Vellum Configure Grain, increase structural and bend stiffness to keep the cube’s edges crisp during impact. Typical values range from 500 to 2000, but use groups to apply higher stiffness at corners. Always balance structural against bend stiffness: too high and the cube looks rigid; too low and it collapses.
Damping controls energy dissipation over time. Linear and angular damping remove excess oscillation. A damping of 0.1–0.3 is ideal for jelly, preventing perpetual wobble without killing the bounce. Set damping in the Vellum Solver’s “Drag” tab—higher drag yields quicker rest, lower drag yields longer jiggle.
Mass affects inertia and collision response. By default, Vellum assigns uniform mass per point. For a heavier feel, increase density in Vellum Configure Cloth or use a VEX expression on pscale to vary point mass. A mass of 0.05–0.2 per point typically gives a plump bounce; lower mass accelerates faster but may appear floaty.
Friction sets how much the cube grips the ground or itself. In Vellum Solver’s Collisions tab, static and dynamic friction around 0.2–0.5 provides enough slide to settle naturally. Higher friction can make the cube stick and not rebound, lower friction yields unrealistic sliding.
Substeps determine solver accuracy per frame. Raising substeps from the default 2 to 4 or 6 improves collision stability and prevents mesh tunneling at high speeds. Additional constraint iterations (8–12) ensure the cube retains shape under impact. Note that more substeps increase compute time, so find the sweet spot between performance and quality.
How do I cache, preview, and render the simulation efficiently for iteration and final output?
To avoid re-simulating on every playback, insert a File Cache SOP after your DOP Import. Configure it to write a .bgeo.sc sequence, then bypass the upstream chain and load from disk. This decouples your simulation from scene edits, accelerating iteration.
During early iterations, reduce solver settings: lower the Vellum Solver substeps and collision divisions. You can also disable self-collisions temporarily in the Vellum Constraints node. These tweaks preserve overall motion while boosting viewport performance.
Use Houdini’s flipbook workflow for rapid visual checks. In the Playbar’s Flipbook dialog, target MPlay or an external viewer, set a narrow frame range, and enable simple shading. This gives you immediate feedback on timing and bounce without launching a full render.
- Preview at half resolution with simplified lighting.
- Cache small segments (e.g., 1–50 frames) when adjusting parameters.
- Use region render (
rshortcut) for revisiting single frames.
For final output, switch to a ROP Geometry Output or an Out Mantra node. Point your renderer to the cached sequence, enable motion blur in the Mantra Properties, and choose EXR 16-bit for maximum dynamic range. Submit the ROP to your farm or launch a background render—your jelly cube is now ready for polish and compositing.