Free Electron Documented Operators
Common Operator Info
FE ChainOp


Chain Tree run as Arnold procedurals


Attach rigid links to arbitrary curves.


Each curve in the Input Surface is used to generate a separate chain.

The Link Surfaces provide one or individual links to select from.

If the Scan Surfaces is also provided, it should contains a set of matching links, but perhaps at a different resolution. The intention is scan the geometry of an accurate render model while using a simpler stand-in model in the output. If this input is not provided, the regular link input is scanned instead.


Positions along each curve are usually specified by a unit value from 0 to 1, but Measure By Distance will use actual world distance instead. The chain link will be placed between the Start At and End At points along the curve. These values will be relative to the start of the curve unless Tip Relative is on. An alternative is to use named waypoints for the start and/or the end with Waypoint Start and Waypoint End. If the WayPointOp and WayPathOp nodes were used to make the curves, these names should already exist. Those waypoint tags can also be added manually to any curve with a point string attributes named "waypoint". If multiple points have the same waypoint name, the first one found will be used.

The Max Step Change is used to detect short circuit failures tracking the curve. Higher values are more lenient.

If Wrench is on and the given point vector Attr exists, this wrench vector can be used to twist the result chain relative to the curve normal, which also needs to be provided. When the wrench vector and normal are aligned, no wrenching occurs.

If multiple links are provided, the Fragment option can be used to determine which primitives belong to each links. All primitives with a matching string in for the given Attr will be considering one whole link. All links are scaled by the vector Link Scale.

Links will stop being generated after reaching the Max Link Count. If Stop After is non-zero, any links past this count will overlap the last link. If the end point on the curve is reached before reaching the limit, the remainder of the links will only be added if Generate Max is on. The remainder will overlap the last link.

If more than one link surface is given, the Link Order switches between applying them in order or randomly. The option will probably be expanded in the future.

The input links, or special scan links if provided, are automatically evaluated for a variety of geometric parameters, but the values can be tweaked. The Pivot Base Tweak and Pivot Tip Tweak adjust the cross section center at each end of each link. The Pivot Gap Tweak adjust the distance from the tip of one link to the base of the next. The Pivot Yaw Tweak adjusts where the cross section of a neighboring link provide on of the pivots for rotation of a particular link.

If the 180 degree rotation of the links is important, such as if they need to match the vertex layout of some reference models, then you alter the Flip Twist For every link with an index that matches the given regular expression.

The output Point Attr and Primitive Attr can be set to a string based on the Link Name, potentially made unique by Replacing a substring with the link index, Starting With a particular number.

In simple terms, each incremental link is advanced forward, twisted 90 degress, and then pivoted to line up with the curve. To break up the simplicity, many parameters are available to tune the stepping from one link to the next.

The Spiral Step is the large twist between links, usually around 90 degrees. The first link can be adjusted with a Start angle. Each link can twist a little differently with the Spiral vary. This variation can be tuned to Fade as the curve straightens out.

The angle that each link rotates around the previous link's cross section can be adjusted with Yaw Vary and reduced with Fade.

The angle that each link rotates around its own cross section can be adjusted with Pitch Vary and reduced with Fade.

The distance that each link can shift laterally inside the previous link's hole can be adjusted with Up Vary and reduced with Fade.

The distance that each link can shift laterally inside its own hole can be adjusted with Side Vary and reduced with Fade.

As the curvature increases, a Slack Gap can introduce more space between the inside edges of the links to represent the reduced tension. The Slack Min and Max control a range of curvature of where to start and limit this effect.

The Random Seed simply picks a particular set of random numbers for the variations. The Randomness scales all random effects equally.

The Rotation Limit can prevent tight turns. Any following links will still continue to turn as much as permitted while trying to return to the curve.

Short Circuit Protection will try to detect when the next nearest point on the curve is actually jumping to a whole different area of the curve and then fall back to a best-guess parametric advance.

Using Clamp Start will lock the facing vector of the first link to the Start Normal. Think of the facing vector as a needle going through the hole. The Clamp End option will likewise lock the facing vector of the last link to the End Normal. If the end is clamped, an iterative solver will twist links and adjust gaps to coerce the last link into the right location and orientation. Several Fitting Passes will probably be needed where each pass may only apply a partial correction, determined by Rate. If the solution gets jumpy, it may help to reduced the rate below one and perhaps increase the number of iterations.

Normally, the pivots are strictly applied with each frame acting independently. Activating Temporal mode, will allow some slip in the angles between links. This slip is carried between frames up to the given Slip Limit Twist, Yaw, and Pitch. This persistent slip is reduced by the Slip Response each frame.

The Draw Guides option may add debug geometry to the output.

Selecting Output Transform Triangles will added simple triangles instead of links.

The number of incrementally generated Links Along Curve is written to a parameter as well as the total Links in Output. These can be different if some of the links were force to overlap at the end.


tested in Houdini and Maya

Web page, Copyright 2008-2021, Free Electron Organization