Houdini Digital Assets Collection
![]() |
![]() |
|---|
-
Auto Align: Aligns the face to the X/Z plane before cutting. (Useful when using grid_cutter in a For-Each Primitive loop.)

-
Force Cut Long Side: Cuts the longer side at each iteration.

-
Half Ratio: How close each cut is to the halfway point.


Half Ratio: 0.5 Half Ratio: 1 -
Min Size: Limits the size of the smallest piece.
Fractures based on polyline projection (X/Z plane).
![]() |
![]() |
|---|
Input 1: Ground plane (does not need to be flat)
Input 2: Polyline, as a single primitive.
Output: Fractured polygons with attributes.
![]() |
![]() |
|---|---|
| Close Line | Open Line |
The line needs to bend somewhere. A perfectly straight polyline has no interior detail to work from and passes the ground through uncracked.
- Iterations: Increase to better match the input line. (May not be a perfect match.)
- Iteration Threshold: Avoids extremely small pieces.
- Clean Zero Plane: Discards pieces that come out flat, judged from each piece's bounding box. On ground that is itself flat every piece qualifies, so the output ends up empty.
- Clean Threshold: The area below which a piece counts as flat, compared against the smallest face of its bounding box.
Deforms geometry using a matrix derived from reference geometry.
Input 1: Geometry to deform
Input 2: Rest geometry
Input 3: Deformer geometry
Visualizes sequence file status using Houdini point data — showing file size and modification time.
Non-existent files appear in red and are added to the non_exist point group. Point attributes include: size, mod_time, frame, file_path, exists. Point groups: size, time.
- Files: Sequence files to visualize.
- Start/End: Frame range.
- Preview Length: Range of generated points along the X-axis.
- Preview Height: Range of generated points along the Y-axis.
- Font Size: Guide text size.
Fetches point data from a USD PointInstancer primitive into SOP geometry.
- LOP Path: Path to the LOP node containing the stage.
- Primitives: USD PointInstancer primitive to fetch. Must resolve to a single instancer.
Smooths polyline curves.
- Bias: Smoothing bias (0–1).
- Step: Number of smoothing iterations.
Exports the incoming SOP geometry to a per-frame USD sequence and stitches it into a USD value clip, so a geometry cache can be referenced as a single animated asset. Save to Disk writes the per-frame files; Stitch Value Clip then stitches them.
- Load from Disk: Read geometry back from the exported sequence instead of cooking the input.
- Import Path Prefix: USD scope the geometry is imported under.
- Base Name / Base Folder / Version: Output naming and location.
- Files Frame Start/End/Inc: Frame range to export.
- Save to Disk: Write the per-frame USD sequence.
- Sync Version / Clip Version: Clip version, optionally independent of the export version.
- Stitch Value Clip: Stitch the sequence into a value clip (validates the whole range first and lists every missing or unreadable frame).
- Relative Asset Paths: Write clip asset paths relative to the stitched file instead of absolute.
Procedurally generates lightning bolt geometry from a polyline.
Input 1: Rest line
Input 2: Animated line to match (optional)
- Match Tip: Snap the end of the bolt to the tip of the input line.
- Match Animated: Follow the animated input line each frame.
- Segments: Number of segments in the generated bolt.
- Growthing: Growth amount (0–1).
- Tail Attrib: Output a tail point attribute.
- Main tab: Noise Type, Frequency, Offset, Fractal Type, Roughness, Bias Angle, Exponent, Bias Along Curve ramp.
- Branch tab: Branch probability, Max Branch count, Seed, Angle settings, Branch Step settings, Noise settings.
Finds intersection points between vectors.
- Tolerance: Intersection tolerance distance.
Creates a bounding box proxy for specified primitives, replacing a given purpose (Default / Render / Proxy).
- Primitives: USD primitives to create proxy for.
- Original Purpose: The purpose to replace (Default / Render / Proxy).
Binds materials to primitives by matching collection names to material names.
- Collections: Root path of collections.
- Materials: Root path of materials.
- Primitive: Target primitive to apply bindings to.
Builds USD value clips from a bgeo sequence. Requires a usdconfigure SOP to set the sample frame detail attribute on the bgeo files. Writing to disk also produces a <output>.manifest.usd sidecar next to the output, referenced by a relative path, so it must travel alongside the output file.
- File: bgeo sequence path.
- Template Frame: Frame used as the clip template.
- Clip: Clip set name.
- Files Frame Start/End: Frame range of the source bgeo files.
- Scene Frame Start/End: Frame range in the USD scene.
- Loop: Enable looping.
- Primitive: Target USD primitive path (must match the prim path the bgeo imports to).
- Output File: Path to write the clip USD file.
- Save to Disk: Write the output USD file and generate the manifest sidecar.
- Use Relative Paths: Write relative paths in the output USD.
Creates a USD class primitive and moves the hierarchy below a specified primitive into it.
- Primitive: The primitive whose hierarchy will be placed in the class.
- Class: Name for the new class primitive (specifier will be
class). - New Name: Optionally rename the top-level prim when placed in the class.
Creates USD collections based on the material binding names of the source agent mesh.
- Collection: Collection prim path.
- From Path
- Replace Path
Creates a USD layer that adds a rest primvar to mesh primitives.
- Root Primitive: Root of the prim hierarchy to process.
- Primvar Name: Name of the rest primvar (default:
rest).
Sets a specified primitive to use a Houdini Procedural for rendering.
WARNING: The render command must include
--allowed-procedurals allunless only curves and points are used.
- Graph File: The SOP-level graph file for the procedural.
- Procedural Name: Name of the Houdini Procedural.
- Procedural Primitive: The primitive to make procedural.
- Inputs: Primitives to use as graph inputs.
- Overrides: Override graph parameters and USD primitive properties.
Configures a USD primitive that is already on the stage to render as a Houdini Ocean surface via the ocean rendering procedural, so the displaced surface (and optional foam/interior) is generated at render time from cached ocean spectrum data. Unlike SideFX's stock ocean setup, which imports a SOP mesh into Solaris, this node targets an existing primitive on the input stage as the ocean surface — that is the only difference.
WARNING: The render command must include
--allowed-procedurals allfor the ocean procedural to load.
- Spectrum File / Mask File: Ocean spectrum and optional mask geometry caches.
- Surface Mesh Primitive: Existing stage primitive used as the ocean surface.
- Enable Interior / Interior Mesh Primitive: Optional underwater volume.
- Dicing Quality, Screen Window Size, Downsample, Anti-Alias Blur: Render-time tessellation controls.
- Materials Path / Surface / Interior / Proxy Material: Material assignments.
- Enable Foam / Foam Particles: Render foam from a particle cache.
Removes all time samples from camera primitives to disable camera motion blur only.
Removes all time samples from specified primitives, collapsing animated properties to a single value.
- Primitives: USD primitives to process.
- Frame: The frame value to retain when flattening time samples.
Creates a USD stage with a Volume and one OpenVDB primitive per grid from a VDB file sequence. The filePath, fieldName, and fieldIndex properties of each OpenVDB primitive are time-sampled.
- Parent Primitive: Root path for the Volume primitive.
- Primitive Name: Name of the Volume primitive.
- VDB Files: Sequence file path.
- Start/End: Frame range.
- Grids: Grid names to include (space-separated). One OpenVDB primitive is created per grid.
- Grid Index: Grid index (usually 0).
- ExtentsHint From File: Load each VDB per frame to compute and write a time-sampled
extentsHinton the Volume. Accurate but slow.
Manually sets extentsHint on a primitive from a manual value, SOP node, geometry file, or VDB file. Supports time-dependent mode to write time samples.
- Prim Path: Primitive to set extentsHint on.
- Time Dependent: Enable per-frame time sampling.
- Start/End: Frame range (when Time Dependent is enabled).
- Manually: Min/Max bound values.
- From SOP: SOP Path, Group Type, Group name.
- From Files: File path, Group Type, Group name.
- From VDB Files: VDB file path.
Updates PointInstancer data using point attributes from a SOP node.
- PointInstancer Primitive: Target PointInstancer USD prim path.
- SOP: Source SOP node.
- Positions: Sync from
Pattribute. - Orientations: Sync from
orientattribute. - Scales: Sync from
scaleattribute. - ProtoIndices: Sync from
indexattribute. - InvisibleIds: Sync from
invisibleattribute.
A CVEX lens shader that applies a fisheye distortion for Mantra rendering.
- FOV: Field of view in degrees (default: 180).
- Mask: Enable/disable masking outside the circular frame.
Entagma - VEX in Houdini: Mandelbrot and Mandelbulb
Zeus VFX - 3D Fractal in Houdini Tutorial
Fakes an interior seen through a window using five directional maps and no geometry, for Solaris and Karma. Walks the incident ray into a virtual box behind the surface and samples whichever wall it reaches.
Place it in a Material Library or MaterialX Builder and connect its output to the base colour or emission of an mtlxstandard_surface. The surface needs usable UVs, since the room is laid out in UV space.
- Opposite / Left Side / Right Side / Top / Bottom Map: Textures for the five walls of the virtual room.
- Depth: How far the room extends behind the surface, in UV units.
- Outputs: Color, In Depth (0 at the window to Depth at the back wall), Out Normal (world space, for the surface shader's normal input), and Wall Id (0 back, 1 left, 2 right, 3 ceiling, 4 floor).
Samples a volume texture atlas exported by Labs VolumeTexture Export, for Solaris and Karma. Picks the two slices either side of the shading point's height and blends between them.
Place it in a Material Library or MaterialX Builder and connect its output to the base colour or emission of an mtlxstandard_surface. Export the atlas with Up Axis set to Y, which is the axis this node slices along.
MaterialX has no access to a bounding box, so the box is supplied as two constant primvars and the node works out the position inside it. They must describe the box the atlas was exported from, which is the prim's own extent whenever the geometry matches that box:
primvars:bboxmin float3 constant
primvars:bboxmax float3 constant
Being constant primvars rather than shader parameters, one material can be bound to many prims and each still uses its own box. The names are parameters, so they can point at whatever the scene already carries.
A surface sitting exactly on the volume's box samples its outermost shell, which for a fog volume is empty. Shade something inside the box, or a plane cutting through it.
- Volume Texture: The atlas image.
- U Tile / V Tile: Slice columns and rows in the atlas. Must match the export.
- BBox Min Primvar / BBox Max Primvar: Names of the constant primvars holding the box corners.
- out: Colour blended from the two nearest slices.
Collects all textures referenced in a USD stage and copies them to a new directory, replacing the path prefix.
- Stage LOP Node: The LOP node providing the USD stage.
- Texture Root Path: Source texture root path to match against.
- Copy To: Destination directory.






