Houdini Main Changelogs

20.5.232

Fixed bug where hou.Geometry.intrinsicValue() and hou.Prim.intrinsicValue() incorrectly returned tuple/array intrinsics that happened to have a current tuple size of 1 as non-tuple values.

This required identifying intrinsics as scalar or not during registration. In most cases this should not require changes to HDK code. The exception is if your code calls GA_IntrinsicManager::Registrar::addAttribute(), in which case, you'll need to add the new argument.

Fri. May 10, 2024
20.5.229

Fixed positions outputs for mx_voronoi VEX functions and kma_voronoinoise2d, kma_voronoinoise3d.

Tue. May 7, 2024
20.5.224

Specifying a camera override to husk will now pass that new camera information to any render-time procedurals. For example, the Ocean procedural would previously *always* use the RenderSettings camera to control the dicing of the plane, even if a camera override was specified.

Thu. May 2, 2024
20.5.222

MuscleFlex: added a KineFX Rest Skel parameter for when Deformation Style is set to BoneDeform. If BoneDeform is chosen, and a Rest Skel is not provided, an attempt will be made to extract a rest pose from the animated skel.

Tue. April 30, 2024
20.5.216

TissueSolidify: reverted all changes to restore the H20.0 version. All new features have been pushed into a version::2.0 of the node. ie, all parm dialog improvements, visualizer improvements, and new layer setup are now in tissuesolidify::2.0

Wed. April 24, 2024
20.5.215

SkinSolverVellum: the sliding limit constraint was reverted back to the extra vellum constraint. Also, fixed a bug in the deferred enabling of collsions. If the Rigid Points group was used, collisions were being enabled on this group unintentionally.

Tue. April 23, 2024
20.5.209

Fixed a minor muscle_id naming issue in the Capybara test geometry. R_vastus was properly renamed R_vastus and R_vastuslateralis. Muscle IDs on the right side are now consistent with the left side.

Wed. April 17, 2024
20.5.207

Muscelsolidify had a typo in a wrangle snippet that adjusted tetsize with local thickness. This may introduce some different point counts in existing hip files where internal remeshing and thickness based sizing are used.

Mon. April 15, 2024
20.5.207

Fixed a bug in the 'hou.ViewerStateDragger' where the dragger did not correctly account for the object-to-world transform when the viewport was set to 'Hide Other Objects'. After this fix, the dragger should correctly respond to interactions when there is an object transform set and the transforms have been set using the matrix returned by 'hou.GeometryViewport.modelToGeometryTransform()'.

Mon. April 15, 2024
20.5.204

Improves consistency in Quad Remesh and Tangent Field SOPs output across different platforms.

Fri. April 12, 2024
20.5.203

TissueSolidify: now includes parameters to offset the core layer via painted attribute. A Scale parameter is also included.

This makes it possible to separate (create gaps) between the tissue and core layers via painted attributes, each independently. When using the attribute and Scale parameters to affect the tissue layer, this may result in some

differences in the core layer point count when compared to the result prior to this change. Some parameters have been reorganized, this may produce harmless warnings for existing hip files.

Thu. April 11, 2024
20.5.202

PDG processor nodes that are generating work items dynamically may now be invoked with a list of upstream work items, instead of always generating from a single item. This is because the graph evaluation logic is able to coalesce work item generations that are happening around the same time as a performance optimization.

The main implication for custom nodes is that work item generation logic must now always specify the parent task when creating a work item in a work item holder, since PDG no longer knows which of the upstream work items should be set as the parent of a newly created item. This was already the standard/best practice for writing nodes that worked both statically and dynamically.

Wed. April 10, 2024
20.5.201

The image viewer when isolating a particular plane will do so prior to colour correction, rather than after. This means you will see the equivalent of having manually pre-extracted that channel as a grey scale image. The biggest changes are in alpha and if your primaries of your space and your display do not match.

Tue. April 9, 2024
20.5.200

Improves consistency in Quad Remesh SOP output across different platforms.

Mon. April 8, 2024
20.5.194

In HOM, fix the erroneous inclusion of packed primitives types when calling hou.Geometry.containsPrimType() and hou.Geometry.countPrimType() with hou.primType.Custom.

Tue. April 2, 2024
19.5.939

Fixed hanging in Houdini related to Python SOP nodes. For example, Houdini would hang when cooking Python SOP nodes from Houdini Engine Session Sync, or when a background thread tried to call into HOM while Houdini cooked Python SOP nodes.

The fix required restoring old behavior in Python SOP nodes that unfortunately reintroduces an old hang, one at least that is limited in scope. The old hang occurs when Python SOP nodes execute multi-threaded code that calls into the HOM `hou` package from separate threads. If you wish to run such code in Python SOPs, then you can set `HOUDINI_ALLOW_PYTHON_SOP_MULTITHREADING=1` in the environment with the caveat that you may encounter other hangs as detailed above (i.e. cooking Python SOP nodes from Session Sync).

Tue. April 2, 2024
20.0.666

Fixed hanging in Houdini related to Python SOP nodes. For example, Houdini would hang when cooking Python SOP nodes from Houdini Engine Session Sync, or when a background thread tried to call into HOM while Houdini cooked Python SOP nodes.

The fix required restoring old behavior in Python SOP nodes that unfortunately reintroduces an old hang, one at least that is limited in scope. The old hang occurs when Python SOP nodes execute multi-threaded code that calls into the HOM `hou` package from separate threads. If you wish to run such code in Python SOPs, then you can set `HOUDINI_ALLOW_PYTHON_SOP_MULTITHREADING=1` in the environment with the caveat that you may encounter other hangs as detailed above (i.e. cooking Python SOP nodes from Session Sync).

Tue. April 2, 2024
20.5.194

Fixed hanging in Houdini related to Python SOP nodes. For example, Houdini would hang when cooking Python SOP nodes from Houdini Engine Session Sync, or when a background thread tried to call into HOM while Houdini cooked Python SOP nodes.

The fix required restoring old behavior in Python SOP nodes that unfortunately reintroduces an old hang, one at least that is limited in scope. The old hang occurs when Python SOP nodes execute multi-threaded code that calls into the HOM `hou` package from separate threads. If you wish to run such code in Python SOPs, then you can set `HOUDINI_ALLOW_PYTHON_SOP_MULTITHREADING=1` in the environment with the caveat that you may encounter other hangs as detailed above (i.e. cooking Python SOP nodes from Session Sync).

Tue. April 2, 2024
20.5.187

Modified the signature of the APEX python API function 'apex.graph.connectedPorts'. The first keyword argument has been renamed from 'traverse_subnets' to 'include_subports' and a third keyword argument for 'traverse_subnets' has been added. This fixes a bug where internally the flag to traverse into subnets was always being passed false, and the 'traverse_subnets' argument was actually being used for including all connections to subports.

Tue. March 26, 2024
20.5.182

The LOP Output Processors API has had several changes for handling references with stage variable expressions:

  • beginSave takes a new stage_variables dictionary parameter whichshould be passed to the base class implementation. This dictionarycontains the stage variables set on the root layer of the stagebeing written to disk.
  • A new stageVariables method returns the dictionary passed to thebase class implementation of beginSave.
  • A new processReferenceExpression method behaves exactly likeprocessReferencePath except it is called when the asset referenceis expressed as a stage variable expression.
Thu. March 21, 2024
20.5.169

Fix the Rig Doctor's Convert Instance Attributes parameter to follow Copy to Points exactly. In particular, it was missing handling for v and pscale/scale were never multiplied together when both are present. This can cause existing uses of it to produce different results.

Fri. March 8, 2024
20.0.626

The materialW attribute was not being handled cleanly after updates were made to the way axialramp was being created. Affected nodes include MuscleProperties, MuscleConstraintProperties, and Fibergroom. The materialW attribute will now be created by each of these nodes if it doesn't exist. Some minor discrepancies may also be noticed in attributes like muscleendmask, tendonmask, and muscletobonemask.

Thu. February 22, 2024
20.5.154

The materialW attribute was not being handled cleanly after updates were made to the way axialramp was being created. Affected nodes include MuscleProperties, MuscleConstraintProperties, and Fibergroom. The materialW attribute will now be created by each of these nodes if it doesn't exist. Some minor discrepancies may also be noticed in attributes like muscleendmask, tendonmask, and muscletobonemask.

Thu. February 22, 2024
20.5.147

The Edit Material Properties LOP now prepends referenced material, instead of appending them, to allow the expected ordering of opinions and making the last LOP in the strongest layer take precedence.

Thu. February 15, 2024
20.0.618

Added SkinSolidify 2.0: the new version of the skinsolidfy hda uses a different smoothing setup. This includes the ability to use a weight mask attribute to control the interior smoothing and reduce the potential for inversions.

Wed. February 14, 2024