Inspiration

When someone in a family starts using a wheelchair, the home becomes a guess. Is the bathroom door wide enough? Can the chair get round the hallway's bends? Can it turn around at the end of a corridor? Is there room beside the van for its ramp? Families find out by paying for a fix and trying it. AI assistants make this worse in a new way: a model will happily say "widen the door to 70 cm" in a confident voice, and nothing checks it. We wanted agents that do the work, and a checker they cannot talk into anything.

What it does

CLEARWAY drives a simulated wheelchair through a digital twin of the home (a doorway, an S-shaped hallway, a dead end where it has to turn around, or the driveway where a ramp van parks), finds exactly where it jams, and proposes the cheapest fix that two independent checkers cannot refuse:

  1. A physics re-drive: the chair (or the van), at its real size, is driven through the changed home again.
  2. The accessibility code (ADA 2010, or EN 17210 for doors): thresholds are constants in code, never in a prompt.

The headline is a refusal: "Refused 1 of 2 proposed fixes before you saw one."

  • 1970s apartment, 65 cm bathroom door. Offset hinges (+5 cm) let a 70 cm chair squeeze through, but 700 mm is under ADA 404.2.3's 815 mm, so the Auditor refuses. Widening the frame passes both checks.
  • S-shaped hallway, 70 cm. With a real chair (the Quantum Q6 Edge 3 Stretto, from its published spec), the cheapest width it can physically get round the bends is 80 cm. That is under ADA 403.5.1's 915 mm, so it is refused; 95 cm passes both.
  • Dead-end hallway, 95 cm. The chair cannot turn around. The smallest T-shaped turning space it can use (100 cm) is under ADA 304.3.2's 1525 mm square, so it is refused; 155 cm passes, and you watch the chair turn around and drive back out.
  • Car mode: a home driveway, 350 cm. A BraunAbility Toyota Sienna side-entry van (from its published specs) turns in from the street and parks; its 52 in ramp hits the wall, because the ramp plus the chair need 215 cm beside the van and the bay leaves 121 cm. The cheapest bay this chair can use (445 cm) is under ADA 502's van space plus access aisle (4875 mm), so it is refused; at 490 cm the aisle is marked, the ramp deploys and the chair rolls off.

You approve the fix, and CLEARWAY writes a contractor brief: the jam, the failed clauses, the approved change, and cited prices with their source links.

How we built it

Six agents, and only one of them is allowed to decide nothing on its own:

Agent What runs
Surveyor code: loads the home and the chair
Pilot code: an A* planner through doorways; wheelchair kinematics in hallways; car kinematics for the van
Inspector rules engine (code) + Tavily for the clause text
Builder Nemotron 3 Super on Nebius Token Factory: proposes the cheapest fix as JSON only, from a fixed catalogue
Auditor code: re-drives and re-checks from raw numbers; it never sees the Builder's prose, prices or reasoning
Scribe code renders every figure; Nemotron 3 Ultra writes one plain-words paragraph
  • The model proposes; code decides. The Builder's output is untrusted: it is validated against the catalogue (known fix, valid parameters, applies to this kind of space) before anything applies it.
  • Super learns from refusals. In a live run Super proposed widening the door to 70 cm, was refused with the clause and the numbers, and came back with 82 cm, which passed.
  • Ultra may not invent numbers. If its paragraph mentions any figure that is not in the code-rendered facts, it is withheld.
  • Wheelchair kinematics for hallways. The chair is a rigid footprint that turns about its drive axle, drives arcs and reverses, with every move's sweep checked. Its corners are rounded until its pivot circle matches the spec-sheet turning diameter. It is calibrated against closed-form geometry: it never clears a corner below the rigid-body bound (L/2 + W)/√2, and clears within 10 cm of it.
  • Car kinematics for the driveway. The van is the same rigid-body engine keyed on its rear axle, but it cannot pivot: it drives straight or along arcs of its minimum turning radius. It is calibrated against the closed-form annulus a turning car sweeps. The planner first tries the manoeuvre a driver would take (straight on, one full-lock turn, straight in), as Hybrid A* does, and searches only if that does not fit.
  • Tavily fetches the cited clause text and contractor price ranges, shown as linked cards. Cards are display evidence only: they never reach the Auditor.
  • The UI labels every step with what actually ran: "Nemotron 3 Super · Nebius Token Factory", or "deterministic code".
  • Python, FastAPI and React; hosted on Cloudflare (a Worker in front of a Cloudflare Container, with the live-run caps in a Durable Object), with every model call on Nebius Token Factory. Per-visitor rate limits and a daily live-run cap stop a public demo from draining credit.

Challenges we ran into

  • Our first hallway physics was wrong, and we threw it away. The chair spun about its centre in 45-degree jumps. It said a chair could turn around in a T by skipping angles, and that ADA-width hallways trap chairs at the bends. A wheelchair user would know both are false. We parked it, wrote calibration tests from geometry first, and rebuilt it as real wheelchair kinematics.
  • A car search can wander. The first van planner took minutes and parked with a forward-reverse shuffle no driver would make. Guiding it with a walls-aware distance map and trying the direct manoeuvre first made it take one smooth swing, in about 0.04 s.
  • Web prices lie in creative ways. Live runs surfaced a San Francisco cost-of-living page quoted as a door price ("$798"), a whole-renovation figure ("$30,000 to $40,000") quoted for one doorway, a worst case ("$5,000") quoted instead of the page's own range ("$1,000 to $5,000"), and a wheelchair-ramp price page quoted for widening a driveway. Each became a test on the captured text.
  • Verifying the standard found our own bug. Reading ADA 2010 from access-board.gov showed our turning circle was 1500 mm (the EN/ISO figure); ADA 304.3.1 says 1525 mm.
  • Nemotron reasons before it answers. Our first Nano call returned no content at all: the small token budget was spent reasoning. It happened again on the first live driveway run, where Super spent all 2048 tokens thinking; the Builder now gets more room and a prompt that covers the van's ramp.

Accomplishments that we're proud of

  • A genuine refusal in every scenario, on real code clauses, with a real chair's and a real van's published dimensions.
  • Physics calibrated against geometry, not tuned to look right: for the chair and for the car.
  • 154 tests, written test-first; every live finding became a regression test.
  • Cheap: a live run is about $0.001 of Nemotron; a brief paragraph about $0.002.

What we learned

  • A reasoning model is most useful when something independent can tell it "no" with a reason.
  • Checking a model against the standard's own text, not our memory of it, matters: we were wrong once.
  • Honest limits make a stronger product: CLEARWAY's README lists every simplification.

What's next for CLEARWAY

  • Floor-plan import, so families test their own home.
  • U-turns (ADA 403.5.2), ramps and reach ranges.
  • Multi-point turns for narrower driveways and garages, and more vans and chairs from their spec sheets.

Built With

Share this project:

Updates

Submission history