Houdini 22.0 Nodes Geometry nodes

Shot Sculpt 3.0 geometry node

Interactive tool for creating and managing time-based deformations.

On this page
Since 22.0

This tool allows you to create deformations on both polygonal and guide curve geometry, and manage how they change and blend across time. The viewport state allows you to use the sets of brushes from the Sculpt and Guide Groom SOPs. This is useful to interactively create your deformations.

Geometry Types

Shot Sculpt supports editing polygonal and guide curve geometry, provided through the first and second inputs. The Geometry Type parameter controls which input geometries you are currently deforming through viewport interaction. The two Geometry Types offer different sets of brushes, as well as different sets of parameters controlling brush behaviour.

Note

As polygonal geometry is deformed, Shot Sculpt will automatically deform the corresponding curves within the provided guide geometry. To function, the guide geometry must have the skinprim and skinprimuv primitive attributes. If these are not present, they can be generated using the Guide Skin Attribute Lookup SOP. If not provided, the curve geometry can still be deformed, but it may fail to deform along with the polygonal geometry.

Modes

Shot Sculpt supports three modes for editing geometry across time. Each Mode offers different sets of brushes, designed to achieve the workflow the mode supports.

Sculpt

In Sculpt Mode, viewport interaction manipulates point positions on the specified Geometry Type. These deformations are baked into Poses within the timeline view.

Attribute

In Attribute Mode, viewport interaction manipulates the value of a point float attribute on the specified Geometry Type. Edits to this attribute’s values are also baked into Poses, and thus interpolate across time. This attribute is present on Shot Sculpt’s output geometry, allowing you to drive downstream effects with a time-dependent point attribute.

Blendshape

Blendshape Mode is identical to Attribute Mode in that viewport interaction manipulates the value of a point float attribute on the specified Geometry Type. However, Blendshape Mode allows the specification of a Blendshape Target for either Geometry Type, which can be any geometry with the same point count as Shot Sculpt’s inputs. When provided, the painted attribute’s values will blend point positions between their current values, and corresponding values within the Blendshape Target.

Poses, Clips, and Tracks

Poses

The main interface for this tool is the Shot Sculpt Pane. An editor that organizes your deformations within a timeline. Sculpt edits are saved as Poses, each is assigned to a single frame. Poses represent snapshots of what the resulting geometry looks like at that frame and acts as keyframes that represent a shape/deformation.

Clips

Clips act as the main container for Poses. A Clip can house more than one pose and across the frame range between adjacent Poses. The left-most Pose will blend into the right-most. Clips also have designated frame ranges before and after the first and last Pose, allowing control over how they ease in and out.

Note

Each Clip will impose one deformation on your input geometry. This deformation will be a linear combination of the shapes associated with the Poses within this Clip.

At the Clip level, you can specify the reference frame that your deformations should be applied within. There are options for World Space, Tangent Space, and Joint Space.

Note

For Joint Space to function, the input geometry must have a boneCapture attribute, and you must provide an Animated Pose.

Clips are specific to one Geometry Type. As such, edits to both polygonal and guide geometry cannot be housed within the same Clip.

Tracks

Tracks are an organizational tool, allowing you to group your Clips together. There is also an animatable float parameter at the Track level, whose value weights the overall deformation a Clip will impose.

Track Types

Each Track has a specific Track Type, corresponding to the Mode whose edits the track can support.

  • Sculpt Tracks support edits made within Sculpt Mode.

  • Attribute Tracks support edits made within Attribute Mode. Each Attribute Track introduces a single point float attribute on both your polygonal and guide geometry. While this Attribute Track is selected, viewport interaction will manipulate this attribute directly.

  • Blendshape Tracks support edits made within Blendshape Mode. Each Blendshape Track provides a single Blendshape Target per Geometry Type. While this Blendshape Track is selected, viewport interaction will paint an attribute whose values will be used to blend point positions towards this track’s specified Blendshape Target, for whichever Geometry Type is currently selected.

Geometry Types

By default, a Track can support edits to both polygonal and guide curve geometry. But the Geometry Type parameter at the Track level can be set to restrict edits to

How Shot Sculpt Works

There is an invisible Stash parameter on this node called deformation_stash. This detail contains one packed primitive per Pose that exists within the node. Each packed primitive represents the shape/deformation this Pose is associated with.

Accessing Shapes

Geometry is processed as clusters as a performance optimization. Each shape is stored as a subset of the clusters representing the input geometry.

Unpacking an entry in the deformation_stash will yield this subset of clusters representing a Pose’s shape. Each cluster is a packed primitive itself. Unpacking these clusters and merging them will yield an overestimate of the sculpted shape. If you blast any points whose diff attribute is {0, 0, 0}, you will get the minimal representation of it.

The _idx attribute on points within clusters maps them to their original point number within the input geometry. Once clusters are unpacked and merged, any points with matching _idx values should be fused if a continuous surface is desired.

Cooking Process

Shot Sculpt first determines which Clips the playhead is currently intersecting with, encoding this data within a dictionary attribute where each entry represents a Clip that should impose a deformation.

It iterates over each entry and identifies the shapes within the deformation_stash to unpack, and apply the appropriate linear combination of these shapes upon the input geometry.

Clips are applied in their Track order, and within a Track, it uses the Clip order from left-to-right (using the Clip’s left-edge).

Tips

  • When you sculpt with the Track Weight below 1, the internally recorded deformation will be a magnified version of your sculpt edit. The Track Weight is then applied to lessen your deformation’s presence, the post-processed result in the viewport matches the shape you had just sculpted.

    • If you increase the Track Weight after, you will see the magnified version of your shape. If not desired, try using the Blend To Rest Viewport Slider to lessen the deformation’s presence, the result will propagate to what is recorded internally.

Options for Non-Sculpted Deformations

  • The main method to create deformations is the Sculpt SOP but there may be certain edits you can’t produce using sculpting. There are two options for introducing deformations coming from other SOPs into the Shot Sculpt interpolation scheme: Blendshape Tracks and Imported Poses.

Note

A main distinction between Blendshape Tracks and Imported Poses is the lifetime of Shot Sculpt’s dependency on the SOP providing the edit.

Blendshape Tracks

Within Blendshape Tracks, the painted attribute’s values interpolate point positions between their current values, and their corresponding values within the Blendshape Target. This interpolation occurs dynamically, each time Shot Sculpt cooks.

This means that any changes made to the Blendshape Target will propagate to the Blendshape Track's resulting deformation, even after Clips and Poses have been created. Further, moving a Clip within a Blendshape Track will query point positions within the Blendshape Target across the Clip's new frame range. This also means that Blendshape Targets will cook whenever Shot Sculpt cooks, potentially hindering performance.

Imported Poses

When importing a Pose, the shape difference between Shot Sculpt’s input and the import target is only computed at the time this action takes place which makes it static.

Future edits to the import target will not propagate to Shot Sculpt, and moving Clips will not recompute the shape difference across the new frame range. This means the imported deformation behaves as if you had manually sculpted it.

Reference Frames

  • Once the Animated Pose and boneCapture attribute have been provided, any existing deformations are unable to use Joint Space. Only future edits will have this capability.

  • Tangent Space may perform poorly around areas where geometry creases, potentially resulting in artifacts such as interpenetration. The best alternative is to use Joint Space. If an Animated Pose is unavailable, Blendshape Tracks are another option.

    For example, if you use Smooth Brush on a character’s armpit and the deformation is not translating well in Tangent Space across adjacent frames. A Blendshape Track whose Blendshape Target is the Smooth SOP will replicate this, but will eliminate Tangent Space’s artifacts by querying the smoothed point positions at every frame rather than transforming 3D displacements.

Rest Poses

  • Rest Poses are identical to Poses, but are not associated with any deformation. These act as a way to specify frames within a Clip’s interpolation scheme, towards which adjacent Poses should blend out.

    You can think of Clips as being automatically delimited by Rest Poses, allowing the first and last Poses to ease in and out.

Custom Blend Curves

  • As of now, there isn’t a method to manage custom blend curves across a Clip’s Frames In, Frames Out, or a Poses’s Blend To Next. There are multiple preset curves that can be selected but if you require more intricate control, the best option would be to set the Clip’s Blend In and Blend Out to Hold, and animate the Track Weight manually.

Parameters

Open Shot Sculpt Pane

Opens the Shot Sculpt pane window at the bottom of the viewport.

Brushes

Mode

The current mode that controls the viewport interaction. Also determines which track type future edits will be compatible with.

Sculpt

Viewport interaction deforms point positions. Edits are compatible with Sculpt Tracks.

Attribute

Viewport interaction edits a point float attribute. Edits are compatible with Attribute Tracks.

Blendshape

Viewport interaction edits a point float attribute, whose values blend point positions towards a specified Blendshape Target. Edits are compatible with Blendshape Tracks.

Geometry Type

The geometry type we will be operating upon through viewport interaction.

Polygons

Viewport interaction will manipulate polygonal geometry, the first node input.

Guides

Viewport interaction will manipulate guide curve geometry, the second node input.

Sculpt Mode

Brush

  • When the Geometry Type is set to Polygons, this list contains the full set of brushes from the Sculpt SOP. See Sculpt’s Help Card for more information.

  • When the Geometry Type is set to Guides, this list contains the subset of brushes from the Guide Groom SOP that deform guide curves. See Guide Groom’s Help Card for more information.

Attribute Mode

Paint Attribute: Paints a point float attribute, increasing the value from 0-1.

Erase Attribute: Erases a point float attribute, decreasing the value from 1-0.

Blendshape Mode

Blend: Paints a point float attribute, increasing the value from 0-1.

Erase: Erases a point float attribute, decreasing the value from 1-0.

For both brushes, attribute values blend point positions towards values within the specified Blendshape Target.

Set Blendshape Target

Button that sets the Blendshape Target for the currently selected Geometry Type. This populates either the Polygonal Target or Guides Target parameter, available at the Track level for Blendshape Tracks.

Note

For Mode or Geometry Type, you always have access to the Paint Mask brush. This will paint values within the current Active Mask. The banks of Available Masks are stored per Geometry Type.

Brush Parameters

The set of available brush parameters is dependent on the current Geometry Type.

Polygons

Access to the full set of brush parameters from the Sculpt SOP. See Sculpt’s Help Card for more information on these parameters.

Guides

Access to the subset of brush parameters relating to deforming guide curves from the Guide Groom SOP. See Guide Groom’s Help Card for more information on these parameters.

Tracks

Selected Track

The currently selected Track. Any edits created through viewport interactions will be assigned to a Pose within this Track. Similarly, pasting copied objects, importing Poses, and the creation of Rest Poses all apply to the Selected Track.

Create Rest Pose

Creates a Rest Pose at the playhead within the Selected Track. If the playhead is intersecting an existing Clip, the Rest Pose will be appended to it. Otherwise, a new Clip will be created. If the playhead is intersecting an existing Pose, the Rest Pose will replace it.

Note

A Rest Pose is identical to any other Pose, but is not associated with a deformation. These act as a way to specify frames within a Clip’s interpolation scheme, towards which adjacent Poses should blend out.

Import Pose

Allows the importing of deformations created outside the Shot Sculpt node. This button opens a Node Picker dialogue. When you select a SOP whose geometry has the same point count as one of Shot Sculpt’s inputs, the shape diff between the two will be inserted as a Pose, at the playhead and within the Selected Track.

Import Polygonal Pose

The selected SOP’s geometry must have the same point count as Shot Sculpt’s first input, the polygonal geometry.

Import Guide Pose

The selected SOP’s geometry must have the same point count as Shot Sculpt’s second input, the guide geometry.

If the playhead is intersecting an existing Clip, the Imported Pose will be appended to it. Otherwise, a new Clip will be created. If the playhead is intersecting an existing Pose, the Imported Pose will replace it.

View Clustered Geometry

When inside the Shot Sculpt state, it’s a clustered version of the input geometries that are being rendered in the viewport. Use the toggle to control the performance optimization. When on, certain features within Houdini are turned off such as entity selection, point visualization, etc.

Color Visualization

Mode

Colors are assigned at the Track, Clip, and Pose level. This menu allows the specification of how deformations being applied on your geometry should be colored in the viewport. The colors of entities within the Shot Sculpt Pane will also align with the option selected from this menu.

Track Color

All deformations will be colored using their corresponding Track’s color.

Clip Color

All deformations will be colored using their corresponding Clip’s color.

Pose Color

Each deformation will be colored using its Pose color. Across the frame range between adjacent Poses, the left-most’s color will blend into the right-most’s color.

Geometry Type

This menu allows the specification of how edits should be colored, relative to your current Geometry Type.

Active Geometry Type

Only edits to the active Geometry Type will be colored in the viewport. For example if your Geometry Type is Polygons, only edits to the first node input will be colored. Edits to the second node input, the guide curve geometry, will not be colored.

Both

Edits to all Geometry Types will be colored.

Selected Track

When on, deformations resulting from the currently Selected Track appear colored in the viewport.

Other Tracks

When on, deformations resulting from currently unselected Tracks appear colored in the viewport.

Guide Width

Specifies the rendered width of the guide curve geometry. This will be present as a detail attribute.

Override Existing Attribute

Allows any existing width attribute to be overridden with the guide width value specified in the Shot Sculpt parameters.

Track Parameters

Type

The type of this Track. See the information for Track Types.

Note

Poses created within Sculpt Tracks manipulate point positions, and if moved to Blendshape Tracks or Mask Tracks will result in an error state and won’t be applied on your geometry. Similarly, Poses created within Blendshape Tracks or Mask Tracks cannot be moved to Sculpt Tracks. However, Poses within Blendshape Tracks and Mask Tracks can be interchanged.

Note

Within Blendshape Tracks and Mask Tracks, when the playhead intersects a region of Clip overlap, the maximum attribute value per-point will be used, no matter which Clip it came from.

Geometry Type

The Geometry Type this Track supports edits towards.

Both

Support edits of both Clip Types.

Polygons

Only supports Clips whose Clip Type is set to Polygons.

Guides

Only supports Clips whose Clip Type is set to Guides.

Enable

When on, deformations resulting from this Track apply to your geometry.

Name

Allows you to give your Track a title. There is no requirement for uniqueness amongst Track names.

Color

The color associated with this Track.

Locked

Specifies whether this Track should be locked. Locked Tracks cannot be edited, meaning any viewport interaction done while a locked Track is selected will be rejected. Similarly, pasting copied objects, importing Poses, and the creation of Rest Poses will all be rejected if the Selected Track is locked.

Weight

A float parameter whose value weights all deformations on this Track, as well as their associated colors within the viewport.

Note

When sculpting while the Weight is below 1, the internally recorded deformation will be a magnified version of your sculpt edit. When the Weight is then applied to lessen your deformation’s presence, the post-processed result in the viewport matches the shape you sculpted.

If you increase the Weight, you will see the magnified version of your shape. If not desired, try using the Blend To Rest Viewport Slider to lessen the deformation’s presence.

Attribute Name

Only available when the Track Type is set to Attribute. The name of the attribute that will be edited through viewport interaction while this Attribute Track is selected. It will be present on both the polygonal and guide curve output geometries.

Blendshape Target

Only available when the Track Type is set to Blendshape. Path to a node that acts as the target that point positions will blend towards as geometry is painted.

Polygonal Target

The node provided must output geometry with the same point count as Shot Sculpt’s first input, the polygonal geometry.

Guides Target

The node provided must output geometry with the same point count as Shot Sculpt’s second input, the guide curve geometry.

Clip Parameters

Geometry Type

The Geometry Type this Clip houses edits towards. This parameter is not editable, and is set by the Shot Sculpt State throughout viewport interaction.

Polygons

This Clip contains edits towards Shot Sculpt’s first input, the polygonal geometry.

Guides

This Clip contains edits towards Shot Sculpt’s second input, the guide geometry.

Name

Allows you to give your Clip a title. There is no requirement for uniqueness amongst Clip names.

Color

The color associated with this Clip.

Blend In

This menu allows specification of the curve to blend in the first Pose within this Clip. The function is evaluated across a specific number of frames preceding the first Pose, specified by Frames In and the resulting value weights the first Pose.

Linear

Hold

Smooth

Ease In

Ease Out

Blend Out

This menu allows specification of the curve to blend out the last Pose within this Clip.

The function is evaluated across a specific number of frames following the last Pose, specified by Frames Out, and the resulting value weights the last Pose.

The menu options are identical to those within the Blend In parameter.

Frames In

The number of frames preceding the first Pose over which Blend In will be applied.

Frames Out

The number of frames following the last Pose over which Blend Out will be applied.

Edit Reference Frame

Determines the space within which sculpt edits will be applied at other frames.

When a sculpt edit is captured, the per-point 3D displacements are relative to the geometry’s state at that frame. When applying this deformation upon adjacent frames, you may want the 3D displacements to be transformed to achieve more consistent results.

Note

On any reference frame, if your playhead lies directly upon a Pose, its associated 3D displacement will remain untransformed.

World Space

The delta remains untransformed.

Tangent Space

The delta is transformed by the change that occurred to a point’s tangent plane/normal vector.

Note

Tangent Space may perform poorly around areas where geometry creases, potentially resulting in artifacts such as interpenetration. The normal data in these regions can be highly volatile, and unreliable to act as the basis for transforming 3D displacements.

Joint Space

The delta is transformed by the change that occurred to a point’s associated joints.

Note

To use Joint Space, the input geometry must have a boneCapture attribute, and you must provide an Animated Pose. Upon providing this data, any existing deformations will still be unable to use Joint Space. Only future edits will have this capability.

Note

Comparing World and Tangent Space

Comparing Tangent and Joint Space

Pose Parameters

Geometry Type

The Geometry Type this Pose contains an edit towards. This parameter is not editable, and is set by the Shot Sculpt State throughout viewport interaction.

Polygons

This Pose contains an edit towards Shot Sculpt’s first input, the polygonal geometry.

Guides

This Clip contains an edit towards Shot Sculpt’s second input, the guide geometry.

Blend To Next

This menu allows specification of the curve to blend in the next Pose within this Clip.

This menu is turned off for the last Pose in a Clip, including Clips with only one Pose, because the Clip level’s Blend Out parameter controls how the last Pose eases out.

The menu options are identical to the Blend In parameter at the Clip level, with the exception of Hold, which is unavailable in the Blend To Next menu.

Sculpt Frame

The frame that this Pose is assigned to. When the playhead is on this frame, the associated shape will be weighted at 100%.

Color

The color associated with this Pose.

Note

This parameter is hidden for Rest Poses, which are colored white.

Jump to Frame

When pressed, the playhead will jump to this Pose’s Sculpt Frame.

Defaults

This tab contains certain parameters that exist within the Track, Clip, and Pose multi parameters. Here, you may set preferred default values that will apply to any newly created objects.

Tracks

Type, Geometry Type.

Clips

Blend In, Blend Out, Frames In, Frames Out, Edit Reference Frame.

Poses

Blend To Next.

Miscellaneous

Viewport Sliders

These viewport sliders can be used on any frame and are similar to the sliders in the Animation Toolbar, but adjusted for Shot Sculpting.

Each slider will create a Pose at the current frame within the Selected Track. If a Pose already exists at this frame, it will be replaced. For each slider, the value acts as a blend weight between a source and a target.

Bias From Current

Source: The geometry at the current frame

Target: An adjacent Pose. When the value is positive, it is the following Pose in the timeline. When the value is negative, it is the preceding Pose.

Bias From Rest

Source: A Rest Pose.

Target: An adjacent Pose. When the value is positive, it is the following Pose in the timeline. When the value is negative, it is the preceding Pose.

Blend To Rest

Source: The geometry at the current frame.

Target: A Rest Pose.

Inputs

Polygons

The polygonal geometry to perform Shot Sculpting.

Note

To have the reference frame for a sculpt edit be in Joint Space, the geometry to deform must contain the boneCapture point attribute.

Guide Curves

The guide curve geometry to perform Shot Sculpting.

Note

For the guide geometry to be valid, it must have the skinprim and skinprimuv primitive attributes. If these are not present, they can be generated using the Guide Skin Attribute Lookup SOP. If not provided, the curve geometry can still be deformed, but it may fail to deform along with the polygonal geometry.

Animated Pose

The geometry’s Animated Pose. Only required if you intend to use Joint Space as the reference frame for a sculpt edit.

Outputs

Deformed Polygons

The polygonal geometry with all deformations applied on top.

Deformed Guide Curves

The guide curve geometry with all deformations applied on top.

Geometry nodes