Gyro — tdlidar_gyro

Spin or twist the phone and drive things by how fast it’s turning, not where it points.

Category: Motion · Tier: Free · Needs: any iPhone (no LiDAR required)

What it does

Streams the phone’s rotational velocity — how quickly it’s turning around each of its three axes, in radians per second. Hold the phone still and all three read ~0; flick your wrist and the matching axis spikes, then settles back to 0 the instant you stop. It measures rate of turn, so it’s perfect for detecting flicks, twists and spins rather than absolute orientation.

OSC in

address type range rate
/tdlidar/motion/rotation/x float rad/s (rotationRate) ≤50 Hz
/tdlidar/motion/rotation/y float rad/s (rotationRate) ≤50 Hz
/tdlidar/motion/rotation/z float rad/s (rotationRate) ≤50 Hz

Outputs

out1 (CHOP) — three channels rotx, roty, rotz (rad/s). The node tile previews out1.

Parameters

par default what it does
OSC Port 9000 UDP port to listen on (match the app)

Quick start (beginner)

  1. Enable Gyro in the app’s Motion sensors.
  2. Drop the Gyro op — three flat lines near 0.
  3. Twist the phone around different axes and watch each channel spike.
  4. Wire one channel into a Speed CHOP’s input, or straight into the rotate speed of a spinning Geo, so the visual spins as fast as the phone does.

Advanced patterns

  • Velocity → angle: Feed a channel into a Speed CHOP to integrate rad/s into an accumulating angle — turn the phone and the visual keeps the rotation you “wound” into it.
  • Flick gesture: Math CHOP Length of the three axes → Trigger CHOP (threshold ~3 rad/s, short re-trigger delay) to fire one bang per sharp flick. Add a Logic CHOP per axis to distinguish a roll-flick from a yaw-flick.
  • Spin energy: A Filter CHOP on the magnitude gives a smooth “how much is it spinning” envelope for driving glow, blur or feedback amount.
  • Deadband: Hands are never perfectly still — a Logic CHOP in > mode (or a Limit CHOP) gates out tiny <0.1 rad/s noise before it reaches a trigger.

Gotchas

  • This is velocity, not position — it returns to 0 when the phone stops moving, even if the phone is now facing a new way. For “which way is it pointing”, use QuaternionEuler.
  • Spikes are momentary; downstream logic that expects a held value needs a Speed/Filter/Trigger in between.
  • rotationRate is zeroed by the app’s Calibrate snapshot, so a press of Calibrate re-references the resting baseline.