Houdini 20.0 Nodes Geometry nodes

Franken Muscle Paint geometry node

Modifies muscle_id identities within a Franken Muscle using a paint interface.

On this page

The Franken Muscle Paint node allows you to interactively paint masks for Muscle IDs.

You can paint regions onto the muscle geometry to act as separate muscles within a single tet mesh.

How to

To...Do this

Resize the brush

Hold ⌃ Ctrl + ⇧ Shift and drag with LMB or ⌃ Ctrl + ⇧ Shift and use the scroll wheel on the mouse

Undo a brush stroke

Press ⌃ Ctrl + Z

Swap foreground/background paint values

Press G

Add new Muscle ID

Press A

Go to next Muscle ID

Press N

Go back one Muscle ID

Press B

Parameters

Group

A space-separated list of points and/or point group names (see group syntax). Interactive paint strokes will only affect these points. If this is blank, the node affects all points.

You can change the group between strokes to vary what is masked. Changing this group does not affect previous strokes.

When playing back strokes, the node re-uses the stored groups. If you want playback to be geometry-independent, do not select individual points by number here.

Active ID

The Muscle ID to paint with the next stroke. The menu of choices is taken from existing Muscle IDs and any additional attributes you set up in the Attributes tab.

Reset All Changes

Delete any changes made by this node so far.

Brush

LMB Operation

Sets the action for when you drag LMB on the surface. You can choose different actions for LMB, ⇧ Shift + LMB, and ⌃ Ctrl + LMB.

Paint FG

Sets/adds to the value in the painted points with the foreground paint value. See Paint Mode for how a stroke affects the values.

Smooth

Blurs together values in the painted points.

This may bake the current background value of the geometry into the saved stencil, so it may not have the expected behavior if the underlying attribute is animated.

Erase

Erases changes made in this node, restoring the original values.

Sample FG

Copies the raw value at the clicked location into the foreground paint value.

Paint BG

Sets/adds to the value in the painted points with the background paint value. See Paint Mode for how a stroke affects the values.

Sample BG

Copies the raw value at the clicked location into the background paint value.

MMB Operation

Sets the action for when you drag MMB on the surface. You can choose different actions for MMB, ⇧ Shift + MMB, and ⌃ Ctrl + MMB.

Paint FG

Sets/adds to the value in the painted points with the foreground paint value. See Paint Mode for how a stroke affects the values.

Smooth

Blurs together values in the painted points.

This may bake the current background value of the geometry into the saved stencil, so it may not have the expected behavior if the underlying attribute is animated.

Erase

Erases changes made in this node, restoring the original values.

Sample FG

Copies the raw value at the clicked location into the foreground paint value.

Paint BG

Sets/adds to the value in the painted points with the background paint value. See Paint Mode for how a stroke affects the values.

Sample BG

Copies the raw value at the clicked location into the background paint value.

Paint Mode

How the new value you paint interacts with any existing value. This acts component-wise for colors.

Over

Replace the old value with the new value.

Add

Add the new value to the old value.

Maximum

Use whichever is higher.

Minimum

Use whichever is lower.

Multiply

Multiply the paint color with the old value.

Shape

The shape and behavior of the brush.

Volume

Affects all points in a sphere. This will affect points whether or not they are connected topologically, so it is often paired with the Visible Only, Connected Only, or Front Face Only restrictions.

If you want to paint on a point cloud, the sphere often won’t be at the right depth. You can try adding low res geometry to act as a collider.

Surface

Affects all points in a circle along the surface of the geometry. The points must be connected to the main intersection point.

This ignores the front-facing option.

Screen

Affects all points in a circle in screen space. All points that would draw in that part of the screen will be affected, whether or not they are connected.

Fill

Affects all points in the geometry. The connectivity options can be used to apply this to only connected components.

Nearest Point

Affects only the nearest point to the targeted location. This is useful for making changes to low resolution geometry where it can be hard to capture a point precisely.

FG Float

For float attributes, the floating point value to be applied on LMB strokes.

BG Float

For float attributes, the floating point value to be applied on MMB strokes.

Radius

The radius of the brush, when Shape is set to Volume or Surface.

Opacity

The opacity of the paint applied on the next stroke. An opacity value of 1 will apply the full effect of the stroke, while an opacity of 0 will have no effect.

Soft Edge

The brush is drawn with a solid core that drops off to zero. The soft edge controls the percentage of the brush that is in the drop off. A soft edge of 0 will make a hard edge, and a soft edge of 1 will have a smooth fall off from the core.

Connected Only

Only affect the points which are within the same connected component as the primary hit point.

Front Face Only

Only affect the points whose normals are facing the viewer in the same way as the primary hit point.

This provides a faster way to avoid having brushes wrap to the hidden part of the geometry. This does not work with the Surface shape.

Visible Only

Only affect the points that are visible from the viewer.

This requires sending rays to validate the points, so it can be expensive.

Opacity Pressure

How much the stroke pressure affects the opacity. If this is 0, the opacity will be independent of how hard you press. If this is 1, the opacity will scale to zero as the stylus pressure scales to zero.

Radius Pressure

How much the stroke pressure affects the brush radius. If this is 0, the radius will be independent of how hard you press on a tablet. If this is 1, the radius will scale to zero as the stylus pressure scales to zero.

Show Brush Path

Displays the current stroke’s path as guide geometry.

Muscle IDs

The set of Muscle IDs to paint on. As you paint on a Muscle ID, the effect of your painting will be cached so that it can be re-applied.

Total New IDs

The amount of Muscle IDs you are able to paint on. Add, subtract, or clear the Muscle IDs.

Muscle ID

The name of the Muscle ID. Colors are created with a default (1, 1, 1), float attributes with 0, and integer attributes with 0.

Recache

Recache Method

When playing back the paint strokes when recaching or bypassing the point cache, there are several options for how to apply the stored strokes to the current geometry.

Original Values

The hit locations recorded when initially drawing the strokes will be used for playing back the strokes. This works well for volume brushes if re-applying to a point cloud that might not be collidable.

Re-Send Rays

Rays will be re-sent from the original screen locations and will intersect the current geometry. This works well if the geometry has been re-topologized but is roughly the same shape.

Primitive UV

The hit primitive and barycentric locations on that primitive will be used to update the stroke position. If the topology is unchanging, this will stick the strokes to animated geometry.

Texture UV

The uv value of the original hit will be used to locate. This is useful if the model has been re-topologized and moved, but has a uv layout that has been preserved.

Recache Strokes

Reapply the strokes. This replays all the strokes on the new input geometry so it may take a long time, but it allows the transfer to new geometry with mismatched point values.

Note that if groups depended on point numbers, the resulting re-application may not work.

Save Point Cache to Hip File

Controls if the cached paint is saved to the hip file. Saving may bloat the hip file, but not saving will slow down loading, as the entire cache process has to be played back, and will risk that the behavior will not be the same.

Changes to this option will only take effect with the next recache or stroke drawn.

Bypass Point Cache

This toggle will bypass the cache of point attributes and instead reapply all the strokes from scratch. This can be useful to procedurally apply to changing point counts.

Update Point Cache on Stroke

Re-applying the strokes every time you paint will become increasingly slow and untenable for large geometry. Turning on this option will cache the changed point values so that only the latest stroke needs to be applied.

If turned off, Bypass Point Cache should be turned on, and Bypass Point Cache will not reset when new strokes are painted.

Clear Stroke History

Erases the stored cache of all the strokes drawn. After doing this, the Bypass Point Cache and Recache Strokes options will not work, as they will no longer have a record of the earlier strokes.

In cases where procedural application is not desired, this can avoid the cost of saving a long paint session.

Snapshot

Move Stash to New File

Saves the data parameter into a new file, updates the geometry file to point to the new file, and clears the data parameter. This will externalize the geometry and reduce the size of the .hip file at the cost of having to manage an external file.

The default name and path are controlled by the HOUDINI_STASH_DIR and HOUDINI_STASH_FILENAME environment variables.

Load Stash from File

Explicitly loads the specified geometry file and stores it in the data parameter. This internalizes the stash file. The external file could be deleted after this, as the authoritative copy is now in the data parameter.

Strokes File

File path to store the brush strokes of the paint operation.

Baked Geometry File

File path to store the result of the painting operation.

See also

Geometry nodes