On this page

See also what’s new in the user interface.

Interactive

New poly tools

New

The Poly Bridge node builds sheets or columns connecting edges or faces. The node has controls for the shape and topology of the bridge, including following a curve.

New

New Poly extrude version extrudes sheets or columns from selected edges or faces. The node has controls for the shape and topology of the extrusion, including following a curve.

New

New Poly Expand 2D node dilates or expands the outlines polygons. It can also create width from lines, making it ideal from creating roads from path lines.

Basic modeling

New

The Edit node has a more free-flowing interaction like a "tweak" tool.

  • You can select faces, edges, or points on-the-fly instead of switching between different components.

  • You can slide edges and edge loops across the surface.

  • The geometry under the mouse highlights in the viewport to show what will be selected.

  • You can constrain points and faces to slide across adjacent faces.

  • A Hide handle on immediate selection drag parameter lets you hide the handle while you're tweaking.

New

The Soft Transform and Soft Peak nodes now let you visualize the falloff using a visualizer on a new vis_falloff attribute, instead of overwriting the color attribute (Cd).

Changed

Using the T, R, and S keys in the Edit, Transform, UV Transform, or UV Edit tools now changes the handle within that tool, instead of switching to the general Move, Rotate, or Scale tool.

Changed

When you're working in the Edit, UV Edit, or brush tools, the Q (Repeat current operation) and ⇧ Shift + Q (Branch and repeat current operation) hotkeys will now create a new node instance.

Changed

The Edit tool now hides the handle while you're pressing the loop selection hotkey A.

Selection

Changed

Houdini now preserves the component selection across cooks, and remembers different selections for each component type, instead of converting the current selection when you change types.

Basically, you should be able to select faces, go to a different object or change to a different component type, come back, and still have the same faces selected.

(You can still convert the selection to a different type using an item in the context menu.)

Changed

Edge selections now show the direction of each edge. You can change the direction of a selected edge direction by ⇧ Shift-clicking the edge.

Fixed

Edge selection now does a better job of preserving selection order.

Group list

New

You can now select whole branches of attribute hierarchies in the group list interface, for example with an Alembic path attribute.

New

There is now an option in the group list’s settings menu to highlight group names in the list as you move the mouse over components, instead of changing the contents of the list to only show the groups containing the component under the mouse.

New

You can now customize the colors assign to groups in the group list. Click the color swatch to change the color. ⌃ Ctrl-click to clear the custom color. You can use the hou.hipFile.groupColorTable() and hou.hipFile.setGroupColorTable() HOM functions to script the color overrides.

New

You can now collapse and expand branches of Alembic hierarchies in the group list.

Changed

Changed default group list colors to prevent confusion with the selection.

Quick visualize

New

Visualize geometry node helps visualize the output of different nodes in the network. Any visualizations you attach to this node will be applied to the node it’s wired from. You can hover over a geometry (SOP) node and press X to rewire the visualize node onto that node.

The intention is to later replace this somewhat inefficient method with something more integrated with the visualization editor.

Bend node

New

Bend node is a more interactive version of Twist. It lets you define two planes and twist, bend, or taper any geometry between them.

Changed

The Twist, Linear Taper, and Bend tools on the Deform shelf tab now use the new Bend node.

Smooth

Fixed

Improvements to the Smooth geometry node:

  • Much faster and partly parallelized for large models.

  • Can smooth multiple attributes.

  • Works with polygon soup tetrahedrons.

  • Respects primitive groups when smoothing vertex attributes.

  • Supports attributes with tuple size of 4 or more.

Selection settings

New

There is now an "Objects and geometry" preference to always start with area selection set to visible geometry only (so box selection won’t select polygons through the other side of visible geometry).

Procedural

Looping

New

Block Begin and Block End nodes allow looping the nodes between them. See the documentation on looping. This block functionality is easier to use than previous solutions such as the For Each subnet and Solver SOP.

Group syntax

New

The group selection syntax now supports using @attr=val,val,val to compare an attribute to a list of possible values. For example, @id=1,2,90,120. For string attributes, you must enclose values containing spaces in double quotes, for example @path=/foo/*,/bar,"some string".

Fixed

You can now use "intrinsic" attributes in group selection syntax like regular attributes. For example @intrinsic:indexorder<100.

You can display available intrinsic attributes in the geometry spreadsheet using the Intrinsic menu.

Wranglers

New

The wrangler nodes now have a button next to the VEX snippet to generate parameters from any ch() references in the code.

New

The Deformation Wrangle node lets you write VEX code to modify point positions, and then takes care of the details of transforming other attributes and updating packed primitive intrinsics.

This uses the new Transform by Attribute node which takes a point attribute and transforms all transformable point and vertex attributes and updates intrinsics on packed primitives.

New

The Attribute VOP SOP, Attribute Wrangle SOP, Geometry VOP DOP, and Geometry Wrangle DOP have a new Run over ▸ Numbers mode, which runs the VEX code a certain number of times. In this mode, @elemnum is the current iteration number (starting at 0), and @numelem is the total number of iterations. This mode only binds detail attributes and binds them as read-only.

Sourcing

New

Points from Volume has a new Construction method parameter. The default for new nodes is "Sparse volume" which is more efficient for sparse inputs than the original method, which is now available as "Dense grid". The Fluid Source and Grain Source nodes have this new parameter as well.

When the method is "Sparse volume", the node also has new parameters for only creating points within a certain slice of the volume.

New

The Voronoi Fracture node now has a separate option to compute vertex normals on the surface (exterior) geometry. When this is on and the input doesn’t have normals, the cusp angle for the interior normals won’t be used for the exterior.

Technical nodes

New

Find shortest path has a new parameter to create a point attribute indicating the previous point number in the path. This is easier to traverse in VEX than output polygons.

New

New Shrink Wrap version 2.0, using the convex hull algorithm from the Bullet solver. This is significantly faster and produces simpler geometry over convex hulls.

New

Attribute Swap node swaps, moves, or copies attributes efficiently with support for pattern matching.

Changed

The Attribute Copy node now lets you specify a new name for the copied attribute. The defaults have been streamlined.

Fixed

Point Deform now transforms all transformable point and vertex attributes, and properly deforms packed primitives.

UVs

UV Editing

New

You can now fluidly select different component types (faces, edges, points) like in the Edit node.

New

The UV Flatten node has a new option to use existing UVs. This lets you use the node’s pin and cutting tools on existing UVs.

New

The UV Layout node has a new parameter to "correct" the size of UV islands based on their 3D areas.

New

Added visualization of the soft radius falloff to the UV transform and UV Edit geometry nodes. The nodes now create an attribute you can see with a visualizer.

New

Added visualization of UV boundaries in the viewport.

Changed

The UV Quickshade node’s default texture is now a high-res checkerboard. this is also the background for UV viewports.

Fixed

The UV Layout node is better at packing UV islands together.

Subdivision curves

Polylines as curves

New

Support for subdivision curves in Mantra, the viewport, and the Subdivide and Resample nodes. This displays/renders polylines as subdivided curves.

This lets you store low-res polylines but display and render them as high-res curves. The Fur object now uses subdivision curves instead of NURBS for large performance gains.

The Display as ▸ Subdivision surface option on objects is now "Subdivision surface/curves". When this option is on, polylines in the object will display/render as subdivided curves.

Resample from subdivided curve

Changed

The Resample node has a new option to resample input polylines as straight segments (the existing behavior), or as if they were subdivided curves.

There is also an option to resample such that, if the output is subdivided later, the subdivision curve will pass through the sampled points. When you're down-sampling curves to save space and rendering as subdivision curves later, this helps the subdivided curve better match the shape of the original.

Alembic and packed geometry

Alembic I/O

New

User properties on Alembic hierarchies now import and export as custom parameters on nodes or attributes on packed primitives.

New

The Alembic geometry node can now specify the geometry types to load. You can also now load only transforming or only deforming geometry.

The node now has an Object exclude parameter which can hide some objects in the Object path. Both Object path and Object exclude have buttons that let you choose objects either from a tree or from the viewport.

The node has a new group naming mode which uses the shape’s base name (without the full path).

New

Option on the Alembic Archive object to load the entire hierarchy in a single Geometry object. If the Alembic file contains cameras, they will still be loaded as separate objects.

New

Added Reload geometry button on the Alembic Archive object that reloads shape data without rebuilding or changing the object hierarchy.

New

Alembic export now adds an X.samples property on the archive to match Maya’s custom tag. This lets you query how many samples are stored in the archive.

New

When you save an Alembic archive with "full bounds", the child bounds for the entire archive are stored on the root node. This lets you query the entire archive’s bounds.

New

Added parameter on the Alembic render node to select additional UV attributes.

Changed

The Alembic render node now uses indexed samples when writing UV attributes.

Fixed

Although Alembic doesn’t natively support volumes, Houdini will now properly export the transform on VDB primitive volumes.

Fixed

Restored proper handling of topology information on non-animated geometry in Alembic packed primitives.

Fixed

When using Alembic Archive with object hierarchy (as opposed to subnetworks), the camera and geometry objects are now in the hierarchy instead of a subnet.

Fixed

Houdini now writes Maya-specific metadata so Maya recognizes vertex colors without needing the -rcs/-recreateAllColorSets flag.

Fixed

Houdini now preserved Maya-specific locator properties when exporting Alembic archives.

Fixed

When you're exporting the output of a single geometry node, Houdini ignores whether the parent object is displayed or not.

Developer

You can now get frame ranges in Python scripting. If you specify an object path, it returns the time range for that object, otherwise it specifies the range for the entire archive.

from _alembic_hom_extensions import alembicTimeRange
start, end = alembicTimeRange(filename, objectPath=None)

Packed primitives

New

The Pack node can now transfer attributes to the detail containing the packed primitives.

New

New Pack Points and Unpack Points nodes allow efficient use of only the points in a specific spatial region. This supports on-demand loading of very large particle sets, for example much faster flipbooking of FLIP simulations with many millions of points.

New

New parameters on the Unpack node let you optionally apply and attach a stylesheet to the unpacked primitives.

New

You can now unpack geometry inside the gplay utility. This lets you view attributes on the unpacked geometry.

New

Packed Disk Edit node lets you change the source file for an on-disk packed primitive.

Changed

Packed primitives now cache and save their bounding boxes (if computed). This can make some operations faster.

Changed

The 3D Viewport parameter of the Packed Edit node is now animatable.

Possibly breaking changes

P attribute

Changed

The P attribute now has 3 components instead of 4. A separate Pw attribute is automatically created when needed. This eliminates many issues caused by P not having the same size as related attributes.

Most things that used the w component of P will still work, but now use Pw. Reading old files will create a 3-component P and (if the fourth component was not 1.0), a Pw attribute.

This may break things where you already had an attribute named Pw, or where you were accessing the fourth component of P by index.

Other changes and improvements

Geometry spreadsheet

New

Group membership now appears as a special group:name column in the geometry spreadsheet, where each row has 1 if the point/primitive is in the group, or 0 if it’s not. You can hide or show the groups using patterns in the Attributes filter field. For example, ^group:* to hide all group columns, or * group:door to show all regular attributes and also the door group.

Changed

Detail attributes are listed vertically in the geometry spreadsheet to make them easier to read.

Fixed

The geometry spreadsheet is now orders of magnitude faster at displaying very large numbers of points (in the hundreds of millions). It is no longer limited to 99 million points.

Fixed

The geometry spreadsheet can now sort integer values larger than 32 bits.

VDB

Changed

The Convert VDB geometry node now has an Activate inside voxels parameter. You can turn this off when converting an SDF with Signed flood fill to only activate the voxels containing the SDF shell.

FBX

New

Added hou.hipFile.importFBX() HOM function to replace fbximport HScript command. This function is more useful because it returns the subnet containing the imported nodes as well as the list of load messages.

Changed

Added options to the fbximport HScript command.

Changed

UVs and vertex colors are now output in a consistent order.

Fixed

When importing FBX that uses Softimage hierarchical scaling for transforms, we now resample at playback sample boundaries to avoid interpolation errors.

Fixed

Houdini no longer writes out extra, unused P_n user data.

Interface

New

The File and Alembic geometry nodes are available as tools at the Object level. The tool will automatically create a new Geometry Object with the chosen geometry node inside.

New

Improvements to the Reselect button next to Group fields:

  • You can now ⇧ Shift-click the button to start selection with the "Select Groups" option on.

  • More fields have the button.

New

Handle improvements, including a new orient handle type.

Node changes

Changed

The Transform and Soft Transform nodes now support transforming a subset of the transformable attributes. For example, you can tweak normals or scale velocities without affect the point positions.

Changed

The Transform Axis node now has the same Recompute affected normals parameter as the Transform node. This only recomputes normals on the boundaries of the transformed region.

Changed

The Soft Transform node now defaults to only recomputing normals on primitives affected by the transformation.

Changed

The "select from viewport" button next to the Material node’s Group field now selects by the path attribute (if present), or by groups (if present), then by 3D connectivity. You can ⇧ Shift-click the button to get standard behavior.

Changed

New Divide nodes in "Compute dual" mode will swap point and primitive attributes and groups, and transfer vertex attributes and groups to the new vertices.

Changed

The Visibility node is now animatable.

Changed

The Blend Shapes, Sequence Blend, and Time Blend nodes now have an option for Shortest path transform blending (spherical linear interpolation).

Changed

The Sequence Blend has a new option to use spherical linear interpolation when blending primitive transforms.

Changed

Added "Texture UV" tangent style to Poly Frame. This supports the tangent format used by other 3D packages.

Changed

Newly created Cache nodes have a simpler interface. The default behavior is now to cache every frame and clear the cache on any change to the first input. To get the old behavior, turn off Cache any frame and Clear cache when change upstream.

Changed

Newly created Transform, Soft Transform, Transform Axis, and Transform by Attribute nodes now have names with transform instead of xform.

Changed

The Attribute reorient node now creates any attributes missing from the first input.

Changed

The Bounds node now has an option to not create the box if the input is empty.

Changed

The Attribute Randomize node now defaults to the Cd attribute and a "Uniform (Continuous)" distribution. The user interface was rearranged to put distribution settings on their own tab.

Changed

Added a parameter to Resample node to fix length of last segment when using certain settings.

Changed

The Sweep node now supports transferring attributes and groups from the backbone paths to the new geometry. By default it copies everything except P.

Sweep now supports transforming the cross-sections using attributes on the backbone curve, such as pscale, scale, N, up, trans, rot, orient, and pivot (like the Copy node).

Changed

The Group Transfer node has a new parameter to create groups even if they're empty.

Changed

The Color node no longer automatically creates $ local variable equivalents of attributes.

Changed

The Poly Frame node can now calculate UV tangents.

Changed

The Dissolve node now has Remove inline points on by default, and Collinearity tolerance defaults to 1.

Fixed

Better interactive performance in Transform Axis node and Trail node (when Compute velocities is on).

Deprecation

Changed

Tristrip is now deprecated. Support for tristrip and trifan primitive types may be removed in a future version of Houdini. Polygons and Polysoups are much better for most use cases.

Misc

New

You can now read an instrinsic:arclength attribute on NURBS and Beziér curves.

New

You can now load Protein Data Bank (PDB) files directly in Houdini.

Changed

You can now ⌃ Ctrl-click a node to lock it.

Changed

The "Descriptive Name" geometry node flag now controls the display of the colored blob around nodes in a looping block.

Changed

The attributes created by the Rest node are now marked as having no transformation type. If you need to transform them, you can set their transformation type using the Attribute Create node.

Changed

The Apply to all button in brush nodes now sets the pressure to 100% to work reliably with tablets.

Changed

The File node will not accept just default.bgeo as an output filename. This prevents confusion when the user unknowingly overrides the default geometry. If you really need to do this, use ./default.bgeo.

Fixed

Pasting a parameter value/reference into a focussed parameter field now inserts at the cursor instead of replacing the contents.

Fixed

The Poly Patch node now maintains point, vertex, and primitive groups and attributes. Previously it only maintained float attributes on points and vertices.

Fixed

Large speedup in Blend Shapes geometry node. Smaller speedups in Sequence Blend and Time Blend geometry nodes.

Fixed

Improved speed for the general use cases of Object Merge, especially when the transform is the same in the source and destination.

Fixed

You can now import any geometry type Houdini understands from sections inside digital assets.

Fixed

Fixed a bug in the Transform node where transforming (but not rotating or scaling) a point or edge group would only update the position (P), and not all transformable attributes.

Fixed

The For Each and Each nodes now work with large integer attribute values greater than 24 million. Reduced startup time and memory usage of For Each and slightly sped up Each.

Fixed

The Point Cloud Iso node is now interruptible.

Fixed

Adding a Solver SOP in the viewport now adds it to the current geometry network instead of creating a new object.

Fixed

The Packed Edit node now expands relative paths to materials when assigning the attribute value.

Fixed

Group fields now accept vertex group names. This is in anticipation of a future version that will allow creation of named vertex groups.

Fixed

Trail node now support matching by string attributes.

What was new in Houdini 15