On this page 
Note
In modern raytracing/PBR rendering, shadows are computed as part of the normal rendering process, and do not require separate shaders.
In micropolygon rendering, shadow shaders are called from surface or fog shaders to occlude the illumination from a given light source. The light would have already been computed by the light shader. The purpose of a shadow shader was to modify the Cl variable. Typically, the light would be occluded, causing the Cl variable to decrease in intensity.
You would typically use the shadow context to separate illumination from expensive raytracing calls (like fastshadow or filtershadow). This allowed fog shaders (or surface shaders) to easily bypass shadow testing.
Globals ¶
vector 
P

Read only 
Position of the point on the surface being shaded. In light or shadow shaders, the P variable contains the point on the light source. 
vector 
I

Read only 
Direction from the eye to the point being shaded. This may or may not be a normalized vector. 
vector 
dPds

Read only 
Change in position with respect to the parametric s. 
vector 
dPdt

Read only 
Change in position with respect to the parametric t. 
vector 
N

Read only 
Shading normal for the surface. 
vector 
Ng

Read only 
Geometric normal for the surface. This normal represents the “true” normal of the surface being shaded. For example, with Phong shading, the N variable represents the interpolated normal, while the Ng variable represents the true polygon normal. 
vector 
Cl

Geometric normal for the surface. This normal represents the “true” normal of the surface being shaded. For example, with Phong shading, the N variable represents the interpolated normal, while the Ng variable represents the true polygon normal. 

vector 
L

Read only 
Vector from the point on the surface to the light source. The length of this vector represents the distance to the light source. 
vector 
Ps

Read only 
Position of the point on the surface being illuminated. 
vector 
Eye

Read only 
Position of the eye. 
float 
s

Read only 
Parametric s (sometimes called u) coordinate of the surface being shaded. 
float 
t

Read only 
Parametric t (sometimes called v) coordinate of the surface being shaded. 
float 
Time

Read only 
The time at which the shading occurs, as a number from 0 (shutter open) to 1 (shutter close). 
float 
dPdz

Read only 
Floating point step size for volume rendering. 
vector 
Lz

Read only 
Zaxis in the space of the light. This is a unit vector. 
int 
SID

Read only 
Sample identifier for the current shading sample. 
Functions ¶

Returns the derivative of the given value with respect to U.

Returns the derivative of the given value with respect to V.

Returns the derivative of the given value with respect to the 3rd axis (for volume rendering).

Multiply matrices.

Pre multiply matrices.

Returns the absolute value of the argument.

Returns the full path of a file.

Returns the inverse cosine of the argument.

Adds an attribute to a geometry.

Adds a detail attribute to a geometry.

Adds a point to the geometry.

Adds a point attribute to a geometry.

Adds a primitive to the geometry.

Adds a primitive attribute to a geometry.

Adds a mapping for an attribute to a local variable.

Adds a vertex to a primitive in a geometry.

Adds a vertex attribute to a geometry.

Appends to a geometry’s visualizer detail attribute.

Add a clip into an agent’s definition.

Returns the number of channels in an agent primitive’s rig.

Returns the names of the channels in an agent primitive’s rig.

Returns the current value of an agent primitive’s channel.

Returns the current values of an agent primitive’s channels.

Returns all of the animation clips that have been loaded for an agent primitive.

Finds the index of a channel in an agent’s animation clip.

Returns the names of the channels in an agent’s animation clip.

Blends values according to an agent’s animation layers.

Returns the length (in seconds) of an agent’s animation clip.

Returns an agent primitive’s current animation clips.

Samples a channel of an agent’s clip at a specific time.

Samples an agent’s animation clip at a specific time.

Returns the sample rate of an agent’s animation clip.

Samples an agent’s animation clip at a specific time.

Returns the start time (in seconds) of an agent’s animation clip.

Returns the current times for an agent primitive’s animation clips.

Returns the transform groups for an agent primitive’s current animation clips.

Returns the blend weights for an agent primitive’s animation clips.

Returns the name of the collision layer of an agent primitive.

Returns the names of an agent primitive’s collision layers.

Returns the name of the current layer of an agent primitive.

Returns the names of an agent primitive’s current layers.

Finds the index of a clip in an agent’s definition.

Finds the index of a layer in an agent’s definition.

Finds the index of a transform group in an agent’s definition.

Returns the transform that each shape in an agent’s layer is bound to.

Returns all of the layers that have been loaded for an agent primitive.

Returns the names of the shapes referenced by an agent primitive’s layer.

Returns the current local space transform of an agent primitive’s bone.

Returns the current local space transforms of an agent primitive.

Returns the agent definition’s metadata dictionary.

Returns the local space rest transform for an agent primitive’s joint.

Returns the world space rest transform for an agent primitive’s joint.

Returns the child transforms of a transform in an agent primitive’s rig.

Finds the index of a transform in an agent primitive’s rig.

Finds the index of a channel in an agent primitive’s rig.

Returns the parent transform of a transform in an agent primitive’s rig.

Applies a fullbody inverse kinematics algorithm to an agent’s skeleton.

Returns the number of transforms in an agent primitive’s rig.

Returns whether a transform is a member of the specified transform group.

agenttransformgroupmemberchannel
Returns whether a channel is a member of the specified transform group.

Returns the names of the transform groups in an agent’s definition.

Returns the weight of a member of the specified transform group.

Returns the name of each transform in an agent primitive’s rig.

Converts transforms from world space to local space for an agent primitive.

Converts transforms from local space to world space for an agent primitive.

Returns the current world space transform of an agent primitive’s bone.

Returns the current world space transforms of an agent primitive.

Returns the albedo (percentage of reflected light) for a bsdf given the outgoing light direction.

Generates alligator noise.

Adds an item to an array or string.

Returns the area of the micropolygon containing a variable such as P.

Returns the indices of a sorted version of an array.

Efficiently creates an array from its arguments.

Returns a specular BSDF using the Ashikhmin shading model.

Returns the inverse sine of the argument.

Returns 1 if the VEX assertions are enabled (see HOUDINI_VEX_ASSERT) or 0 if assertions are disabled. Used the implement the assert macro.

An efficient way of extracting the components of a vector or matrix into float variables.

Returns the inverse tangent of the argument.

Returns the inverse tangent of y/x.

Converts a string to a float.

Converts a string to an integer.

Computes attenuated falloff.

Reads the value of an attribute from geometry.

Returns the class of a geometry attribute.

Returns the data id of a geometry attribute.

Returns the size of a geometry attribute.

Returns the type of a geometry attribute.

Returns the transformation metadata of a geometry attribute.

Returns the average value of the input(s)

Compute the color value of an incandescent black body.

Returns a Blinn BSDF or computes Blinn shading.

Returns the cube root of the argument.

Returns the smallest integer greater than or equal to the argument.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Evaluates a keyvalue dictionary parameter and return its value.

Evaluates a channel with a new segment expression.

Evaluates a channel with a new segment expression at a given frame.

Evaluates a channel with a new segment expression at a given time.

Evaluates a channel (or parameter) and return its value.

Evaluates a channel (or parameter) and return its value.

Returns a chiang BSDF.

Returns a chiang_fur BSDF.

Resolves a channel string (or parameter) and return op_id, parm_index and vector_index.

Returns the value of a CHOP channel at the specified sample.

Returns the value of a CHOP local transform channel at the specified sample.

Returns the value of a CHOP local transform channel at the specified sample and evaluation time.

Returns the value of a CHOP channel at the specified sample and evaluation time.

Evaluates a channel (or parameter) and return its value.

Clears a channel primitive, removing all keys.

Destroy an existing key from a channel primitive.

Get the end time of a channel primitive.

Evaluate a channel primitive at the given time.

Insert a key into a channel primitive.

Get the number of keys in a channel primitive.

Get the key times of a channel primitive.

Get the key values of a channel primitive.

Get the length of a channel primitive.

Set the acceleration of a channel primitive key.

Set the slope of a channel primitive key.

Set the value of a channel primitive key.

Get the start time of a channel primitive.

Converts an unicode codepoint to a UTF8 string.

Evaluates a ramp parameter and return its value.

Evaluates the derivative of a parm parameter with respect to position.

Evaluates a channel (or parameter) and return its value.

Evaluates an operator path parameter and return the path to the operator.

Returns the raw string channel (or parameter).

Evaluates a channel or parameter, and return its value.

Evaluates a channel or parameter, and return its value.

Samples a CatmullRom (Cardinal) spline defined by position/value keys.

Returns value clamped between min and max.

Clip the line segment between p0 and p1.

Looks up a (filtered) color from a texture file.

Combines Local and Parent Transforms with Scale Inheritance.

In shading contexts, computes a normal. In the SOP contexts, sets how/whether to recompute normals.

Concatenate all the strings specified to form a single string.

Returns a cone reflection BSDF.

Returns the cosine of the argument.

Returns the hyperbolic cosine of the argument.

Returns the cosine of the argument scaled by Pi.

Depending on the value of c, returns the translate (c=0), rotate (c=1), scale (c=2), or shears (c=3) component of the transform (xform).

Creates a cumulative distribution function (CDF) from an array of probability density function (PDF) values.

Creates a probability density function from an array of input values.

Returns the capture transform associated with a Capture Region SOP.

Returns the deform transform associated with a Capture Region SOP.

Returns the capture or deform transform associated with a Capture Region SOP based on the global capture override flag.

Returns the cross product between the two vectors.

Samples a CatmullRom (Cardinal) spline defined by uniformly spaced keys.

Transforms between color spaces.

Computes divergence free noise based on simplex noise.

Computes divergence free noise in the plane based on simplex noise.

Computes divergence free noise based on Perlin noise.

Computes 2d divergence free noise based on Perlin noise.

Computes divergence free noise based on Simplex noise.

Computes 2d divergence free noise based on simplex noise.

Evaluates the length of an arc on a primitive defined by an array of points using parametric uv coordinates.

Creates a bsdf object from two CVEX shader strings.

Generates Worley (cellular) noise using a Chebyshev distance metric.

Decodes a variable name that was previously encoded.

Decodes a geometry attribute name that was previously encoded.

Decodes a node parameter name that was previously encoded.

Decodes a UTF8 string into a series of codepoints.

Converts the argument from radians into degrees.

The depthmap functions work on an image which was rendered as a zdepth image from mantra.

Reads the value of a detail attribute value from a geometry.

Reads a detail attribute value from a geometry.

Returns the size of a geometry detail attribute.

Returns the type of a geometry detail attribute.

Returns the type info of a geometry attribute.

Reads the value of a detail intrinsic from a geometry.

Computes the determinant of the matrix.

Extracts diagonal entries or constructs a diagonal matrix.

Diagonalizes Symmetric Matrices.

Returns a diffuse BSDF or computes diffuse shading.

Computes the rotation matrix or quaternion which rotates the vector a onto the vector b.

Reads a variable from the displacement shader for the surface.

Returns the distance between two points.

Returns the squared distance between the two points.

This function returns the closest distance between the point Q and the infinite line going through O parallel to vector D.

This function returns the closest distance between the point Q and the semifinite ray starting at O and extending in the direction D.

This function returns the closest distance between the point Q and a finite line segment between points P0 and P1.

Returns the dot product between the arguments.

Reads the zrecords stored in a pixel of a deep shadow map or deep camera map.

Takes the value in one range and shifts it to the corresponding value in a new range.

Computes the eigenvalues of a 3×3 matrix.

Encodes any string into a valid variable name.

Encodes any string into a valid geometry attribute name.

Encodes any string into a valid node parameter name.

Encodes a UTF8 string from a series of codepoints.

Indicates the string ends with the specified string.

Returns the color of the environment texture.

Gauss error function.

Inverse Gauss error function.

Gauss error function’s complement.

Reports a custom runtime VEX error.

Creates a vector4 representing a quaternion from euler angles.

Evaluates a bsdf given two vectors.

Returns the exponential function of the argument.

Perform UDIM or UVTILE texture filename expansion.

Returns an array of point numbers corresponding to a group string.

Returns an array of prim numbers corresponding to a group string.

Returns an array of linear vertex numbers corresponding to a group string.

Extracts Local Transform from a World Transform with Scale Inheritance.

Sends a ray from the position P along the direction specified by the direction D.

Samples the velocity field defined by a set of vortex filaments.

Returns file system status for a given file.

Computes an importance sample based on the given filter type and input uv.

Sends a ray from the position P along direction D.

Returns the antialiased weight of the step function.

Finds an item in an array or string.

Finds a primitive/point/vertex that has a certain attribute value.

Returns number of elements where an integer or string attribute has a certain value.

Finds the largest item smaller than a target value in an array.

Finds the largest item smaller than a target value in a sorted array.

Finds an item in a sorted array.

Takes the value in one range and shifts it to the corresponding value in a new range.

Takes the value in the range (0, 1) and shifts it to the corresponding value in a new range.

Takes the value in the range (1, 0) and shifts it to the corresponding value in a new range.

Takes the value in the range (1, 1) and shifts it to the corresponding value in a new range.

Returns the largest integer less than or equal to the argument.

Generates 1D and 3D Perlin Flow Noise from 3D and 4D data.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Returns the fractional component of the floating point number.

Computes the fresnel reflection/refraction contributions given an incoming vector, surface normal (both normalized), and an index of refraction (eta).

Transforms a position from normal device coordinates to the coordinates in the appropriate space.

If dot(I, Nref) is less than zero, N will be negated.

Returns a handle to the current geometry.

Returns an oppath: string to unwrap the geometry inplace.

Reads an attribute value from geometry, with validity check.

Copies the value of a geometry attribute into a variable and returns a success flag.

Sets two vectors to the minimum and maximum corners of the bounding box for the geometry.

Returns the center of the bounding box for the geometry.

Returns the maximum of the bounding box for the geometry.

Returns the minimum of the bounding box for the geometry.

Returns the size of the bounding box for the geometry.

Returns the blurred point position (P) vector at a fractional time within the motion blur exposure.

Returns the bounding box of the geometry specified by the filename.

Extracts a single component of a vector type, matrix type, or array.

Evaluates surface derivatives of an attribute.

Returns the depth of the ray tree for computing global illumination.

Returns a light struct for the specified light identifier.

Returns an array of light identifiers for the currently shaded surface.

Returns a selection of lights that illuminate a given material.

Returns a material struct for the current surface.

Returns the object id for the current shading context.

Gets the transform of a packed primitive.

Returns the integer ID of the light being used for photon shading.

Sets two vectors to the minimum and maximum corners of the bounding box for the geometry.

Returns the center of the bounding box for the geometry.

Returns the maximum of the bounding box for the geometry.

Returns the minimum of the bounding box for the geometry.

Returns the size of the bounding box for the geometry.

Returns a selection of objects visible to rays for a given material.

Returns a transform from one space to another.

Evaluates UV tangents at a point on an arbitrary object.

Returns a ggx BSDF.

Returns the gradient of a field.

Evaluates a simplex noise field.

Evaluates a simplex noise field and its derivatives.

Returns a BSDF for shading hair.

Test string for UDIM or UVTILE patterns.

Checks whether a geometry attribute exists.

Returns if a geometry detail attribute exists.

Returns whether a light illuminates the given material.

Returns if a geometry point attribute exists.

Returns if a geometry prim attribute exists.

Returns if a geometry vertex attribute exists.

Returns the destination point of a halfedge.

Returns the destination vertex of a halfedge.

Returns the number of halfedges equivalent to a given halfedge.

Determines whether a two halfedges are equivalent (represent the same edge).

Determines whether a halfedge number corresponds to a primary halfedge.

Determines whether a halfedge number corresponds to a valid halfedge.

Returns the halfedge that follows a given halfedge in its polygon.

Returns the next halfedges equivalent to a given halfedge.

Returns the point into which the vertex following the destination vertex of a halfedge in its primitive is wired.

Returns the vertex following the destination vertex of a halfedge in its primitive.

Returns the point into which the vertex that precedes the source vertex of a halfedge in its primitive is wired.

Returns the vertex that precedes the source vertex of a halfedge in its primitive.

Returns the halfedge that precedes a given halfedge in its polygon.

Returns the primitive that contains a halfedge.

Returns the primary halfedge equivalent to a given halfedge.

Returns the source point of a halfedge.

Returns the source vertex of a halfedge.

Returns an anisotropic volumetric BSDF, which can scatter light forward or backward.

Returns primitive number of an adjacent hexahedron.

Returns vertex indices of each face of a hexahedron.

Generates noise matching the output of the Hscript noise() expression function.

Produces the exact same results as the Houdini expression function of the same name.

Generates turbulence matching the output of the HScript turb() expression function.

Convert HSV color space into RGB color space.

Returns an identity matrix.

Finds a point by its id attribute.

Finds a primitive by its id attribute.

Remaps a texture coordinate to another coordinate in the map to optimize sampling of brighter areas.

Returns 1 if the edge specified by the point pair is in the group specified by the string.

Returns 1 if the point specified by the point number is in the group specified by the string.

Returns 1 if the primitive specified by the primitive number is in the group specified by the string.

Inserts an item, array, or string into an array or string.

Creates an instance transform matrix.

Computes irradiance from the given Hosek Sky on a horizontal surface

Interpolates a value across the currently shaded micropolygon.

This function computes the first intersection of a ray with geometry.

Computes all intersections of the specified ray with geometry.

Inverts a matrix.

Returns 1 if the vertex specified by the vertex number is in the group specified by the string.

Inverses a linear interpolation between the values.

Returns 1 if all the characters in the string are alphabetic

Parameters in VEX can be overridden by geometry attributes (if the attributes exist on the surface being rendered).

Returns 1 if all the characters in the string are numeric

Checks whether a value is a normal finite number.

Returns 1 if the shader is being called to evaluate illumination for fog objects, or 0 if the light or shadow shader is being called to evaluate surface illumination.

Checks whether a value is a positive or negative infinity.

Checks whether a value is not a number.

Returns an isotropic BSDF, which scatters light equally in all directions.

Detects the orientation of default shading space.

Indicates whether the shader is being evaluated while doing UV rendering (e.g. texture unwrapping)

Checks if the index given is valid for the array or string given.

Check whether a VEX variable is varying or uniform.

Converts an integer to a string.

Concatenate all the strings of an array inserting a common spacer.

Converts a VEX dictionary into a JSON string.

Converts a JSON string into a VEX dictionary.

Returns all the keys in a dictionary.

Returns an interpolated value along a curve defined by a basis and key/position pairs.

Returns the length of an array.

Returns the magnitude of a vector.

Returns the squared distance of the vector or vector4.

Performs linear interpolation between the values.

Limits a unit value in a way that maintains uniformity and inrange consistency.

Imports a variable from the light shader for the surface.

Samples a polyline between the key points.

Returns the natural logarithm of the argument.

Returns the logarithm (base 10) of the argument.

Computes a rotation matrix or angles to orient the negative zaxis along the vector (tofrom) under the transformation.

Samples a polyline defined by linearly spaced values.

Strips leading whitespace from a string.

Compute the luminance of the RGB color specified by the parameters.

Creates an orthonormal basis given a zaxis vector.

Builds a 3×3 or 4×4 transform matrix.

Forces a string to conform to the rules for variable names.

Returns new BSDF that only includes the components specified by the mask.

This function returns 1 if the subject matches the pattern specified, or 0 if the subject doesn’t match.

Returns a BSDF that matches the output of the traditional VEX blinn function.

Returns a BSDF that matches the output of the traditional VEX specular function.

Once you get a handle to a metaball using metastart and metanext, you can query attributes of the metaball with metaimport.

Takes the ray defined by p0 and p1 and partitions it into zero or more subintervals where each interval intersects a cluster of metaballs from filename.

Iterate to the next metaball in the list of metaballs returned by the metastart() function.

Open a geometry file and return a handle for the metaballs of interest, at the position p.

Returns the metaweight of the geometry at position p.

Given a position in world space, returns the position of the closest point on a given geometry.

Generates Worley (cellular) noise using a Manhattan distance metric.

MaterialX compatible cellnoise

MaterialX compatible Perlin noise

MaterialX compatible Voronoi noise

MaterialX compatible Worley noise

Finds a point by its name attribute.

Finds a primitive by its name attribute.

Returns the camera space zdepth of the NDC zdepth value.

Finds the closest point in a geometry.

Finds the all the closest point in a geometry.

Returns the number of edges in the group.

Returns the point number of the next point connected to a given point.

Returns the number of points that are connected to the specified point.

Returns an array of the point numbers of the neighbours of a point.

Initializes a sampling sequence for the nextsample function.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Derivatives of Perlin Noise.

Returns the induced matrix 1norm.

Returns the Frobenius norm of a matrix.

Returns the induced matrix infinitynorm.

Returns the matrix maxnorm.

Returns the matrix spectral norm.

Returns the normal for the diffuse component of a BSDF.

Returns a normalized vector.

Returns the number of points in the input or geometry file.

Returns the number of points in the group.

Returns the number of primitives in the input or geometry file.

Returns the number of primitives in the group.

Nondeterministic random number generation function.

Transforms a normal vector.

Returns the number of unique values from an integer or string attribute.

Returns the number of vertices in the input or geometry file.

Returns the number of vertices in the group.

Evaluates an ocean spectrum and samples the result at a given time and location.

Returns the names of active displays supported in Open Color IO

Returns the names of active views supported in Open Color IO

Imports attributes from OpenColorIO spaces.

Parse the color space from a string

Returns the names of roles supported in Open Color IO

Returns the names of color spaces supported in Open Color IO.

Transform colors using Open Color IO

Transform colors to a view using Open Color IO

These functions are similar to wnoise and vnoise.

Returns the integer value of the last sequence of digits of a string

Returns the full path for the given relative path

Resolves an operator path string and return its op_id.

Returns the parent bone transform associated with an OP.

Returns the parent transform associated with an OP.

Returns the parm transform associated with an OP.

Returns the preconstraint transform associated with an OP.

Returns the pre and parm transform associated with an OP.

Returns the pre and raw parm transform associated with an OP.

Returns the pretransform associated with an OP.

Returns the raw parm transform associated with an OP.

Returns the transform associated with an OP.

Converts an UTF8 string into a codepoint.

Create an orthographic projection matrix.

Evaluates a point attribute at the subdivision limit surface using Open Subdiv.

Evaluates a vertex attribute at the subdivision limit surface using Open Subdiv.

Outputs the Houdini face and UV coordinates corresponding to the given coordinates on an OSD patch.

Outputs the OSD patch and UV coordinates corresponding to the given coordinates on a Houdini polygon face.

Returns a list of patch IDs for the patches in a subdivision hull.

Returns the outer product between the arguments.

Transforms a normal vector from Object to World space.

Transforms a position value from Object to World space.

Transforms a direction vector from Object to World space.

Reversibly packs an integer into a finite, nondenormal float.

Transforms a packed primitive.

This function closes the handle associated with a pcopen function.

Returns a list of closest points from a file within a specified cone.

Returns a list of closest points from a file in a cone, taking into account their radii

Writes data to a point cloud inside a pciterate or a pcunshaded loop.

Returns the distance to the farthest point found in the search performed by pcopen.

Filters points found by pcopen using a simple reconstruction filter.

Returns a list of closest points from a file.

Returns a list of closest points from a file taking into account their radii.

Generates a point cloud.

Imports channel data from a point cloud inside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

Imports channel data from a point cloud outside a pciterate or a pcunshaded loop.

This function can be used to iterate over all the points which were found in the pcopen query.

Returns a list of closest points to an infinite line from a specified file

Returns a list of closest points to an infinite line from a specified file

This node returns the number of points found by pcopen.

Returns a handle to a point cloud file.

Returns a handle to a point cloud file.

Changes the current iteration point to a leaf descendant of the current aggregate point.

Returns a list of closest points to a line segment from a specified file

Returns a list of closest points to a line segment from a specified file

Iterate over all of the points of a readwrite channel which haven’t had any data written to the channel yet.

Writes data to a point cloud file.

Create a perspective projection matrix.

Returns a list of closest points from a file.

Samples a color from a photon map.

Computes the pseudoinverse of a matrix.

Computes the distance and closest point of a point to an infinite plane.

Computes the intersection of a 3D sphere and an infinite 3D plane.

Converts an English noun to its plural.

There are two forms of Perlinstyle noise: a nonperiodic noise which changes randomly throughout Ndimensional space, and a periodic form which repeats over a given range of space.

Reads a point attribute value from a geometry.

Reads a point attribute value from a geometry and outputs a success/fail flag.

Returns the size of a geometry point attribute.

Returns the type of a geometry point attribute.

Returns the type info of a geometry attribute.

Finds and returns a halfedge with the given endpoints.

Finds and returns a halfedge with a given source point or with given source and destination points.

Returns the next halfedge with the same source as a given halfedge.

Returns an array of point localtransforms from an array of point indices.

Returns the list of primitives containing a point.

Returns a point transform from a point index.

Returns a rigid point transform from a point index.

Returns an array of point transforms from an array of point indices.

Returns an array of rigid point transforms from an array of point indices.

Returns a linear vertex number of a point in a geometry.

Returns the list of vertices connected to a point.

Computes the polar decomposition of a matrix.

Returns an array of the primitive numbers of the edgeneighbours of a polygon.

Removes the last element of an array and returns it.

Raises the first argument to the power of the second argument.

Determines if a point is inside or outside a triangle circumcircle.

Determines if a point is inside or outside a tetrahedron circumsphere.

Determines the orientation of a point with respect to a line.

Determines the orientation of a point with respect to a plane.

Pre multiply matrices.

Applies a pre rotation to the given matrix.

Prescales the given matrix in three directions simultaneously (X, Y, Z  given by the components of the scale_vector).

Pretranslates a matrix by a vector.

Reads a primitive attribute value from a geometry.

Interpolates the value of an attribute at a certain parametric (u, v) position and copies it into a variable.

Returns the normal of the primitive (prim_number) at parametric location u, v.

Evaluates the length of an arc on a primitive using parametric uv coordinates.

Reads a primitive attribute value from a geometry, outputting a success flag.

Returns the size of a geometry prim attribute.

Returns the type of a geometry prim attribute.

Returns the type info of a geometry attribute.

Returns position derivative on a primitive at a certain parametric (u, v) position.

Returns a list of primitives potentially intersecting a given bounding box.

Returns one of the halfedges contained in a primitive.

Finds the indices and weightings of the vertices that will compute an interior point given the UVW coordinates.

Reads a primitive intrinsic from a geometry.

Converts a primitive/vertex pair into a point number.

Returns the list of points on a primitive.

Interpolates the value of an attribute at a certain parametric (uvw) position.

Convert parametric UV locations on curve primitives between different spaces.

Converts a primitive/vertex pair into a linear vertex.

Returns number of vertices in a primitive in a geometry.

Returns the list of vertices on a primitive.

Prints a message only once, even in a loop.

Prints values to the console which started the VEX program.

Returns the product of a list of numbers.

Computes a filtered sample from a ptex texture map. Use texture instead.

This function returns the closest distance between the point Q and a finite line segment between points P0 and P1.

Transforms a vector from one space to another.

Adds an item to an array.

Simplex noise is very close to Perlin noise, except with the samples on a simplex mesh rather than a grid. This results in less grid artifacts. It also uses a higher order bspline to provide better derivatives. This is the periodic simplex noise

Periodic derivatives of Simplex Noise.

Converts a quaternion represented by a vector4 to a matrix3 representation.

Finds distance between two quaternions.

Inverts a quaternion rotation.

Multiplies two quaternions and returns the result.

Rotates a vector by a quaternion.

Creates a vector4 representing a quaternion.

Creates a euler angle representing a quaternion.

Converts the argument from degrees into radians.

Evaluates a Houdinistyle ramp at a specific location.

Packs a set of arrays into a stringencoded ramp.

Unpacks a stringencoded ramp into a set of arrays.

Creates a random number between 0 and 1 from a seed.

Generate a random number based on the integer position in 14D space.

Generate a uniformly distributed random number.

Hashes floating point numbers to integers.

Hashes integer numbers to integers.

Generates a random Poisson variable given the mean to the distribution and a seed.

Hashes a string to an integer.

Generate a uniformly distributed random number.

Looks up an unfiltered color from a texture file.

Sends a ray from the position P along the direction D.

Imports a value sent by a shader in a gather loop.

Matches a regular expression in a string

Finds all instances of the given regular expression in the string

Returns 1 if the entire input string matches the expression

Replaces instances of regex_find with regex_replace

Splits the given string based on regex match.

Returns the vector representing the reflection of the direction against the normal.

Returns the refraction ray given an incoming direction, the normalized normal and an index of refraction.

Computes the relative path for two full paths.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Returns the relative path to a file.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Removes an attribute or group from the geometry.

Removes a detail attribute from a geometry.

Removes an item at the given index from an array.

Removes a point from the geometry.

Removes a point attribute from a geometry.

Removes a point group from a geometry.

Removes a primitive from the geometry.

Removes a primitive attribute from a geometry.

Removes a primitive group from a geometry.

Removes an item from an array.

Removes a vertex from the geometry.

Removes a vertex attribute from a geometry.

Removes a vertex group from a geometry.

Reorders items in an array or string.

Replaces occurrences of a substring.

Replaces the matched string pattern with another pattern.

Sets the length of an array.

Returns an array or string in reverse order.

Convert RGB color space to HSV color space.

Convert a linear sRGB triplet to CIE XYZ tristimulus values.

Rounds the number to the closest whole number.

Applies a rotation to the given matrix.

Rotates a vector by a rotation that would bring the xaxis to a given direction.

Strips trailing whitespace from a string.

Samples a BSDF.

Samples the Cauchy (Lorentz) distribution.

Samples a cumulative distribution function (CDF).

Generates a uniform unit vector2, within maxangle of center, given a uniform number between 0 and 1.

Generates a uniform unit vector2, given a uniform number between 0 and 1.

Generates a uniform vector2 with alpha < length < 1, where 0 < alpha < 1, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector2 with length < 1, within maxangle of center, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector2 with length < 1, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform unit vector, within maxangle of center, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform unit vector, given a vector2 of uniform numbers between 0 and 1.

Returns an integer, either uniform or weighted, given a uniform number between 0 and 1.

Samples the exponential distribution.

Samples geometry in the scene and returns information from the shaders of surfaces that were sampled.

Generates a unit vector, optionally biased, within a hemisphere, given a vector2 of uniform numbers between 0 and 1.

Generates a uniform vector4 with length < 1, within maxangle of center, given a vector4 of uniform numbers between 0 and 1.

Generates a uniform vector4 with length < 1, given a vector4 of uniform numbers between 0 and 1.

Samples the lognormal distribution based on parameters of the underlying normal distribution.

Samples the lognormal distribution based on median and standard deviation.

Samples the normal (Gaussian) distribution.

Generates a uniform unit vector4, within maxangle of center, given a vector of uniform numbers between 0 and 1.

Generates a uniform unit vector4, given a vector of uniform numbers between 0 and 1.

Samples a 3D position on a light source and runs the light shader at that point.

Generates a uniform vector with length < 1, within maxangle of center, given a vector of uniform numbers between 0 and 1.

Generates a uniform vector with alpha < length < 1, where 0 < alpha < 1, given a vector of uniform numbers between 0 and 1.

Generates a uniform vector with length < 1, given a vector of uniform numbers between 0 and 1.

Warps uniform random samples to a disk.

Scales the given matrix in three directions simultaneously (X, Y, Z  given by the components of the scale_vector).

Evaluates a scattering event through the domain of a geometric object.

Returns one of two parameters based on a conditional.

Sensor function to render GL scene and query the result.

Sensor function query a rendered GL scene.

Sensor function to query average values from rendered GL scene.

Sensor function query a rendered GL scene.

Sensor function to save a rendered GL scene.

Flattens an array of vector or matrix types into an array of floats.

Creates a new value based on its arguments, such as creating a vector from its components.

Overrides the value of an agent primitive’s channel.

Overrides the values of an agent primitive’s channels.

Sets the current animation clips for an agent primitive.

Sets the animation clips that an agent should use to compute its transforms.

Sets the current times for an agent primitive’s animation clips.

Sets the blend weights for an agent primitive’s animation clips.

Sets the collision layer of an agent primitive.

Sets the collision layers of an agent primitive.

Sets the current layer of an agent primitive.

Sets the current display layers of an agent primitive.

Overrides the local space transform of an agent primitive’s bone.

Overrides the local space transforms of an agent primitive.

Overrides the world space transform of an agent primitive’s bone.

Overrides the world space transforms of an agent primitive.

Writes an attribute value to geometry.

Sets the meaning of an attribute in geometry.

Sets a single component of a vector or matrix type, or an item in an array.

Sets a detail attribute in a geometry.

Sets the value of a writeable detail intrinsic attribute.

Sets edge group membership in a geometry.

Sets the transform of a packed primitive.

Sets a point attribute in a geometry.

Adds or removes a point to/from a group in a geometry.

Sets an array of point local transforms at the given point indices.

Sets the world space transform of a given point

Sets an array of point transforms at the given point indices.

Sets a primitive attribute in a geometry.

Adds or removes a primitive to/from a group in a geometry.

Sets the value of a writeable primitive intrinsic attribute.

Rewires a vertex in the geometry to a different point.

Sets a vertex attribute in a geometry.

Adds or removes a vertex to/from a group in a geometry.

Rewires a vertex in the geometry to a different point.

The shadowmap function will treat the shadow map as if the image were rendered from a light source.

Bitshifts an integer left.

Bitshifts an integer right.

Bitshifts an integer right.

Returns 1, 0, or 1 depending on the sign of the argument.

Imports a variable sent by a surface shader in an illuminance loop.

Returns the sine of the argument.

Returns the hyperbolic sine of the argument.

Returns the sine of the argument scaled by Pi.

Yields processing for a certain number of milliseconds.

Quaternion blend between q1 and q2 based on the bias.

Spherical blends between two vectors based on the bias.

Slices a substring or subarray of a string or array.

Finds the normal component of frame slid along a curve.

Computes ease in/out interpolation between values.

Returns the closest equivalent Euler rotations to a reference rotation.

These functions are similar to wnoise.

Computes the solid angle (in steradians) a BSDF function subtends.

Applies an inverse kinematics algorithm to a skeleton.

Solves a cubic function returning the number of real roots.

Applies a curve inverse kinematics algorithm to a skeleton.

Applies a fullbody inverse kinematics algorithm to a skeleton.

Applies an inverse kinematics algorithm to a skeleton.

Applies a fullbody inverse kinematics algorithm to a skeleton, with optional control over the center of mass.

Finds the real roots of a polynomial.

Solves a quadratic function returning the number of real roots.

Finds the angles of a triangle from its sides.

Returns the array sorted in increasing order.

Returns a specular BSDF or computes specular shading.

Returns the computed BRDFs for the different lighting models used in VEX shading.

Samples a value along a polyline or spline curve.

Generate a cumulative distribution function (CDF) by sampling a spline curve.

Splits a string into tokens.

Splits a bsdf into its component lobes.

Splits a file path into the directory and name parts.

Formats a string like printf but returns the result as a string instead of printing it.

Returns the square root of the argument.

Creates an approximate SSS BSDF.

Returns 1 if the string starts with the specified string.

Strips leading and trailing whitespace from a string.

Returns the length of the string.

Returns the sum of a list of numbers.

Finds the distance of a point to a group of points along the surface of a geometry.

Computes the singular value decomposition of a given matrix.

Use a different bsdf for direct or indirect lighting.

Rearranges the components of a vector.

Returns the trigonometric tangent of the argument

Returns the hyperbolic tangent of the argument

Returns the trigonometric tangent of the argument scaled by Pi

Returns primitive number of an adjacent tetrahedron.

Returns vertex indices of each face of a tetrahedron.

Imports attributes from texture files.

Similar to sprintf, but does expansion of UDIM or UVTILE texture filename expansion.

Computes a filtered sample of the texture map specified.

Returns the value of the 3d image at the position specified by P.

This function queries the 3D texture map specified and returns the bounding box information of the file.

Returns a string that is the titlecase version of the input string.

Transforms a position into normal device coordinates.

Converts all characters in string to lower case

Converts all characters in string to upper case

Returns the trace of the given matrix.

Translates a matrix by a vector.

Returns a Lambertian translucence BSDF.

Transposes the given matrix.

Removes the fractional part of a floating point number.

Transforms a normal vector from Texture to World space.

Transforms a position value from Texture to World space.

Transforms a direction vector from Texture to World space.

Returns a numeric code identifying a VEX data type.

Returns one of the set of unique values across all values for an int or string attribute.

Returns the set of unique values across all values for an int or string attribute.

Reverses the packing of pack_inttosafefloat to get back the original integer.

Turns a flat array of floats into an array of vectors or matrices.

Adds a uniform item to an array.

Creates an attribute of a given type on a primitive.

Excludes an object from the collection

Includes an object in the collection

usd_addinversetotransformorder
Appends an inversed transform operation to the primitive’s transform order

Applies a quaternion orientation to the primitive

Creates a primitive of a given type.

Creates a primvar of a given type on a primitive.

Adds a target to the primitive’s relationship

Applies a rotation to the primitive

Applies a scale to the primitive

Creates an attribute of a given type on a primitive, and sets the custom metadata flag to False.

Appends a transform operation to the primitive’s transform order

Applies a transformation to the primitive

Applies a translation to the primitive

Apply an API schema to a primitive.

Reads the value of an attribute from the USD primitive.

Reads the value of an element from an array attribute.

Returns the length of the array attribute.

Returns the names of the attributes available on the primitive.

Returns the tuple size of the attribute.

Returns the time codes at which the attribute values are authored.

Returns the name of the attribute type.

Blocks the attribute.

Blocks the primvar.

Blocks the primvar.

Blocks the primitive’s relationship

Returns the material path bound to a given primitive.

Returns the names of the primitive’s children.

Clears the value of the metadata.

Clears the primitive’s transform order

Obtains the list of all objects that belong to the collection

Checks if an object path belongs to the collection

Obtains the object paths that are in the collection’s exclude list

Obtains the collection’s expansion rule

Obtains the object paths that are in the collection’s include list

Returns the primitive’s draw mode.

Retrurns primitive’s transform operation full name for given the transform operation suffix

Reads the value of a flattened primvar directly from the USD primitive or from USD primitive’s ancestor.

Reads an element value of a flattened array primvar directly from the USD primitive or from its ancestor.

Reads the value of an flattened primvar directly from the USD primitive.

Reads an element value of a flattened array primvar directly from a USD primitive.

Sets two vectors to the minimum and maximum corners of the bounding box for the primitive.

Returns the center of the bounding box for the primitive.

Returns the maximum of the bounding box for the primitive.

Returns the minimum of the bounding box for the primitive.

Returns the size of the bounding box for the primitive.

Obtains the primitive’s bounds

Obtains the primitive’s bounds

Checks if the primitive adheres to the given API.

Checks if the primitive adheres to the given API.

Reads the value of a primvar directly from the USD primitive or from USD primitive’s ancestor.

Reads the value of an element from the array primvar directly from the USD primitive or from USD primitive’s ancestor.

Returns the element size of the primvar directly from the USD primitive or from USD primitive’s ancestor.

Returns the index array of an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.

Returns the element size of the primvar directly on the USD primitive or on USD primitive’s ancestor.

Returns the length of the array primvar directly on the USD primitive or on USD primitive’s ancestor.

Returns the names of the primvars available directly on the given USD primitive or on USD primitive’s ancestor.

Returns the tuple size of the primvar directly on the USD primitive or on USD primitive’s ancestor.

Returns the time codes at which the primvar values are authored directly on the given primitive or on its ancestor.

Returns the name of the primvar type found on the given primitive or its ancestor.

Checks if the primitive is abstract.

Checks if the primitive is active.

Checks if the attribute is an array.

Checks if there is an array primvar directly on the USD primitive or on USD primitive’s ancestor.

Checks if the given metadata is an array.

Checks if there is an array primvar directly on the USD primitive.

Checks if the primitive has an attribute by the given name.

Checks if the collection exists.

Checks if the path is a valid collection path.

Checks if there is an indexed primvar directly on the USD primitive or on USD primitive’s ancestor.

Checks if there is an indexed primvar directly on the USD primitive.

Checks if the primitive is an instance.

Checks if the primitive or its ancestor has a primvar of the given name.

Checks if the primitive is of a given kind.

Checks if the primitive has metadata by the given name.

Checks if the primitive is a model.

Checks if the path refers to a valid primitive.

Checks if the primitive has a primvar of the given name.

Checks if the primitive has a relationship by the given name.

Checks if the stage is valid.

Checks if the primitive transform is reset

Checks if the primitive is of a given type.

Checks if the primitive is visible.

Returns the primitive’s kind.

Obtains the primitive’s local transform

Constructs an attribute path from a primitive path and an attribute name.

Constructs a collection path from a primitive path and a collection name.

Constructs an property path from a primitive path and an property name.

Constructs an relationship path from a primitive path and a relationship name.

Forces a string to conform to the rules for naming USD primitives.

Forces a string to conform to the rules for paths to USD primitives.

Reads the value of metadata from the USD object.

Reads the value of an element from the array metadata.

Returns the length of the array metadata.

Returns the names of the metadata available on the object.

Returns the name of the primitive.

Returns the path of the primitive’s parent.

Sets two vectors to the minimum and maximum corners of the bounding box for the given instance inside point instancer.

usd_pointinstance_getbbox_center
Returns the center of the bounding box for the instance inside a point instancer primitive.

Returns the maximum position of the bounding box for the instance inside a point instancer primitive.

Returns the minimum position of the bounding box for the instance inside a point instancer primitive.

usd_pointinstance_getbbox_size
Returns the size of the bounding box for the instance inside a point instancer primitive.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Obtains the transform for the given point instance

Reads the value of a primvar directly from the USD primitive.

Returns the namespaced attribute name for the given primvar.

Reads the value of an element from the array primvar directly from the USD primitive.

Returns the element size of the primvar directly from the USD primitive.

Returns the index array of an indexed primvar directly on the USD primitive.

Returns the element size of the primvar directly on the USD primitive.

Returns the length of the array primvar directly on the USD primitive.

Returns the names of the primvars available on the given USD primitive.

Returns the tuple size of the primvar directly on the USD primitive.

Returns the time codes at which the primvar values are authored directly on the given primitive.

Returns the name of the primvar type found on the given primitive.

Returns the primitive’s purpose.

usd_relationshipforwardedtargets
Obtains the relationship forwarded targets.

Returns the names of the relationships available on the primitive.

Obtains the relationship targets.

Returns the relative position of the point given with respect to the bounding box of the geometry.

Remove a target from the primitive’s relationship

Sets the primitive active state.

Sets the value of an attribute.

Sets the value of an element in an array attribute.

Sets the excludes list on the collection

usd_setcollectionexpansionrule
Sets the expansion rule on the collection

Sets the includes list on the collection

Sets the primitive’s draw mode.

Sets the primitive’s kind.

Sets the value of an metadata.

Sets the value of an element in an array metadata.

Sets the value of a primvar.

Sets the value of an element in an array primvar.

Sets the element size of a primvar.

Sets the indices for the given primvar.

Sets the interpolation of a primvar.

Sets the primitive’s purpose.

Sets the targets in the primitive’s relationship

Sets the primitive’s transform order

Sets/clears the primitive’s transform reset flag

Sets the selected variant in the given variant set.

Configures the primitive to be visible, invisible, or to inherit visibility from the parent.

Makes the primitive visible or invisible.

Returns the primitive’s specifier.

Constructs a full name of a transform operation

Obtains the primitive’s transform order

Extracts the transform operation suffix from the full name

Infers the transform operation type from the full name

Returns the name of the primitive’s type.

Constructs a unique full name of a transform operation

Returns the variants belonging to the given variant set on a primitive.

Returns the currently selected variant in a given variant set.

Returns the variant sets available on a primitive.

Obtains the primitive’s world transform

Finds the distance of a uv coordinate to a geometry in uv space.

This function computes the intersection of the specified ray with the geometry in uv space.

Interpolates the value of an attribute at certain UV coordinates using a UV attribute.

Computes the position and normal at given (u, v) coordinates, for use in a lens shader.

Computes the mean value and variance for a value.

Reads a vertex attribute value from a geometry.

Reads a vertex attribute value from a geometry.

Returns the size of a geometry vertex attribute.

Returns the type of a geometry vertex attribute.

Returns the type info of a geometry attribute.

Returns the parametric coordinate of a vertex along the perimeter of its primitive.

Returns the halfedge which has a vertex as source.

Converts a primitive/vertex pair into a linear vertex.

Returns the linear vertex number of the next vertex sharing a point with a given vertex.

Returns the point number of linear vertex in a geometry.

Returns the linear vertex number of the previous vertex sharing a point with a given vertex.

Returns the number of the primitive containing a given vertex.

Converts a linear vertex index into a primitive vertex number.

Generates Voronoi (cellular) noise.

Returns the volume of the microvoxel containing a variable such as P.

Samples the volume primitive’s value.

Samples the volume primitive’s value.

Calculates the volume primitive’s gradient.

Gets the value of a specific voxel.

Gets the active setting of a specific voxel.

Gets the integer value of a specific voxel.

Gets the index of the bottom left of a volume primitive.

Gets the vector4 value of a specific voxel.

Converts a volume voxel index into a position.

Gets the vector2 value of a specific voxel.

Gets the vector value of a specific voxel.

Converts a position into a volume voxel index.

Gets the resolution of a volume primitive.

Samples the volume primitive’s float value.

Samples the volume primitive’s integer value.

Samples the volume primitive’s vector4 value.

Samples the volume primitive’s vector2 value.

Samples the volume primitive’s vector value.

Samples the volume primitive’s value.

Samples the volume primitive’s value.

Gets the typeid of the data of a volume or VDB primitive.

Computes the approximate diameter of a voxel.

Transforms a directional vector.

Reports a custom runtime VEX warning.

Blends an existing name/weight array pair with another array or named item.

Initializes an index array and weight array pair with a single named entry.

Normalizes an array of floats so it sums to 1.0.

Discards any weights below a threshold from an name/weight array pair.

Computes the winding number of a mesh around a point. Winding number indicates how many times a geometry wraps around a point. Useful for inside/outside test, the winding number is equal to one inside of the mesh and zero outside.

Computes the winding number of a curve in XY plane around a point. Winding number indicates how many times a curve wraps around a point. Useful for inside/outside test, the winding number is equal to one inside of the curve and zero outside.

Generates Worley (cellular) noise.

Transforms a normal vector from World to Object space.

Transforms a position value from World to Object space.

Transforms a direction vector from World to Object space.

Transforms a normal vector from World to Texture space.

Transforms a position value from World to Texture space.

Transforms a direction vector from World to Texture space.

Simplex noise is very close to Perlin noise, except with the samples on a simplex mesh rather than a grid. This results in less grid artifacts. It also uses a higher order bspline to provide better derivatives.

Derivatives of Simplex Noise.

Finds the distance from a point to the closest location on surface geometry.

Convert CIE XYZ tristimulus values to a linear sRGB triplet.