Houdini 20.5 Nodes LOP nodes

SOP Create

Lets you create geometry in a SOP subnetwork inside this node, so you can create geometry in-place in the LOP network instead of needing a separate SOP network.

On this page
Since 18.0

Overview

This node is essentially an embedded SOP subnetwork combined with a SOP Import LOP. It lets you create SOP geometry “in place” in the subnet, and then “import” it from the subnet, with the same SOP-to-USD controls as on the SOP Import node.

See how SOP import works for detailed information on how the importer converts SOP information into USD.

How to

  1. Add a SOP Create node.

  2. In the network editor, double-click the SOP Create node to go inside to the SOP subnet.

  3. Use SOPs to generate geometry.

    As you develop the geometry, you can add path string attributes to SOP primitives to specify where they should appear in the USD scene graph tree when imported. If you specify a relative path (doesn’t start with /), the value is appended to the SOP Create node’s Import path prefix parameter.

    Remember that for polygons, all faces you want to be part of the same USD mesh prim must have the same value in their path attribute.

    See generating geometry hierarchy.

    (The SOP Create node can also create USD geometry subsets based on SOP string attributes and/or groups. Geometry subsets are useful for assigning materials to groups of faces.)

  4. End the geometry network with an Output SOP.

    The Output node is used as the output for the subnetwork. If you don’t have an Output node in the subnet, it uses whatever node has the display flag.

  5. In the network editor, press U to go back up to the LOP network.

  6. In the SOP Create node’s parameters, set the Import path prefix.

    Any geometry that doesn’t have a path attribute is given a generated name (for example, all polygons go into a mesh prim named something like mesh_0), and put under this prim path.

    Any geometry with a relative path attribute value is prefixed with this prim path.

    See generating geometry hierarchy.

Parameters

Load As Reference

When this is on, the geometry will be imported as a payload. When this is off, the geometry will be imported by sublayering its hierarchy over the existing scene tree (see sublayers and references).

Sublayer Style

(When Load as reference is off.) By default, geometry imported from SOPs is treated like geometry imported from a file on disk: you can only edit it by applying stronger opinions on top. Changing this parameter, allows this node to put the geometry in the active layer, so it can be modified by LOP nodes connected to this node’s output.

The node does this by copying the contents generated from the SOP geometry into an anonymous in-memory USD layer. This is slower, but provides more options for how many USD layers you need to write to disk, and what goes in each layer. This is similar to the operation of a Load Layer for Editing LOP.

The Copy SOP Layer Into New Active Layer style creates a new active layer into which the SOP layer contents are copied. The Merge SOP Layer Into Existing Active Layer style copies the SOP layer contents into the input node’s active layer, resulting in no new layers on the stage.

Adjust Transforms for Input Hierarchy

(When Load as reference is off.) When this is on (the default), the node automatically compensates for transform problems created if you round-trip geometry from LOPs to SOPs (as packed USD primitives) and then back to LOPs again. If you know you are not round-tripping LOPs → SOP packed USD primitives → LOPs, you can turn this off to make importing faster.

Packed Primitives in SOPs only have a single transform, representing the full local-to-world transformation of the packed geometry. If you export a USD geometry primitive to SOPs as a packed USD primitive, Houdini flattens the full transformation hierarchy under the USD prim into a single transformation matrix.

This creates a problem if you then “round-trip” the SOP packed primitive back into LOPs, as the descendants will have their own transforms, which are also now incorporated into the root prim’s transform imported from SOPs. This results in an incorrect double-application of the transforms.

When this parameter is on (the default), the node examines every transformation imported from SOPs, in the context of the prim’s location in the scene graph hierarchy. If the prim (or its ancestors) already exist on the input stage, the node inverts the transformations of the ancestor prims, and applies them as additional local transformations on the prim. This ensures that the final world space location of the prim in LOPS will be the same as it was in SOPs.

If Copy Contents Into Editable Layer is on, the node applies these additional transforms directly to the imported primitives, otherwise the node creates a new active layer and puts the transforms in the new layer as overrides.

Bind Materials

Binds materials to the imported USD primitives based on the usdmaterialpath SOP attribute. The usdmaterialpath value can specify either the path to a material primitive, or the path to another primitive to copy the material binding from. If the Partition Attributes include a materialBind SOP attribute, material bindings can also be created for the resulting geometry subsets.

Reference Type

(When Load as reference is on.) Control whether the SOP geometry is added to the reference primitive as a Payload or Reference composition arc. Also indicates whether this new composition arc should be made stronger or weaker than existing composition arcs on this primitive.

Weaker Payload

Create a Payload composition arc that provides weaker opinions than existing payloads.

Stronger Payload

Create a Payload composition arc that provides stronger opinions than existing payloads.

Weaker Reference

Create a Reference composition arc that provides weaker opinions than existing references.

Stronger Reference

Create a Reference composition arc that provides stronger opinions than existing references.

Reference Primitive

(When Load as reference is on.) This node treats the converted geometry like an external USD geometry file. This controls which root-level prim to import from the USD prim hierarchy generated by converting the SOP geometry. You should leave this set to “Reference Automatically Chosen Primitive”.

Reference Automatically Chosen Primitive

If the referenced file has a default primitive set, use that. If there is no default prim, use the first Xform prim at the root. If there is no Xform prim at the root, use the first root prim of any type.

Reference Default Primitive

If the referenced file has a default primitive set, use that. If not, display a warning on this node.

Reference Specific Primitive

Reference in the scene graph path in the Reference primitive path parameter.

Reference Primitive Path

The scene graph path of the prim in the referenced layer that that is composed onto the stage. Contents of the referenced layer outside of this referenced primitive path will not appear on the composed stage. This parameter is only used if the Reference primitive parameter is set to “Reference specific primitive”.

(If you set this field automaticPrim or defaultPrim, it mimics the behavior of setting Reference primitive to “Reference automatically chosen primitive” or “Reference default primitive”.)

Primitive Path

In create mode, this parameter specifies a single primitive path. This is the scene graph path where the referenced branch will be attached. If this prim doesn’t exist, the node will create it. In edit mode, this parameter is a primitive pattern that will be matched against the existing primitives on the stage connected to this node’s first input. You can use local variables to control the reference primitive path.

Make Instanceable

Mark the new or modified prims as instanceable (as in “native instancing”). This saves memory if you reference the same branch into multiple places, but makes the descendants of the referenced prim not editable. If this option is off, the prims are not explicitly marked as not instanceable. Instead, the current instanceable value on each prim is left unchanged.

Parent Primitive Kind

If the prim at Primitive path doesn’t exist, this node will create it. If it has to create the prim, it will give any intermediate prims it has to create this kind.

Parent Primitive Type

If the prim at Primitive path doesn’t exist, this node will create it. If it has to create the prim, it will give any intermediate prims it has to create this type.

Show LOP Stage in SOPs

Points to a LOP node whose stage will be rendered into the Scene Viewer along with the SOP geometry when diving inside this SOP Network. Any USD cameras and lights will also become available to look through in the viewport’s camera menu. Specifying a LOP Network instead of a LOP Node path will fetch the stage of the LOP Node with the display flag set within the target LOP Network.

This SOP Network and the LOP node can be anywhere in the hip file and this feature will still work, but most commonly it comes from the LOP Network in which this SOP Network is embedded. It is also possible to create this same parameter as a spare parameter on any other node that contains SOP nodes (such as a Geometry Object) to cause a USD stage to be rendered in the Scene Viewer when inside the SOP Network.

Import Group

Turn this on and specify a group name (or a space-separated list of group syntax) to import. If you turn this on but leave the field blank, it imports all geometry.

Import Group Type

When enabled, specifies the whether the Import Group is a point or primitive group.

Import Path Prefix

If a prim being imported has an automatically generated name (like mesh_0) because it had no path primitive, or if it has a path primitive but the path is relative (does not start with /), the node automatically prefixes the name/path fragment with this path. This is a way of keeping “un-pathed” prims organized under a single branch. (See how to create geometry hierarchy.)

(The default is /$OS which puts “un-pathed” prims under a root prim with the name of this node.)

Layer Save Path

When turned on, sets the Save Path metadata for the layer containing the geometry to this file path. When you write out USD using a USD render node, the geometry is saved out to a .usd layer file using this file path (after output processing).

Transform

Applies a transformation to the primitives imported from the SOP network.

Transform

How the transform parameters below apply to the primitive. (Because each USD prim can contain multiple transforms, and be affected by parent transforms, there are many different ways to apply new transforms.)

Append

Apply the parameters as a new, most local transform.

Prepend

Apply the parameters as a new, least local transform.

Overwrite or Append

If a local transform exists with the name xformOp:transform, overwrite it with the parameters. Otherwise, apply it as a new, most local transform.

If this replaces an existing transform, that transform’s order in the local transform stack is not affected.

Overwrite or Prepend

Like “Overwrite or Append”, but least local.

Apply Transform in World Space

Apply the parameters as a new, most local transform. However, prior to applying the transform, it is updated so that the result of the transform appears as if the transform was being applied in world space, before any local or ancestor transformations were applied to the primitive.

Replace All Local Transforms

The transform specified in the remaining transform parameters is always applied as a new transform. Prior to applying this transform, all existing transform operations on the local transform stack are cleared so that only the supplied transform remains on the local transform stack (though ancestor transforms still have an effect).

Transform order

The order in which Houdini applies translates, rotates, and scales, and the order in which it applies rotation.

Translate

Movement amount along XYZ axes.

Rotate

Degrees rotation around XYZ axes.

Scale

Non-uniform scaling along XYZ axes.

Uniform scale

Scales the object uniformly along all three axes.

Pivot Transform

Pivot translate

Moves the local origin of the object.

Pivot rotate

Rotates the local origin of the object after translation.

SOP Import

Primitive Definition

Parameters in this group guide the translation process in terms of how USD primitives are generated from the source SOP geometry.

Packed USD Primitives

What to do with packed USD primitives in the imported SOP geometry.

Ignore

Ignore packed USD primitives in the source SOP geometry.

Overlay Transforms

Import the transformation of the packed USD primitive as an override (Over) prim. This makes it easy to transform the packed USD prims without unpacking them.

Overlay Transforms and Attributes

In addition to Overlay Transforms, point or primitive SOP attributes on the packed USD primitive are imported as primvars with constant interpolation.

Other Primitives

What to do with regular non-packed primitives (points, curves, polygons, spheres, and so on).

Define

Create the USD prims for the imported geometry if they don’t already exist. This is the standard way to import geometry.

Overlay

Create the USD prims as overrides. They will only be visible as changes to any prims that exist at a lower level with the same paths. This may be useful where you only want to import and modify certain attributes from SOPs onto existing USD geometry.

Overlay Transforms

Like “Overlay”, but only imports transform data.

Define Only Leaf Primitives

Author intermediate primitives (for example, any Xform prims created for the Import path prefix) as overrides instead of definitions. This means if they don’t match up with underlying prims in lower layers, the leaf prims won’t be added to the scene. This is useful if you only want to import the geometry if its ancestors already exist in the scene tree.

(Note that all of the data is still imported, it just may not be visible in the scene graph tree or the viewport.)

Packed Primitives

What to do with SOP-native packed primitives.

Create Xforms

Creates an Xform prim from the packed primitive’s transform and attributes, and the packed primitive’s geometry is imported underneath.

Create Native Instances

Import the geometry in packed primitives as instanceable references. This imports each piece as a prototype under a Prototypes prim under the Import Path Prefix prim.

Create Point Instancer

Import the geometry in packed primitives as point instanced geometry. This imports each unique piece as a prototype under the point instancer prim.

You can assign a SOP primitive attribute to the packed primitive named usdinstancerpath to specify the USD scene graph path of the instancer.

Unpack

Only imports the packed primitive’s geometry. Unlike the Create Xforms mode, this does not create any additional hierarchy, and is equivalent to unpacking the packed primitive prior to being imported. This can be useful for importing multiple pieces of geometry without merging their attributes.

Agents

What to do with agent primitives. In all modes, a prim is created from the agent primitive’s transform and attributes, and the agent’s geometry and animation are imported underneath.

Create Instanced SkelRoots

Imports the agent’s skeleton and geometry as instanceable references to a SkelRoot prim enclosing the skeleton and skinned primitives. This imports each unique agent definition as a prototype under an agentdefinitions prim under the Import Path Prefix prim.

Create SkelRoots

Creates a SkelRoot prim enclosing the agent’s skeleton and skinned geometry, which is imported underneath. This will be less efficient than Create Instanced SkelRoots for a large crowd, but can be useful for e.g. importing a single character where instancing is unnecessary.

Create Instanced Skeletons

Imports the agent’s skeleton as an instanceable reference to a Skeleton prim. This imports each unique agent definition as a prototype under an agentdefinitions prim under the Import Path Prefix prim.

Create Skeletons

Imports the agent’s skeleton as a Skeleton prim under the agent’s Xform prim. This will be less efficient than Create Instanced Skeletons for a large crowd, but can be useful for e.g. importing a single character where instancing is unnecessary.

Create SkelAnimations

Only imports the agent’s joint animation, creating a SkelAnimation prim. This can be used to efficiently import a sequence of frames, since the agent’s skeleton and rest geometry are typically unchanged between frames.

NURBS Curves

What to do with NURBS curve primitives.

Convert to Basis Curves

Import the curves as a BasisCurves primitive. This only supports cubic curves, but is useful for rendering through Hydra.

Create NURBS Curves

Import the curves as a NurbsCurves primitive. This provides complete round-tripping of NURBS curves, but has limited support for rendering through Hydra.

NURBS Surfaces

What to do with NURBS surface primitives.

Convert to Meshes

Import the surface as a Mesh primitive, which can be useful for rendering through Hydra.

Create NURBS Patches

Import the surface as a NurbsPatch primitive. This can be useful for round-tripping of NURBS surfaces, but has limited support for rendering through Hydra.

Kind Authoring

How to assign kinds to imported prims.

All Geometry is One Component

Set root primitives in the imported tree to Component. Do not set kinds on descendants.

Nested Groups and Components

Set leaf primitives in the imported tree to Component. Set branch primitives to Group.

Nested Assembly, Groups, and Components

Set root prims in the imported tree to Assembly. Set intermediate branch prims to Group. Set leaf prims to Component.

None

Do not set kinds on the imported prims.

Path Attributes

A (comma or space-separated) list of names of SOP primitive string attributes to use to use as prim paths to put the SOP geometry into. The default is path,name. See geometry hierarchy above.

If the list has more than one attribute, the importer checks each attribute for the first non-empty value.

If the string value a full path, that path is used as the USD scene graph path for that primitive. If the string is a relative path (or just a name), the string is appended to the Import Path Prefix string to generate a full scene graph path.

If none of the listed attributes exist on a given SOP primitive, or all values are an empty string, the importer generates a name automatically (for example, sphere_0).

Prefix Absolute Paths

Whether absolute path values from Path Attributes should be prefixed/parented or not. By default this is off and only relative path values are prefixed.

Import HeightFields as Mesh

If the source SOP geometry contains a height field volume, it will be imported as polygonal mesh. Other layers will be imported as vertex primvar if the values are varying, or constant primvar if the values are constant.

Geometry Handling

These parameters provide options to alter the interpretation of the SOP geometry data.

Treat Polygons as Subdivision Surfaces

For polygon meshes that are not already tagged with a subdivision scheme, author a subdivisionScheme attribute set to catmullClark. This will convert them to subdivision surfaces.

Subdivision Group

If Treat Polygons as Subdivision Surfaces is on, only convert polygons in this primitive group into subdivision surfaces.

Reverse Polygon Vertex Ordering

USD supports an orientation attribute on mesh primitives that indicates whether polygons have a left-handed or right-handed ordering, while SOP geometry is always left-handed ordering. When this option is on, the importer always reorders vertices (and associated primvars) to be right-handed.

This is useful when round tripping right-handed oriented polygons from USD into SOPs and back into USD. The data is always converted to a left handed ordering when importing it into SOPs. If you imported the polygons back into USD without this option, they would be left-handed, unlike the original.

Set Missing Widths

USD has a fallback value of 1.0 for the width of Curves and Points, which is often far wider/thicker than desired. If the SOP geometry does not explicitly author width/pscale data, this control can be used instead to explicitly author a USD value.

Import Data

These parameters affect the conversion of SOP geometry attributes into USD attributes and primvars, and the choice between default and time sampled value authoring.

Author Time Samples

Whether values imported from SOPs should be authored as default values for the corresponding USD attributes, or as a time sample (at the time in the timeline).

(When the USD system is asked for an attribute value, it returns the default if no time samples exist on the attribute. Otherwise it returns a value interpolated from the time sample data.)

If SOP is Time Dependent

If the SOP node the geometry comes from is time-dependent (is animated or contains animated values), write time samples. Otherwise, write defaults.

If Not Specifically Excluded

Author all values as time samples except for attributes listed in the Single Value Attributes parameter.

Never

Author all values as defaults.

(This is the only parameter on this node you can’t pre-configure on the geometry with the USD Configure SOP. This is because it requires a “live” SOP, not just attribute values embedded in the geometry.)

Topology Attributes

Controls whether USD topology attributes should be authored as time sampled or default values.

The following attributes are treated as topology attributes:

Primitive Type

Attributes

PointBased

orientation

Mesh

faceVertexCounts, faceVertexIndices, and subdivision-related attributes

TetMesh

tetVertexIndices, surfaceFaceVertexIndices

NurbsPatch

uKnots, vKnots, and trimCurve attributes

Curves

curveVertexCounts

BasisCurves

type, basis, wrap

NurbsCurves

orders, ranges, knots

PointInstancer

protoIndices

GeomSubset

indices

Animated

If you know that topology is changing in the source geometry over time, choose this option to record topology attributes as time samples in the USD scene graph. Having animated topology can be very expensive during playback, so only use this option when necessary.

Static

Write topology attributes as default values. This can make playback much faster, but limits how the topology can change over time.

None

Do not author topology attributes.

This is useful when USD data is sent to SOPs for processing, then brought back into LOPs. Using this option tells the importer that the geometry topology has not changed in this process, so only the changing point positions or other primvars will be imported.

Attributes

A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars.

In addition to matching attribute names directly, there are some values with special meanings:

bounds

Authors the USD extent attribute using the calculated bounding box of the associated SOP geometry.

visibility

Authors the USD visibility attribute based on the value of the usdvisibility geometry attribute.

See importing attributes for information on how the importer converts certain well-known Houdini attributes to their USD equivalents.

Indexed Attributes

A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as indexed primvars.

If a SOP attribute matches this pattern, the importer authors the primvar as an indexed array of values (that is, an array of values called primvars:‹name, and an array of indices into those values called primvars:‹name›:indices).

Preparing an indexed primvar can be expensive for attributes that are not integers or strings. You should only use indexed primvars where it is likely to result in significant savings in storage size due to a small number of unique values being used across a large number of components.

Import as Single Element Array

A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant interpolation (an array with a single value for the whole primitive), regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters. Importing as a single element array (versus Import as Single Value) can be useful since it allows the primvar’s interpolation to be overridden without changing the primvar’s type.

Import as Single Value

A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant interpolation and a single value for the whole primitive, regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters. This is the default behavior for how detail attributes are imported. This is similar to Import as Single Element Array, but the primvar’s type is a scalar value instead of an array with a single element (for example, vector3f instead of vector3f[]).

Boolean Attributes

A space-separated list of attribute names/patterns specifying which integer SOP attributes should be converted to primvars of type bool.

Set Default Values

A space-separated list of attribute names/patterns specifying the SOP attributes to always author as default values for USD primvars (never time samples). This is the list of exclusions when Author Time Samples is set to If Not Specifically Excluded.

Partition Attributes

A space-separated list of attribute names/patterns specifying which SOP primitive string attributes represent subsets of the geometry. For mesh and curve primitives, the importer puts elements with the same value for this attribute into their own geometry subsets.

The importer will try to set the subset name to the attribute value, but may need to change the name to make it a legal USD primitive name. The importer stores the raw attribute value on the geometry subset prim as Custom Data with the key partitionValue.

Prefix Subsets with Attribute Name

When creating subsets from Partition Attributes, the subsets are named by combining the attribute name with the partition attribute’s value (a string or integer). This avoids name collisions when multiple partition attributes contain the same values, but can be undesirable if precise control of the subset names is required. For string attributes, if this option is turned off, the attribute values are directly used as the subset names.

Subset Groups

A space-separated list of group names/patterns specifying SOP primitive groups. SOP polygon and curve primitives in each group are imported as a geometry subset, named for the group.

USD Custom Attributes

A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as attributes (rather than primvars).

Translate UV Attribute to ST

When turned on, converts the SOP vertex attribute uv into a USD primvar called primvars:st. Whether you need to turn this on depends on the renderer you are using and how your shaders are authored. If you are rendering with Karma, leave this off.

(As of this writing there is no strict standard for texture coordinate naming in USD, but the use of st is a common convention, whereas in SOP geometry, using uv is the common convention.)

Materials

Parameters to define and assign materials to geometry , designed to mimic SOP level material assignments.

Auto-fill materials

Automatically populates the materials defined through the imported geometry’s shop_materialpath attribute and assigns them to the imported geometry subsets accordingly.

Number of Materials

This node can import VOP materials as USD materials. Set the number of materials to import, or use the plus and minus buttons to add or remove imports.

Material VOP

For each import, the Houdini node path to the material VOP to import as a USD material.

Material Path

For each import, the USD prim path for the imported USD material prim.

Geometry Path

For each import, a list of patterns matching USD scene graph paths of geometry that should be assigned this imported material.

See also

LOP nodes

  • Add Variant

    Adds one or more variants to a variant set on a primitive. This node creates the primitive if it doesn’t exist.

  • Additional Render Vars

    Create multiple render vars.

  • Asset Reference

    Reference, Transform, and select variants of a USD Asset.

  • Assign Material

    Assigns a material to one or more USD primitives. You can use also programmatically assign materials using VEX, programmatically override material settings for each assignment, and programmatically assign materials to geometry subsets.

  • Assign Prototypes

    Switch point instances or USD instanceable prims to instance a different prototype.

  • Attribute VOP

    Create/edit USD attribute values using a VOP network.

  • Attribute Wrangle

    Create/edit USD primitive attributes using a VEX snippet.

  • Auto Select LOD

    Automatically selects a level-of-detail variant based on the primitive’s distance from the camera.

  • Background Plate

    Sets up hold-out or matte objects that leave holes in the scene through which the background is visible. These prims still take shadows and contribute to reflections as if they were the background.

  • Bake Skinning

    Bakes animation driven by a UsdSkel into transforms and point positions.

  • Basis Curves

    Creates or edits a basis curves shape primitive.

  • Begin Context Options Block

    This node begins a block of LOP nodes, within which certain context options have certain values.

  • Blend

    Partially applies edits to a layer’s attributes based on a fractional weight.

  • Blend Constraint

    Blends transforms according to a list of weights specified as parameters.

  • Cache

    Caches the results of cooking the network at different times, increasing playback speed.

  • Camera

    Adds a USD camera to the scene.

  • Capsule

    Creates or edits a capsule (tube with hemispherical ends) shape primitive.

  • Collection

    Creates/edits collections using primitive patterns.

  • Component Geometry

    Geometry container or import source, in a network created by the Component Builder tool.

  • Component Geometry Variants

    Sets up geometry variants, in a network created by the Component Builder tool.

  • Component Material

    Assigns materials to geometry in a network created by the Component Builder tool.

  • Component Output

    Assembles the final Component prim, in a network created by the Component Builder tool.

  • Cone

    Creates or edits a cone shape primitive.

  • Configure Layer

    Edits metadata on a layer.

  • Configure Primitives

    Edits various metadata on one or more primitives.

  • Configure Properties

    Configures metadata on properties (relationships and attributes).

  • Configure Stage

    Configures metadata for how to load layers into the stage and asset resolution.

  • Coordinate System

    Define named coordinate systems used in shaders.

  • Copy Property

    Copy properties from one primitive to another, or renames properties on a primitive.

  • Create LOD

    Uses the PolyReduce SOP to automatically generate multiple levels of detail from a high-res model, and stores them as USD variants.

  • Cube

    Creates or edits a cube shape primitive.

  • Cylinder

    Creates or edits a cylinder shape primitive.

  • Distant Light

    Creates or edits a USD Distant Light, representing a far-off light source such as the sun. Adds some useful Karma-specific attributes.

  • Dome Light

    Creates or edits a USD Dome Light prim. A dome light emits light inward, simulating light coming from the sky/environment surrounding the scene.

  • Draw Mode

    Sets draw mode properties on USD model assets.

  • Drop

    Runs a simulation to drop primitives under gravity.

  • Duplicate

    Creates copies of a prim (and its descendants).

  • Edit

    Interactively transforms prims in the viewer. Can use physics collisions to position props realistically.

  • Edit Context Options

  • Edit Material

    Allows you to edit an existing USD material by modifying parameters and shader connections. This can be useful if the existing material is on a non-editable layer.

  • Edit Material Properties

    Lets you build a spare parameter interface that reflects material or shader input attributes to directly edit their values.

  • Edit Properties

    Lets you build a spare parameter interface to directly edit attribute and relationship values.

  • Edit Properties From Node

    Lets you refer to the parameter on another node to directly edit attribute and relationship values.

  • Edit Prototypes

    Modify the prototypes of native or point instances in-place, without disturbing the instancing setup.

  • Edit Target Layer

    Allows you to apply edits directly in a lower layer, instead of overriding prims and attributes in the active layer.

  • Error

    Generates a message, warning, or error, which can show up on a parent asset.

  • Explore Variants

    Visualize, set, or extract variants on primitives.

  • Extract Instances

    Converts (heroes) an instance into a real editable prim.

  • Fetch

    Grabs the output of another LOP, potentially in another LOP network.

  • File Cache

    Caches (writes out once and then reads from) USD layers (possibly animated) to disk.

  • Follow Path Constraint

    Constrains a prim to follow a path curve.

  • For Each

    The end node of a For-Each loop block.

  • Geometry Clip Sequence

  • Geometry Color

    Adds display color and display opacity primvars to geometry.

  • Geometry Sequence

    Imports a sequence of geometry files into LOPs as animated geometry.

  • Geometry Subset VOP

    Creates USD geometry subsets within geometry prims (similar to groups in SOPs) based on evaluating a VEXpression or VOP network.

  • Graft Branches

    Takes prims/branches from the second input and attaches them onto branches of the scene graph tree in the first input.

  • Graft Stages

    Takes scene graph trees from other inputs and attaches them onto branches of the scene graph tree in the first input.

  • HDA Dynamic Payload

    Cooks a OBJ or SOP asset on disk and imports the animated geometry output as a USD payload.

  • Hermite Curves

    Creates or edits a hermite curves shape primitive.

  • Houdini Feather Procedural

    Generates feathers for rendering.

  • Houdini Preview Procedurals

    Invokes Houdini Procedurals while working interactively.

  • Houdini Procedural: Crowd

    Houdini Crowd Procedural for Solaris.

  • Houdini Procedural: Hair

    Houdini Hair Procedural for Solaris.

  • Houdini Procedural: Ocean

    Houdini Ocean Procedural for Solaris.

  • Houdini Procedural: RBD

    Houdini RBD Procedural for Solaris.

  • Inline USD

    Parses usda code representing a layer and adds it to the layer stack.

  • Insertion Point

    Represents a point in the node graph where nodes can be inserted.

  • Instancer

    Instances or copies primitives onto points.

  • Isolate Scene

    Work in masked areas of the stage.

  • Karma

    Renders the USD scene using Houdini’s Karma renderer.

  • Karma Cryptomatte

    Setup Cryptomatte AOVs for Karma.

  • Karma Fog Box

    Creates a constant volume within a box.

  • Karma Physical Sky

    Creates a Karma Sky Dome and Sun Light rig.

  • Karma Render Products

    Create multiple render products sharing common settings.

  • Karma Render Properties

    Configure Render Properties for Karma.

  • Karma Sky Atmosphere

    Creates or edits a Karma Sky Atmosphere.

  • Karma Sky Dome Light

    Creates or edits a Karma Sky Dome Light.

  • Karma Standard Render Vars

    Create standard karma render vars (AOVs/Image Planes).

  • LPE Tag

    Manage Lights' LPE Tags.

  • Labs Karma AOVs for RenderMan Denoiser

    Generates AOVs for the Pixar RenderMan denoiser.

  • Layer Break

    Starts a new active sublayer that subsequent nodes will edit, and indicates all previous layers will be discarded when saving to disk.

  • Layer Replace

    Replaces all uses of a certain layer with a substitute layer from its second input.

  • Layout

    Provides tools for populating a scene with instanced USD assets. You can place individual components, paint/scatter components in different ways using customizable brushes, and edit existing instances.

  • Light

    Creates or edits a USD Light prim. This node also adds some useful Karma-specific attributes.

  • Light Filter Library

    Authors USD light filter primitives from VOP nodes.

  • Light Linker

    Creates USD light link properties based on rules.

  • Light Mixer

    Lets you interactively edit USD properties for multiple lights.

  • Load Layer for Editing

  • Loft Payload Info

    Adds basic information from inside a payload to the primitive that loads the payload.

  • Look At Constraint

    Constrains a prim to always point toward a target.

  • Mask from Bounds

    Sets a primvar based on whether/by how much selected prims are inside a bounding shape.

  • Match Size

    Resizes and recenters the input geometry to match a reference bounding box.

  • Material Library

    Authors USD material primitives from shader VOP nodes.

  • Material Linker

    Creates material assignments based on rules.

  • Material Variation

    Creates attributes/primvars to override material parameters per-prim/instance.

  • Merge LOP

    Merges the layers from incoming stages into a unified layer stack.

  • Merge Point Instancers

    Merges point instancers into a single consolidated point instancer.

  • Mesh

    Creates or edits a mesh shape primitive.

  • Modify Paths

    Modify asset path attribute values.

  • Modify Point Instances

    Modifies point transforms and property values for individual point instances.

  • Motion Blur

    Adds time samples to allow motion blur when rendering.

  • Null

    This node does nothing. It can be useful to insert a Null into a network as a fixed point in the network that you can refer to by name in expressions/scripts.

  • Output

    Represents the output of a subnetwork. Allows you to design a node asset with multiple outputs.

  • Parent Constraint

    Makes a primitive appear to inherit the transform hierarchy of another prim somewhere else in the tree.

  • Points

    Creates or edits a Points shape primitive.

  • Points Constraint

    Position and Orient primitives using point positions from a geometry.

  • Primitive

    Bulk-creates one or more attributes of a certain type.

  • Prune

    Hides or deactivates primitives and point instances.

  • Python Script

    Lets you write Python code in the node to use the USD API to directly manipulate the stage.

  • RBD Destruction

    An example for a fracturing simulation in USD, also useful as a canned effect.

  • Reference

    References the contents of a external USD files and/or layers created by other LOP nodes into a branch of the existing scene graph tree. Can also remove or replace existing references.

  • Render Geometry Settings

    Applies renderer-specific geometry settings to geometry in the scene graph.

  • Render Product

    Creates or edits a UsdRenderProduct prim, which represents an output of a renderer (such as a rendered image file or other file-like artifact produced by a renderer), with attributes configuring how to generate the product.

  • Render Settings

    Creates or edits a UsdRenderSettings prim, which holds the general settings for rendering the scene.

  • Render Var

    Specifies a custom variable computed by the renderer and/or shaders, either a shader output or a light path expression (LPE).

  • Resample Transforms

    Generates interpolated transform time samples from existing time samples on USD prims.

  • Restructure Scene Graph

    This node has various operations for editing prim paths, variant sets, and composition arcs.

  • Retime Instances

    Offsets and/or scales the timing of animation on selected instances.

  • SOP Character Import

    Imports a character or animation from a SOP network into the USD scene graph.

  • SOP Create

    Lets you create geometry in a SOP subnetwork inside this node, so you can create geometry in-place in the LOP network instead of needing a separate SOP network.

  • SOP Crowd Import

    Imports a crowd from a SOP network into the USD scene graph.

  • SOP Import

    Imports geometry from a SOP network into the USD scene graph.

  • SOP Modify

    Converts USD geometry into SOP geometry, runs the SOP subnet inside this node on the geometry, and converts the changes back to USD overrides.

  • Scene Doctor

    Validates primitives on a USD stage.

  • Scene Import

    Imports models, materials, and lights from the Object level into the LOP network.

  • Scope

    Creates a scope primitive. Scope is the simplest form of grouping, and does not have a transform. Scopes can be useful for organizing the scene tree.

  • Set Extents

    Sets the bounding box metadata of selected primitives.

  • Set Variant

    Selects (switches to) one of the variants stored in a variant set on a primitive.

  • Simulation Proxy

    Generates low-poly collison geometry suitable for physical simulation and creates a proxy relationship to the original model.

  • Sphere

    Creates or edits a sphere shape primitive.

  • Split Point Instancers

    Splits a point instancer into two or more instances, which divide up the original instances.

  • Split Primitive

    Splits USD geometry prims into child primitives based on geometry subsets or primvar values.

  • Split Scene

    This node splits a scene graph into two disjoint sets of primitives.

  • Stage Manager

    Provides a convenient interface to reference in many files at once and place them in the scene graph tree.

  • Store Parameter Values

    Lets you store temporary (unsaved) data in the stage.

  • Sublayer

    Imports from USD files or other LOP node chains into as sublayers, or removes/replaces/reorders existing sublayers.

  • Subnet

    Encapsulates a LOP subnetwork, allowing you to organize and hide parts of the network.

  • Surface Constraint

    Constrain a prim to stick to a surface.

  • Switch

    Passes through one of several inputs, based on a parameter choice or expression.

  • TimeShift

    Outputs the stage as it is at a different point in the timeline.

  • Transform

    Edits the transforms of selected USD primitives.

  • Transform UV

    Moves, rotates, and scales texture coordinates on USD primitives.

  • USD ROP

  • USD Render ROP

  • Unassign Material

    Unbinds a material from one or more USD primitives.

  • Value Clip

  • Vary Material Assignment

    Assign different materials across a number of prims to create variation.

  • Volume

    References volume data on disk into a volume prim containing field prims.

  • Xform

    Creates or edits an Xform prim. Xform (and its sub-classes) represents a transform in the scene tree.