Lie Group IK Playground
Drag a target and watch a robot arm solve inverse kinematics on SE(2) or SE(3): damped least-squares steps in the tangent space, mapped back with Exp, with geodesics, residuals and the ways it breaks.
In early access for subscribers until 22 November 2026. Subscribe to run it now.
Subscribe →Inverse kinematics on Lie groups, made visible. Drag a target and a robot arm reaches for it: each update is solved in the tangent space with damped least squares, then the exponential map puts the joints back onto the group. Switch between a planar arm in SE(2) and a 3D chain of ball joints in SE(3).
- Two arms: a 2D arm with 2 to 8 hinge joints, or a 3D chain of 2 to 8 ball joints you can orbit and zoom; drag the target to move it and its knob (or Q and E) to turn it.
- Tune the solver: step size α, damping λ, iterations per frame, continuous solving or one step at a time, and an orientation weight when the arm must match the target's rotation too.
- Geodesic vs straight line: see the geodesic Exp(sξ) from the hand to the target next to a straight line with the rotation interpolated separately, with frames drawn along both paths.
- Watch the residual: bars for each component of the residual in the tangent space and a log-scale history of its norm, where Gauss–Newton steps with α = 1 close in quadratically.
- Break it on purpose: use the raw angle difference instead of the log map and turn the target past 180° to make the arm unwind a full turn; or replace the closed-form Rodrigues exponential with a truncated power series and watch the joints drift off SO(3) and the links stretch, then project them back.
- The update rule, written out: the residual, the Jacobians and the damped least-squares step for the current mode and settings.
It follows your light or dark theme. Its sibling, the SO(3) Playground, explores the rotation group itself: the rotation-vector ball, the composition of rotations and how to check a Jacobian numerically.