Lattice SOP

From TouchDesigner 088 Wiki


The Lattice SOP allows you to create animated deformations of its input geometry by manipulating grids or a subdivided box that encloses the input source's geometry.

It is much easier to deform an object by moving a few grids than trying to animate every single point of an object.

This SOP has very few buttons and looks simple, but it is important to understand how it works. The first input, called Geometry to Deform, is for the geometry you wish to deform. The second input, called Rest Geometry, must be an evenly spaced grid which fully encloses the geometry to deform. The third input, called Deformed Geometry, is a copy of the initial grid that is altered in some way, either by moving parts of it with animation channels, dragging its points in the Model Editor, or by running it through a Spring SOP which distorts it with the forces which simulate the laws of physics. Lattice computes a deformation based on the difference between the Rest Geometry and the Deformed Geometry, and applies it to the input geometry. The output of the SOP is the deformation of the geometry in the input source. If the Deformed Geometry is being animated, the output will also bend, twist and stretch every frame.

PythonIcon.png latticeSOP_Class


Group /group - Subset of points in the first input to be deformed. Accepts patterns, as described in Pattern Matching.

Parameters - Lattice Page

Deform with a regularly spaced lattice.

Both the Rest Geometry and the Deformed Geometry must be lattices with the point orders in a specified order. This is the order generated by the Box SOP when Use Divisions is turned on. The number of divisions must match that of the goemetry or an error is returned.

Divisions /divsx /divsy /divsz - Must be set to match the number of divisions in the lattice grid object(s).

Parameters - Points Page

Deform using an arbitrary point clouds.

Both the Rest Geometry and the Deformed Geometry must have the same point clouds. Note that any points not within the specified radius of a point in the Rest Geometry will not be deformed. The amount of deformation applied to a point is based upon the weighted average of the deltas of the Rest Geometry to the Deformed Geometry. The weighting function is taken from the specified metaball kernal, so behavior is similar to applying a magnet metaball to every point in the Rest Geometry.

Kernal Function /kernal - Deformation by specifying a Kernal Function and Points makes it easier to deform arbitrary clouds of points, as this makes the topology of the lattice behave more like a metaball rather than as a fixed lattice.Kernal Function determines which meta kernal to use to determine the influence of a point.

Radius /radius - The size of the points capture regions.

Inputs / Geometry Types

All input types. Lattices should consist of open polygons, usually created with the Box SOP.

See Also