Robotics · Embodied AI · Machine behaviour
Intelligence, embodied. I build experiments to understand how machines adapt, act, and fail.
Interactive study / 001 The geometry of possibility 7 revolute joints · 3 position constraints
Schematic of a seven-joint arm. Enable JavaScript for the live solver.
Drag the target
↶ Orthographic ↷
Kinematic model Computed locally. Not a recording.
Arrow keys move the target horizontally and vertically. Page Up and Page Down change depth. Shift increases the step. On touch screens, only the target captures dragging; the rest of the view scrolls normally.
Target depth y −165 mm
Pause Reset ↺
Joint axes Dexterity
Fig. 01 Seven joints. One tool point. More than one way to get there.
Position only · Orientation free
The live solver needs JavaScript. The study above is a static schematic; all work and contact links remain available.
The live study could not load. Project links and contact details still work below.
Selected work
Ideas, tested in the world.
01 / Embodied AI BrushOS A robot that paints, observes, and changes its next move.
02 / Reading & inquiry Machine behaviour Notes on agents, bodies, feedback, and evaluation.
03 / Human–computer interaction Dungeons Learning the command line by exploring, not memorising.
All experiments ↗
× Study 001 / Technical note
Redundancy isroom to move. Seven revolute joints control a point in three dimensions. When the position Jacobian has rank three, four local joint-space directions remain available without moving that point to first order.
Δq = Jᵀ(JJᵀ + λ²I)⁻¹ Δx
The reach solver uses damped least squares, joint bounds, and a bounded line search. “Hold the point” projects a posture change into the Jacobian’s null space, then corrects the finite-step position error.
Δqnull = (I − J⁺J) v
That projector is built from an orthonormal row basis—not from the damped inverse above. The error shown on the page is measured from forward kinematics.
Model, limitations & controls This is an illustrative model, not a commercial robot or hardware connection. Geometry uses metres; position error is displayed in millimetres. Orientation is free. There are joint bounds, but no collision checking, dynamics, torque limits, or global convergence guarantee.
“Dexterity” shows the local velocity manipulability ellipsoid, uniformly scaled for visibility. It is not a reachable workspace. “Trace a knot” solves IK along a trefoil; it does not play a saved joint animation.
Drag the target or use arrow keys. Page Up/Down changes depth. Rotate the view with the arrow buttons. With reduced motion, the slider explores discrete postures and curve points without autoplay.
Damping λ 0.012