Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Body-id-as-input pose source. Takes a `bodyId` input that may change every frame (typically wired from `physicsCollisionPulse.otherBodyId` or `physicsMouseDrag.pickedBodyId`), reads the live body pose from the engine, and publishes pose + velocity outputs. `x`/`y` are converted to viewport pixels using the world's frame element so consumers like `cursorProximityWrite` and `domVariablesWrite` can use them directly. `frameX`/`frameY` expose the raw frame-local pose for graph nodes operating in physics coords.
Inputs
| Port | Type | Description |
|---|---|---|
world | any | Wire to the sibling `physicsWorld.world` output. Loader resolves at bind for the bridge handle + frame element. |
bodyId | float | Engine body handle. Wire from `collisionPulse.otherBodyId`, `mouseDrag.pickedBodyId`, `bodyStagger.bodyIds[i]`, or any expression. -1 = unset → outputs hold zeros. |
Outputs
| Port | Type | Description |
|---|---|---|
x | float | Body center in viewport coords. Frame-local pose × frame scale + frame BCR.left. Wire into `cursorProximityWrite.cursorX`, `domPropertyWrite`, etc. |
y | float | Y (viewport px) |
frameX | float | Raw frame-local pose. Use when wiring into another physics primitive that already operates in frame coords. |
frameY | float | Frame Y (px) |
rotation | float | Rotation (rad) |
vx | float | Velocity X (px/s) |
vy | float | Velocity Y (px/s) |
awake | float | 1 while the engine considers the body active; 0 once it has settled. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| - | - | - | No configurable parameters. |
Use cases
- Smiley-as-cursor on impact — `collisionPulse.otherBodyId` → `bodyLookup.bodyId` → `bodyLookup.x/y` → 2nd `cursorProximityWrite.cursorX/Y`. The colliding smiley drives the same per-char push effect as the real cursor.
- Trail at the dragged body — `mouseDrag.pickedBodyId` → `bodyLookup` → `domPoseWrite` on a trail element so the trail tracks whichever ball the user is holding.
- State-machine gates on a specific body's motion — `bodyLookup.vx`/`.vy` → `expression` → state transition when speed crosses threshold.
Related nodes
Envelope
Use physicsBodyLookup as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-solvers/