Piano Mover Configuration Space

Move a piano into the corner of a cluttered room and watch its configuration space update live.

Workspace

Drag the piano; it stops at walls and furniture. Rotate with the θ slider, the mouse wheel, or Q/E. Arrow keys nudge it. Park it in the green goal spot.

Configuration space — slice at θ = 0°

free configurations    C-obstacle    goal    current configuration — drag it!
θ: 0°
Room:
Length: 3.4
Width: 0.7
Exploring: click anywhere to teleport the piano or the C-space dot, and drag straight through obstacles (the piano turns red).
The piano mover's problem is a classic robotics challenge: find a collision-free path that moves a bulky object through a cluttered space. The piano's pose is fully described by three numbers — its position (x, y) and rotation θ — called its configuration. The set of all configurations is the configuration space (C-space), and in C-space the whole piano shrinks to a single point! Configurations where the piano would overlap an obstacle (or poke out of the room) form the dark C-obstacles. The full C-space here is 3-D (x, y, θ); the right panel shows the 2-D slice at the current θ, with the real obstacles outlined for comparison.
Things to try: In the Cluttered room, get the piano into the green goal spot in the top-left corner. It can't be done flat, and it can't be done upright either: the only way in is the slot between the bed and the dresser, and the ceiling above it is too low to stand the piano up. You have to tilt it, push it up through the slot at a slant, lean it over into the top of the room, then flatten it out. In C-space that's a route that keeps changing θ slice — the goal is only green at the right θ. With Trace path on, any motion of the piano draws a curve through C-space: planning a motion means finding a curve that stays out of the C-obstacles. In the Doorway room, set θ = 90° and watch the doorway slam shut in C-space — the free space splits in two. Explore mode (checkbox) unlocks the free controls: click to teleport the piano, drag it through obstacles, or shrink its length and width and see the C-obstacles deflate until they match the real obstacles: a point robot's C-space is its workspace.