I built Unwedged because a doorway's width doesn't tell me about the turn behind it. I wanted a small tool to draw the measured floor, place a rectangular piece of furniture and inspect a route instead of guessing from a diagram.
The model
Unwedged uses centimetres internally. A project contains a rectangular floor, walls or obstacles, furniture dimensions, a safety margin and the start and destination poses. Each pose has a position and an angle. Wall rectangles can have a centred doorway. Carry height determines whether that opening is available in the model.
I model a rigid rectangle in 2D at a fixed height. I don't model stairs, lifting, bending furniture or the people carrying it. Measurements and those assumptions matter more than a polished animation.
From a search to a checked route
The search explores position and angle together. The default lattice uses ten centimetres and ten degrees, with a finer option for harder layouts. Every proposed motion edge goes through the same continuous verifier used for the final path.
The verifier compares clearance at a segment midpoint with a bound on how far any point of the furniture can move. If that bound is too loose, it subdivides the motion. The returned clearance is a conservative lower bound. It isn't the exact minimum.
I checked the two successful presets with 3,204 independently evaluated route poses in Shapely, using 800 equal time intervals per segment. Sampling can catch implementation mistakes. It doesn't replace the continuous certificate. The repository includes the reference check and saved route regression cases.
Trying it
The live demo needs no account. For a local copy, install Node.js 22.12 or newer and Git, then run:
npx github:Arthur031221/Unwedged
You can replay or scrub the route, save a JSON project and export an SVG route sheet. After the first visit, wait for the offline indicator before disconnecting. The cached app includes fonts and the search worker.
What I want to improve
The search has a finite resolution and budget. Failing to find a path doesn't prove the furniture can't pass. I'd like measured layouts that challenge the model and feedback on making the editor easier to use.
The source, architecture notes and reproducible checks are in Unwedged.

Top comments (0)