Houdini Fundamentals
🩷 Learning Resources and External Links
- Houdini’s official YouTube channel: The MasterClass series in there is excellent
- Entagma: A commercial production studio that shares their own technical case studies
- eagle: An asset and image management tool
💚 Basic Introduction
Terminology
- HDA: Houdini Digital Asset. If an HDA goes missing, go to Asset -> Install Asset Library in the top-left menu to reload it. Packaged tools and procedural models.
- USD: Universal Scene Description — a universal scene format developed by Pixar. In short, it’s used to exchange and share 3D data between different software and tools, allowing multiple departments to collaborate, and it supports non-destructive editing.
- Baking: A process where high-resolution model detail (lighting, textures, material properties, etc.) is computed and stored into texture maps that correspond to a lower-resolution model. The core purpose is to reduce the computational cost in real-time rendering (e.g., games, interactive scenes) while preserving visual fidelity.
- Houdini uses a right-handed coordinate system with Y-up
- .bgeo: A standalone geometry file format commonly used in early versions of Houdini
- .hip (Houdini Project): Houdini’s project file format, which saves all nodes, parameters, connections, and viewport layout in the scene. It’s essentially a text file you can open in any text editor. There’s also an encrypted variant .hipnc (Non-Commercial), used when saving projects in the non-commercial version of Houdini.
- $HIP/geo: You’ll often see path expressions like $HIP, which represents the root directory of the currently selected working project.
- VOP Network (VEX Operator Network): A visual programming environment that turns VEX code logic into node connections — you can create shaders, materials, and geometry operations without writing code. It does the same thing as Attribute Wrangle, just with a different interaction model.
- VDB: An open-source, cross-platform sparse volume format. Houdini has the best support for it. The smallest unit is a voxel (the smallest 3D cube in volumetric space).
- Polygon: Flat patches (usually triangles or quads) bounded by vertices and edges to represent 3D shapes. Multiple polygons assembled together form a mesh — the most common 3D model format. Polygon models are precise and controllable, ideal for games and real-time rendering, but the surface consists of flat segments and needs enough faces to appear smooth.
- NURBS (Non-Uniform Rational B-Splines): Smooth surfaces defined by mathematical formulas and control points. Very few patches are needed to represent extremely smooth curves and surfaces. Commonly used in industrial design (CAD), automotive modeling, and other fields requiring precise surfaces. The downside is less flexibility than polygons — harder to do boolean operations, deformations, etc. Similar to Bezier curves.
In short: Polygons are assembled from flat facets — more faces = smoother. NURBS are computed from math formulas — inherently smooth surfaces. In Houdini, the Sphere node’s Primitive Type lets you choose which method to use.
Node Types
Each type of task in Houdini has its own independent context, and each context corresponds to a different type of node:
| Context | Path Prefix | What It Handles | Typical Nodes |
|---|---|---|---|
| SOP (Surface Operator) | /obj/geo1/ |
Geometry modeling | line, sweep, fuse, copytopoints, wrangle |
| OBJ (Object) | /obj/ |
Object containers in the scene, cameras | geo, cam, light |
| LOP (Lighting Operator) | /stage/ |
Lighting, materials, USD scenes | karmarendersettings, materiallibrary |
| ROP (Render Output Operator) | /out/ |
Render output | mantra, karma, rop_fbx |
| COP (Composite Operator) | /img/ |
Image compositing | Photoshop-like node operations |
| CHOP (Channel Operator) | /chop/ |
Animation curves, audio channels | Motion data, procedural animation |
| TOP (Task Operator) | /tasks/ |
Task scheduling, batch processing | Batch rendering, data processing pipelines |
| VOP (VEX Operator) | Nested inside SOP/LOP | Visual VEX programming | attribvop |
| DOP (Dynamics Operator) | /obj/dopnet1/ |
Dynamics simulation | Particles, fluids, cloth, rigid bodies |
In short: SOP for modeling, LOP for lighting and materials, ROP for render output, DOP for simulations. These contexts correspond to different Network Views in Houdini’s UI — switch to
/stageto see LOP nodes, switch to/outto see ROP nodes. It’s essentially the same editor, just working at different levels.
Folder Structure
- abc: Typically stores Alembic cache files, used for exchanging animation and geometry data between different software in a cross-application pipeline.
- audio: Stores audio assets like sound effects and music tracks, used when adding audio to visual content.
- backup: A backup folder storing historical versions of key project nodes and files, preventing data loss from accidental changes.
- comp: Compositing-related folder, storing post-production files (e.g., Nuke scripts, AE projects) for integrating render layers, color grading, etc.
- desk: Likely holds temporary files and configs for the desktop/workspace, storing transient data generated by interactive operations.
- flip: Closely related to FLIP fluid simulations — stores fluid sim caches, parameters, and intermediate results such as liquid splash data.
- geo: One of the core folders, storing geometry data like models (points, faces, volumes), terrain, and collision bodies — the foundation for scene construction.
- hda: Stores Houdini Digital Assets (HDAs), which encapsulate node networks into reusable modules for easy sharing within a team or across projects.
- render: The render output folder, storing final rendered image sequences and stills, and possibly render layers or pre-composited files.
- scripts: Holds various scripts such as Python or Hscript, used for automating pipelines (batch processing, node control, data I/O).
- sim: A broad simulation folder — beyond fluids, it stores caches and parameters for rigid body, soft body, and cloth simulations, such as object collision or cloth draping data.
- tex: The texture folder, storing material textures (diffuse, normal, roughness maps, etc.) used to apply surface appearance to models.
- video: Stores reference videos, edit footage, or small rendered test clips to assist with creative direction and timing.
UI Overview
👈 Modeling Side
- Shelf (tool shelf)
- Press ↲ (Enter) to enter edit mode, press Esc to exit edit mode and go back to view mode
- 1: Outside the model
- 2: Inside the model
- 3: Dynamic selection mode, primarily for selecting objects related to dynamics
👉 Network View (Node Editor)
- Other node panels
ch (Channel): Primarily handles channel data such as animation keyframe curves and audio waveform data.
img (Image): For image-related processing — compositing images, adjusting colors, adding effects, etc.
mat (Material): Responsible for creating and editing materials.
obj (Object): The core panel for object-level operations — used to create, edit, and manage 3D objects.
out (Output): Primarily used to define render output settings.
shop (Shader): Related to writing and editing material shaders — lower-level and more flexible than mat nodes.
stage (Stage): Used to manage the overall scene layout and assets.
tasks (Tasks): For task management — setting render task priorities, allocating render resources, monitoring render progress, etc.
Unloaded state vs. loaded state

- 👇 Template: semi-transparent reference overlay; Display: visible in viewport; Render: which node is used at render time; (The benefit of separating Display and Render: you can view a simplified version in the viewport but use a detailed version at render time. Display is for the viewport, Render is for the final renderer.)
- Lock: locks the cache so it won’t recompute; Bypass: temporarily skips this node;

🗑️ Other
- Houdini Console
Keyboard Shortcuts
🌐 Global
- D opens the display settings for any window
- You can press D in any view to configure its display settings. The tutorial author changed two things: maxed out
Antialias SamplesunderViewport -> Scene, and switched the background color to black.
🖇️ Network Panel
- P shows node details
- Tab (in the Network panel) quickly pulls up all available nodes
💫 Operation Tips
- U exits a node
- I enters a node
- O centers the view on a node
- Shift+O creates a new description box
Expressions
$HIP: The path relative to the Hip file’s location
❤️ Various Nodes
Function
- Merge: Physically merges multiple input geometries into a single entity — a true “combine into one” operation.
- Group Create: Only tags points/faces in the geometry (creates a named selection set) without merging geometry. It only passes through the first input; the second input is used solely as a bounding box reference.
In short: Use Merge to combine geometries, use Group Create to create named selection sets. If you want to join two branches of models, use Merge.
What does “bounding box reference” mean? A common use of Group Create is to use one object’s range to select points from another object.
- VOP Network (type name
attribvop): A visual programming node. Double-click to enter and freely add, remove, and wire sub-nodes — fully customizable logic. Any node type withvopin the name is this kind. It’s the node-based version of VEX. - Encapsulated Nodes (e.g.,
attribadjustfloat): Also have internal node structures, but are locked and encapsulated — you can only adjust them through the external parameter panel, not modify the internal structure. These nodes are essentially official HDAs stored in Houdini’sotlsinstallation directory. You can also create your own HDAs by selecting nodes → Create Subnet → Create Digital Asset. - File Cache: Its core function is to save computation results to disk, so future reads come directly from disk instead of recomputing. If “Load from Disk” is enabled, it reads the archive — meaning upstream node changes won’t affect the File Cache’s output.
- Clean: Cleans up topology issues in geometry, such as degenerate faces with zero area, overlapping points, reversed normals, invalid edges, etc. Procedural modeling often produces this “dirty data,” and Clean fixes it.
- Fuse: “Welds” multiple points that are close enough into a single point. After operations like boolean operations or VDB conversion on polygons, edges that were originally connected may split — vertices are nearly identical but are actually independent points. Fuse merges these “nearly coincident” points by setting a distance threshold (e.g., 0.01).
- This light-green colored node represents an instance referenced from elsewhere, not an independently created node.
Null is an empty node that doesn’t process data at all. It exists purely for organizational/tagging purposes. It can be paired with an Object Merge node to achieve cross-network “remote fetching,” referencing by node name as a parameter.
UV
- autouv: Some models need their UVs regenerated after deformation, since the original UVs may no longer be suitable.
Trunk (Curve-Based Geometry)
- Curve: A node for drawing curves. That said, the author prefers using the add node instead, because it gives more precise control over the position of each individual point. Then in the Polygons tab, connect those points by group.
- copy and transform / transform: These two nodes can be used to adjust the overall position of a model.
- Resample: A node that converts curves from NURBS or Bezier to Polygon curves. Mainly used for curve subdivision and resampling.
- Sweep: Takes a cross-section shape and “sweeps” it along a path curve to generate tubular geometry (turning a line into something with volume).
Mountain
- mountain: The Mountain node applies procedural noise to displace geometry surfaces randomly, transforming smooth spheres into irregular organic shapes.
VDB
These three types of nodes typically form a loop: Polygon → [VDB from Polygons] → VDB Volume → [VDB Combine] → Processed VDB → [Convert VDB] → Polygon. The reason for going through VDB instead of doing boolean operations directly on polygons is that polygon booleans are prone to broken faces, flipped normals, and other issues, while VDB booleans are always clean.
- VDB from Polygons: Converts a polygon mesh into a VDB volume (SDF or Fog). Think of it as “voxelizing” a solid 3D model — recording each small cube’s (voxel’s) distance from the model surface. Many operations (boolean cuts, collision detection, simulation) are easier and more stable in volume space than on polygons.
- VDB Combine: Performs boolean operations (union, subtract, intersect, etc.) on two VDBs. For example: tree VDB minus a shape VDB = a hole carved in the tree.
- Convert VDB: Converts a VDB volume back to a polygon mesh. The reverse of VDB from Polygons. After VDB boolean/deformation operations, you ultimately need to convert back to polygons for rendering and texturing.
- Delete Small Parts (Labs): Deletes fragments/isolated islands in geometry that are too small. VDB booleans, noise deformations, and similar operations often produce microscopically small debris that’s nearly invisible — this node cleans them up.
🩵 Operations
Rendering Stuck / Computer Freezes
When you click a node’s blue eye (Display), Houdini computes the entire chain from the source to that node in order. Houdini has an incremental caching mechanism: previously computed node results are cached in memory, so next time — as long as upstream hasn’t changed — it uses the cache and only computes the new segment.
However, if you jump directly to the last node in the chain, none of the intermediate nodes have caches, and everything must be computed at once. If the chain contains heavy operations like VDB conversions, UV unwrapping, Remesh, or physics simulations (Vellum), it can max out the CPU, fill up memory, and fill up the C: drive with page files.
Recommendation: Don’t directly activate the final output node. Start from intermediate nodes that have File Caches, and activate them one by one going down the chain, letting Houdini use incremental caching to compute gradually. Note that after changing upstream parameters, all downstream caches are invalidated and must be recomputed.
Basic Operations
Missing Nodes
You can use the search function to find files that don’t have a Cache

Missing HDA Files
Use Asset -> Install Asset Library

Can’t Find a Node
You may have navigated inside a node

- Another possibility is that you haven’t installed SideFX Labs, the official plugin.
Differences Between Versions
Group Node Issues
In newer versions of Houdini (18 and later), the old generic group node has been removed and replaced by a family of more specialized Group nodes. Press Tab in the Network Editor and type group to see all available Group nodes. The most commonly used ones are:
| Node | Internal Name | Purpose |
|---|---|---|
| Group Create | groupcreate |
Most commonly used — creates groups by geometry type, bounding box, normals, etc. |
| Group Expression | groupexpression |
Creates groups using VEX expressions |
| Group by Range | grouprange |
Creates groups by index range |
| Group Paint | grouppaint |
Paints groups with a brush |
| Group Combine | groupcombine |
Merges, intersects, or subtracts multiple groups |
| Group Promote | grouppromote |
Converts group types between points, faces, and vertices |
| Group Transfer | grouptransfer |
Transfers groups from another geometry |
| Group Invert | groupinvert |
Inverts a group |
If you’re used to the old “Group” node, Group Create will cover 99% of use cases.
Exposing HDA Parameters for Unreal Engine
Exposing Parameters in Houdini
Inside the HDA, promote the parameters you want to control in UE to the HDA’s top level:
- Open the HDA’s Type Properties (right-click node → Type Properties)
- Switch to the Parameters tab
- Drag in the parameter types you need from the left panel (Toggle, Float, String, etc.)
- Then in the internal network, use Channel Reference (middle-mouse drag) or Copy Parameter / Paste Parameter Reference to link internal node parameters to these top-level parameters
Parameter Organization Tips
Use Folders to group parameters in the Parameters tab of Type Properties:
1 | Main |
This way, parameters will also be displayed in groups inside UE.
Key Considerations
| Point | Description |
|---|---|
| Input Geometry | HDA inputs automatically become input pins in UE, accepting UE Static Meshes |
| Curve Input | If the HDA accepts curve input, you can use a Pack node or draw Splines directly in UE |
| Output Node | The HDA must have an output node internally for the output to be valid |
| Attribute Naming | Use attribute names recognized by Houdini Engine like unreal_material to pass material information |
| Bake Mode | Generated results in UE can be output as Static Mesh, Landscape, etc. |
Using in UE
- Install the Houdini Engine for Unreal plugin in UE
- Place the
.hdafile in the UE project’s Content directory - Drag it into the scene — parameters will automatically appear in the Details panel
- Adjust parameters and click Recook, or set it to auto-Recook