On this page


  • The physics-based placement in the Edit LOP is now optimized for faster interactive layout in large scenes.

  • You can now edit instanceable references and local transforms in the Edit LOP.

  • The Mask From Bounds LOP assigns a primvar to any prims within a bounding box. This lets you apply other nodes only to those prims.

  • The USD plugin for .bgeo files can now handle compressed formats (.bgeosc, .bgeogz, .geosc, .geogz).

  • The Explore Variants LOP lets you view and choose from the geometry variants available on a prim in the viewer.


  • The HDA dynamic payload LOP makes it easy to generate animated USD geometry from a digital asset.

  • You can now import crowd agents as UsdSkel prims.


  • 20× faster shader translation performance.

  • Streamlined shader authoring.

  • OSL shader authoring in VOPs.

  • In the shader specialization workflow, the spare parameter shader_skipchildren is now called shader_forcechildren, with the opposite meaning.

Lighting and rendering

See also what’s new in the Karma renderer.

  • The Light Mixer now puts lights created from the mixer in a subnet. You now can select a light in the mixer and use the light handles to edit the light in the viewport.

  • You can now edit transforms in the Light Mixer and Edit LOP spreadsheets.

  • The Render Gallery lets you snapshot IPR renders and their associated LOP network settings.

  • Display settings in the Solaris viewer are now per-render delegate.

  • Improved support for light projection maps.

  • Houdini’s nodes for creating lights can now add barn doors, with interactive handles in the viewer for controlling them.

  • Dedicated Distant Light LOP for sunlight.

  • USD-conforming Dome Light environment maps.

Husk is Houdini’s command-line wrapper to drive Karma (and other render delegates) in batch processing.

  • Husk can now do progressive rendering to MPlay.

  • MPlay can now monitor the output of Husk rendering to disk.

  • Husk can now output detailed render diagnostics. See the --usd-trace and --usd-chrome-file options.

  • Husk can now execute pre-render and post-render Python scripts.

  • Husk now supports tile rendering.

  • You can now click in the viewer/Mplay to target that area for progressive rendering.

User experience

  • The Solaris viewer now batches up separate small geometry primitives and sends them to the graphics card as one piece. This can can give incredible speed-ups for drawing and interactive tumble of scenes with many small prims (for example, leaves on a tree).

  • Improved multi-shot workflows with insertion points and Graft Branches.

  • Fine-grained performance tracking of LOP cooking.

  • The Scene Graph Details pane can now show the properties of selected prims in a spreadsheet view.

  • In the scene graph tree, the Descendants column shows how many prims exist under each prim. This can help identify where the complexity is in a big scene.

  • In the scene graph tree pane, you can now press MMB on a prim to show an info window for that prim, similar to the info window in the network editor. Press ⌃ Ctrl + MMB to open a pinned window.

  • The scene graph tree pane has a new sub-pane where you can build and save selection rules. You can then use them to select prims, or as virtual collections in LOP nodes.

  • The USD view no longer displays LOP stages embedded inside Object or SOP networks in the LOP network.

  • In combination with the Loft Payload Info LOP, the Solaris viewer can display bounding boxes for unloaded payloads, making it much easier to visualize large scenes.

  • Primitive pattern matching is now more powerful, with computed “auto collections”. For example, %bound:/cameras/shotcam is a virtual collection containing everything visible to the shotcam camera. %rule:rulename contains everything that matches a saved pattern rule. %type:name and %kind:name are easier to use and faster than using the inline VEX test syntax. You can even add your own custom auto collection type using the HDK.

  • Full support for USD 20.08.

  • LOP path support for USD packed primitives.

  • More flexible export of .usd files with USD ROP.

  • It is now possible for a LOP network to have no display flag set, in which case the viewer shows the output of the closest ancestor network that does have a display flag. This allows you to dive into subnetworks but still see the output of the parent network in the viewer.

  • Selection of instances in the viewer now just works, even in very complicated instancing setups.

  • Fixed a bug in the USD Render ROP where it would not update path references to other USD files.

  • Many other enhancements across the board.

What’s new in Houdini 18.5