TfmLookAt¶
The LookAt transformation takes two transformation nodes: One where to look-from, and one where to look-at.

Dynamic Orientation Between Two Points
TfmLookAt creates a transformation that automatically orients to face from one point toward another. This is useful for billboards that always face the camera, spotlights that track targets, or any object that needs to maintain orientation toward a moving reference point.
Reference¶
The following properties can be configured for this node:
| Property | Type | Description |
|---|---|---|
look from |
- | from where to look |
look at |
- | where to look at |
orientation |
- | axis orientation |
direction |
- | look from look-from to look-at or from look-at to look-from |
transformation pass |
- | select transfromation pass |
| Inlet | Type | Description |
|---|---|---|
| properties | properties | properties | use message [set <propertyPath> <value(s)>] (without node/<nodeName> at the beginning) to set internal properties |
| send | message | send direct message to anim object: 'bang' for forced transformation bang. OR 'getlist' <get...> items for dump out current values (needs a bang). Possible <get...> items: getposition, getquat, getscale, getworldpos, getworldquat, getworldscale, gettransform, getinvtransform, getworldtransform |
| Outlet | Type | Description |
|---|---|---|
| dump | message | dump of 'anim' , output of the requested <get...> values and transformation bang from the above inlet. also outputs 'markerlist' if markers are received. |
Basic Setup¶
Creating a Look-At Transformation
To make an object always face a target:
- Create two TfmNode nodes: one for the source position, one for the target
- Create a TfmLookAt node
- Set
look fromto reference the source TfmNode - Set
look atto reference the target TfmNode - Use TfmLookAt as the
parentfor any object that should face the target
The orientation will automatically update as either node moves.
Configuration Options¶
Direction and Orientation
| Property | Description |
|---|---|
| direction | Controls which way the look-at vector points: from source→target or target→source |
| orientation | Sets which local axis aligns with the look-at direction (e.g., Z-forward, Y-up) |
Adjust these settings to match your object's natural orientation and desired facing direction.
Transformation Pass¶
Execution Order
TfmLookAt produces a transformation matrix that is detached from the its own transformation hierarchy. If other transformations depend on TfmLookAt's result, they must execute in a later transformation pass.
Use Cases¶
Common Applications
- Billboard effects: Objects that always face the camera
- Spotlight tracking: Lights that follow moving targets
- Turret/gimbal systems: Objects that aim at targets
- Camera constraints: Cameras that track subjects
- Connecting motion capture points: Orient based on tracked marker positions
Querying Transformation Data¶
Getting Transform Values
Send messages to the send inlet to query current transformation:
| Message | Returns |
|---|---|
getposition |
Local position x y z |
getquat |
Rotation as quaternion |
getscale |
Local scale x y z |
getworldpos |
World position |
getworldquat |
World rotation as quaternion |
getworldscale |
World scale |
gettransform |
Full transformation matrix |
getinvtransform |
Inverse transformation matrix |
getworldtransform |
Full world transformation matrix |
Send bang after the getlist message to output values via the dump outlet.
TfmLookAt vs LookAtCamera¶
Choosing the Right Node
| Feature | TfmLookAt | LookAtCamera |
|---|---|---|
| Purpose | General transformation orientation | Camera with look-at + frustum alignment |
| Output | Transformation matrix | Camera intrinsics + frustum |
| Near-clip alignment | No | Yes (aligns with look-at plane) |
| Use with | Any object needing orientation | SceneCapture for rendering |
| Best for | Billboards, spotlights, tracking | CAVE VR, head-tracked displays |
-
Quick Start
Get started with TfmLookAt in minutes
-
Complementing TfmLookAt
-
Tutorials
-
Community
Need help or want to suggest improvements?
Last updated: 2025-12-01 | Edit this page on GitHub