Script SOP


The Script SOP runs a python script each time the Script SOP cooks. It can create, delete and modify points, primitives and their vertices. It can create custom attributes or built-in attributes like Cd (color), uv and N (normals). It can add polygons, bezier curves and meshes among others. It can combine multiple inputs. By default, the Script SOP is created with a docked DAT that contains three Python methods: cook(), onPulse(), and setupParameters(). The cook() method is run each time the Script SOP cooks. The setupParameters() method is run whenever the Setup Parameter button on the Script page is pressed. The onPulse() method is run whenever a custom pulse parameter is pushed.

Refer to Help -> Python Examples, and Help -> Operator Snippets.

Note: Because the Script SOP can get data from anywhere, it's difficult to determine what it procedurally depends on. So every time that a Script OP runs it will make a list of operators, parameters, nodes etc that it depends upon, and when they change, the Script OP will re-cook.

See also: Geometry Detail, Point, Point List, Point Class, Primitive, Prims Class, Polygon, Vertex, SOP, SOP Class, SOP to DAT, Point SOP, Point Groups, Primitive Groups, Attributes.

See also: Script CHOP, Script DAT, Script TOP.


Parameters - Script Page

Callbacks DAT callbacks - Specifies the DAT which holds the callbacks. See scriptSOP_Class for usage.

Setup Parameters setuppars - Clicking the button runs the setupParameters() callback function.

Default Functions

These functions are included in the default script located in the docked node script1_callbacks.

# me is this DAT.
# scriptOP is the OP which is cooking.

# press 'Setup Parameters' in the OP to call this function to re-create the parameters.
def setupParameters(scriptOP):
	scriptOP.appendParFloat('ValueA', page='Custom')
	scriptOP.appendParFloat('ValueB', page='Custom')

#called whenever custom pulse parameter is pushed
def onPulse(par):

def cook(scriptOP):

Operator Inputs

  • Input 0 -

TouchDesigner Build: