VELOCITY FIELDS AS A PRIMARY DRIVER FOR PHOTOREALISTIC TREE SIMULATION
A production methodology replacing uniform wind forces with volumetric velocity fields for tree simulation in Houdini. Validated across multiple theatrical productions, the approach delivers physically grounded, art-directable results at scale through hierarchical wire dynamics and a custom production toolset.
Abstract
Existing approaches to tree simulation in visual effects apply wind as a uniform directional force — a simplification that produces motion inconsistent with the physical behaviour of real trees under atmospheric conditions.
This paper presents a production methodology in which wind is modelled as a volumetric velocity field, sampled per-point across a hierarchically decomposed tree structure using Houdini's wire solver.
The result is simulation that captures the turbulent, spatially variant character of real airflow — at production scale, with full art-directability.
1. Problem Statement
Uniform wind force simulation applies a single vector to every point of the tree simultaneously. This produces motion that is technically plausible but visually unconvincing — lacking the spatial variation and inter-layer independence that characterises real tree movement under atmospheric conditions.
The specific failure modes are:
- Synchronous movement across all hierarchy levels
- Absence of turbulence-driven secondary motion
- No localised response to airflow variation within the canopy
2. Physical Basis
Tree movement under wind is governed by turbulent pressure differentials created as airflow separates, reattaches, and accelerates through and around the canopy structure.
The correct computational analogue for this behaviour is a velocity field — a volumetric representation in which airflow direction and intensity vary continuously through space.
This forms the theoretical basis of the methodology.
3. Geometric Representation
Tree geometry is sourced from SpeedTree Cinema and decomposed into four simulation layers prior to dynamics application:
| Layer | Representation | Role |
|---|---|---|
| Spine curves | Simple curves | Primary motion carrier |
| Trunk & branches | Conical frustum series | Secondary deformation |
| Twigs | Wire segments | Tertiary response |
| Leaves | Thin triangular prisms | Terminal motion |
Each layer deforms in response to the layer above it while maintaining its own dynamic properties.
4. Methodology
4.1 Hierarchical Wire Dynamics
The trunk is solved first as an independent simulation object. Branches are subsequently constrained to the solved trunk, twigs to branches, using wire glue constraints bound by closest-point relationships at each junction.
Stiffness and elasticity parameters are set independently per hierarchy level. Trunk stiffness is always greater than branch stiffness — the ratio varies by species and target wind intensity.
4.2 Velocity Field Construction
A custom volumetric airflow box is constructed to model atmospheric turbulence around the tree geometry. The field encodes spatially variant velocity vectors that replicate the pressure differential behaviour documented in aerodynamic reference study.
4.3 Per-Point Velocity Sampling
The velocity field is sampled at each wire point using a SOP solver, applied as a target velocity:
v@targetv.x = volumesample(1, 0, v@P);
v@targetv.y = volumesample(1, 1, v@P);
v@targetv.z = volumesample(1, 2, v@P);
This drives each simulation point independently — producing the spatially variant, turbulent motion absent from uniform force approaches.
5. Production Toolset
The simulation methodology is encapsulated in a custom Python toolset built for production deployment.
5.1 SpeedTree–Houdini Live Link
Automated bridge handling geometry import, layer decomposition, and simulation preparation. Reduces multi-stage manual pipeline to a single guided workflow.
5.2 Render Engine Support
Native support for Mantra, Redshift, and RenderMan. Simulation output is render-ready without additional pipeline configuration.
5.3 Art Direction Interface
All simulation parameters are exposed through a custom GUI mapped directly to creative controls — wind intensity, turbulence scale, stiffness per layer, leaf response.
6. Results
6.1 Performance Benchmarks
| Shot Type | Uniform Force | Velocity Field | Quality |
|---|---|---|---|
| Single tree, steady wind | 4 hrs | 45 min | Superior |
| Forest scene, variable wind | 2 days | 3 hrs | Equivalent |
| Large canopy, gusting | 1.5 days | 2 hrs | Superior |
| High-density instancing | Not viable | 4 hrs | Production ready |
Assessed against theatrical delivery standard by senior FX supervisors across multiple productions.
7. Limitations
Stiffness discontinuity. High stiffness contrast between trunk and fine-branch geometry can produce visible constraint snapping at junction points. Mitigated by a graduated blend zone across each hierarchy transition.
Hero-scale instancing cost. Per-point velocity sampling at full hero resolution increases computation time significantly on dense instanced scenes. Addressed through a LOD system reducing sampling density on secondary and background instances.
8. Conclusion
Modelling wind as a volumetric velocity field rather than a uniform directional force produces tree simulation that is physically grounded, spatially variant, and consistent with observed atmospheric behaviour.
Combined with hierarchical wire dynamics and a production-ready toolset, the methodology is viable at theatrical scale — with full art-directability maintained throughout.
References
-
Py, N. et al. — A Study on Airflow and Tree Interaction. Royal Society Interface, 2018. https://royalsocietypublishing.org/doi/pdf/10.1098/rsif.2018.0010
-
SpeedTree Cinema — Interactive Data Visualization, Inc. https://store.speedtree.com
-
SideFX — Houdini Wire Solver Documentation. https://www.sidefx.com/docs/houdini/nodes/dop/wiresolver.html


