Object CHOP

From TouchDesigner Documentation
Revision as of 19:39, 24 January 2019 by Markus Heckmann (talk | contribs) (cleaning)
Jump to: navigation, search


The Object CHOP compares two objects and outputs channels containing their raw or relative positions and orientations. The information that can be output is:

  • Position of one object relative to another
  • Rotation of one object relative to another
  • Bearing of one object relative to another
  • Single Bearing Angle between two objects
  • Distance between the origin of two objects
  • Inverse Square of the Distance between two objects

The optional two inputs allow you to compare X,Y,Z points in world space with objects or each other. The inputs are expected to have three channels containing XYZ points. These inputs replace the target and/or reference objects. Object and points can be compared with each other, but "Rotation" mode will always return zero.

See also the SOP to CHOP and the Parameter CHOP. They retrieve other information from objects and SOPs.


Parameters - Object Page

The default simply gives you one object's position relative to another. You get the XYZ of the origin of the Target Object relative to the origin and rotation of the Reference Object. That is, you get the XYZ of the target object's origin as if you were at the 0,0,0 location (origin) of the Reference Object, looking down the Reference Object's Z-axis.

DAT Table dat -  

Target Object target - The object that is being compared to the position of the reference object. The Target Object can be expressed as a text string. This can be useful when the object name needs to be a variable - it allows you to type in a name which may include expressions or variables.  

Reference Object reference - The object that acts as the origin of the comparison. The Reference Object can be expressed as a text string.  

Compute compute - - The information to output from the objects, as described below:

  • Position translate - The displacement from the reference object to the target object.
  • Rotation rotate - The orientation difference from the reference object to the target object.
  • Scale scale - The scale difference from reference object to the target object.
  • Transform transform - The translation from reference object to the target object.
  • Bearing bearing - The rotation necessary for the reference object to be facing the target object.
  • Single Bearing Angle singlebear - An angle representing where the target object is relative to the reference object. Zero degrees is directly in front, 90 degrees is beside and 180 degrees is behind.
  • Distance distance - The distance between the two objects.
  • Inverse Square Distance invsqr - The inverse squared distance between the two objects, useful for modeling electric forces, audio dropoff and gravity.

Transform Order xord - - The transform order to use for Rotation, Scale, Transform, Bearing, or Single Bearing Angle Compute modes.

  • Scale Rotate Translate srt -
  • Scale Translate Rotate str -
  • Rotate Scale Translate rst -
  • Rotate Translate Scale rts -
  • Translate Scale Rotate tsr -
  • Translate Rotate Scale trs -

Rotate Order rord - - The rotation order to use for Rotation, Scale, Transform, Bearing, or Single Bearing Angle Compute modes.

  • Rx Ry Rz xyz -
  • Rx Rz Ry xzy -
  • Ry Rx Rz yxz -
  • Ry Rz Rx yzx -
  • Rz Rx Ry zxy -
  • Rz Ry Rx zyx -

Bearing Reference bearingref - - Bearing requires a direction to use as a reference base.

  • X Axis x -
  • Y Axis y -
  • Z Axis z -
  • Bearing Vector vector -

Bearing Vector bearing - - An arbitrary base direction for the bearing calculation.

  • X bearingx -
  • Y bearingy -
  • Z bearingz -

Point Scope X tscopex - When one of the optional point inputs is connected, this determines which channels represent X, Y and Z.  

Point Scope Y tscopey - When one of the optional point inputs is connected, this determines which channels represent X, Y and Z.  

Point Scope Z tscopez - When one of the optional point inputs is connected, this determines which channels represent X, Y and Z.  

Append Attributes appendattribs - Adds a rotate attribute to any rotation channels the Object CHOP creates.  

Smooth Rotation smoothrotate - When on outputs a smooth rotation curve without graphical jumps at 0, 90, etc.  

Parameters - Channel Page

Channel Names nameformat - - Sets how the created channels are named.

  • Channel Name channel - Automatically names channels. For example: tx, ty, tz.
  • Target and Channel Names target - Names channels with target prefix. For example: if target = obj1, then obj1:tx, obj1:ty, obj1:tz.
  • Reference and Channel Names reference - Names channels with reference parameter prefix. Behaves like Target and Channel Names above but uses the name of the reference object.

Output Range outputrange - - The start and end time of the desired interval of the object path.

  • Current Frame currentframe - Output a single sample at the current frame.
  • Current Time Slice timeslice - Span of samples covering the current Time Slice.
  • Start / End startend - Uses range defined by the Start / End parameters below.

Cook Past Values (slow) cookpast -  

Start start - The start time of the desired interval of the object path.  

Start Unit startunit -  

End end - The end time of the desired interval of the object path.  

End Unit endunit -  

Extend Left left - - The extend condition before the CHOP interval. They are:

  • Hold hold - Hold the first or last value.
  • Slope slope - Continue the slope before the start, or after the end of the channel.
  • Cycle cycle - Cycle the channel repeatedly.
  • Mirror mirror - Cycle the channel repeatedly, mirroring every other cycle.
  • Default Value default - Use the constant value specified in the Default Value parameter.

Extend Right right - - Extend condition after the interval. Same options as Extend Left.

  • Hold hold -
  • Slope slope -
  • Cycle cycle -
  • Mirror mirror -
  • Default Value default -

Default Value defval - The value used for the Default Value extend condition.

Note: When creating rotation channels, the Transform CHOP and Object CHOP will select values which minimize frame-to-frame discontinuity. The graphs will appear continuous and free of 180 degree shifts.  

Parameters - Common Page

Time Slice timeslice - Turning this on forces the channels to be "Time Sliced". A Time Slice is the time between the last cook frame and the current cook frame.  

Scope scope - To determine which channels get affected, some CHOPs use a Scope string on the Common page.  

Sample Rate Match srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or "Linear" if the Interpolate Options are not available.

  • Resample At First Input's Rate first - Use rate of first input to resample others.
  • Resample At Maximum Rate max - Resample to the highest sample rate.
  • Resample At Minimum Rate min - Resample to the lowest sample rate.
  • Error If Rates Differ err - Doesn't accept conflicting sample rates.

Export Method exportmethod - - This will determine how to connect the CHOP channel to the parameter. Refer to the Export article for more information.

  • DAT Table by Index datindex - Uses the docked DAT table and references the channel via the index of the channel in the CHOP.
  • DAT Table by Name datname - Uses the docked DAT table and references the channel via the name of the channel in the CHOP.
  • Channel Name is Path:Parameter autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.

Export Root autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is Path:Parameter are relative to.  

Export Table exporttable - The DAT used to hold the export information when using the DAT Table Export Methods (See above).  

Operator Inputs

  • Input 0 -
  • Input 1 -

TouchDesigner Build:

Ableton Link • Analyze • Angle • Attribute • Audio Band EQ • Audio Device In • Audio Device Out • Audio Dynamics • Audio File In • Audio File Out • Audio Filter • Audio Movie • Audio NDI • Audio Oscillator • Audio Para EQ • Audio Play • Audio Render • Audio Spectrum • Audio Stream In • Experimental:Audio Stream In • Audio Stream Out • Beat • Bind • BlackTrax • Blend • Blob Track • Bullet Solver • Clip Blender • Clip • Clock • Composite • Constant • Copy • Count • CPlusPlus • Cross • Cycle • DAT to • Delay • Delete • DMX In • DMX Out • Envelope • EtherDream • Event • Expression • Extend • Fan • Feedback • File In • File Out • Filter • Experimental:Filter • Experimental:FreeD • Function • Gesture • Handle • Helios DAC • Hog • Hokuyo • Hold • Import Select • In • Info • Interpolate • Introduction To CHOPs id • Inverse Curve • Inverse Kin • Join • Joystick • Keyboard In • Keyframe • Kinect Azure • Kinect • Lag • Laser • Leap Motion • Leuze ROD4 • LFO • Limit • Logic • Lookup • LTC In • LTC Out • Math • Merge • MIDI In • MIDI In Map • MIDI Out • Mouse In • Mouse Out • NatNet In • Noise • Null • Object • Oculus Audio • Oculus Rift • OpenVR • OSC In • OSC Out • Out • Override • Panel • Pangolin • Parameter • Pattern • Perform • Experimental:Phaser • Pipe In • Pipe Out • PosiStageNet • Pulse • RealSense • Record • Rename • Render Pick • Reorder • Replace • Resample • S Curve • Scan • Script • Select • Sequencer • Serial • Shared Mem In • Shared Mem Out • Shift • Shuffle • Slope • SOP to • Sort • Speed • Splice • Spring • Stretch • Stype • Switch • Sync In • Sync Out • Tablet • Time Slice • Timeline • Timer • TOP to • Touch In • Touch Out • Trail • Transform • Transform XYZ • Trigger • Trim • Warp • Wave • Experimental:WrnchAI • ZED

The component types that are used to render 3D scenes: Geometry Component contain the 3D shapes to render, plus Camera, Light, Ambient Light, Null, Bone, Handle and other component types.

An Operator Family which operate on Channels (a series of numbers) which are used for animation, audio, mathematics, simulation, logic, UI construction, and many other applications.

A Link.

An Operator Family that manipulates text strings: multi-line text or tables. Multi-line text is often a command Script, but can be any multi-line text. Tables are rows and columns of cells, each containing a text string.

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

A parameter in most CHOPs that restricts which channels of that CHOP will be affected. Normally all channels of a CHOP are affected by the operator.

Information associated with SOP geometry. Points and primitives (polygons, NURBS, etc.) can have any number of attributes - position (P) is standard, and built-in optional attributes are normals (N), texture coordinates (uv), color (Cd), etc.

The term "Frame" is used (1) in the Timeline, (2) as a time-unit in CHOPs, (3) as a time-unit in TOPs, and (4) with movies images which are read and created with TOPs.

A Time Slice is the time from the last cook frame to the current cook frame. In CHOPs it is the set of short channels that only contain the CHOP channels' samples between the last and the current cook frame.

To re-compute the output data of the Operators. An operator cooks when (1) its inputs change, (2) its Parameters change, (3) when the timeline moves forward in some cases, or (4) Scripting commands are run on the node. When the operator is a Gadget, it also cooks when a user interacts with it. When an operator cooks, it usually causes operators connected to its output to re-cook. When TouchDesigner draws the screen, it re-cooks all the necessary operators in all Networks, contributing to a frame's total "cook time".

samples-per-second of a CHOP. Each CHOP in your network has a sample rate, whether it is used or not. The overall timeline has a "frame rate", which is the number of animation frames per second, generally your monitor display frequency.

Exporting is the connection of CHOP channels to parameters of operators. The output of each exporting CHOP is one or more channels, active only while the CHOP Viewer is on. The current value of a channel can be exported to a parameter of any operator, overriding that parameter's value. See Parameter.

The location of an operator within the TouchDesigner environment, for example, /geo1/torus1, a node called torus1 in a component called geo1. The path / is called Root. To refer instead to a filesystem folder, directory, disk file or http: address, see Folder.

Parameters in TouchDesigner are an operator's settings (numbers, menus, flags, strings, paths) which the user can alter. Parameters for any operator can be opened by right-clicking on the operator and selecting "Parameters..." A currently selected operator's parameters can be viewed in a Network Editor by pressing the keyboard shortcut 'p'.

TouchDesigner is a hierarchy of components. "root" is the top-most network in the hierarchy. The Path is simply /. A typical path is /project1/moviein1.