Inspiration
I have moved more times than I care to count, and I have helped enough friends move that I have become the guy with the truck. That title sounds useful until moving day arrives and everyone suddenly expects you to solve a three-dimensional furniture puzzle while carrying a sofa.
Moving trucks have a special law of physics: every couch gets larger the moment it reaches the driveway, every fragile box ends up underneath a box of books, and the phrase “we can make it fit” usually means “we are about to make a second trip.”
A visual load planner like ONE TRIP WIN would have saved a lot of scratched furniture, wasted truck space, and conversations that began with, “Turn it the other way,” and ended with everyone silently blaming the sectional.
What it does
ONE TRIP WIN is a shared 3D moving plan. You place it. AI works around it. A person enters confirmed dimensions and handling rules, drags cargo into position, and locks the choices they want to keep. An AI agent reads the same plan through WebMCP and packs around those locks.
The guided demo starts with three of 18 sample items loaded and one overlap. Unpacked miniatures wait beside the truck on wide screens; the full inventory wraps into rows below. The agent arranges the load in the 12-foot demo truck, favoring front-wall compaction and supported stacks, with an animated transition into the planned positions. The default packed load uses about 82% of the floor, 52% of the bounding-box volume, and 838 lb of the illustrative 900 lb payload allowance. The person moves the first-night bag and selects Keep here, then adds a last-minute ottoman. The agent adapts the arrangement while preserving that exact locked placement. The person reviews the results and provides the final approval.
The interface has fitted 3D and top views, direct drag-and-drop, rotation and height controls, Undo, and clickable issue highlights. The results show actual loaded-item counts, overlaps, unsupported items, payload, and volume. Changed cargo flashes blue, and a shared activity trail explains who changed what.
How we built it
The app uses React, TypeScript, Three.js, React Three Fiber, Drei, and Tailwind CSS, with Vinext and Cloudflare Workers through ChatGPT Sites. Six tools are registered with document.modelContext.registerTool:
- get_moving_load reads inventory, dimensions, handling, locks, placements, and checks.
- place_moving_item repositions unlocked cargo.
- remove_moving_item returns unlocked cargo to inventory.
- auto_arrange_moving_load packs around human-locked placements.
- set_moving_truck_size selects a 12-, 16-, or 26-foot demo truck.
- validate_moving_load reports placement issues and affected item IDs.
Human controls and agent tools use one synchronous store. The agent sees human changes immediately. It cannot unlock an item, invent its measurements, or approve the plan. Undo restores the previous arrangement and requires fresh human review.
Packing uses a bounded deterministic heuristic with physical dimensions, permitted horizontal rotations, payload, collision checks, full-footprint support, and cumulative bearing limits. Items that cannot be placed remain in inventory with reasons.
Challenges we ran into
The hardest part was making collaboration visible in the same 3D workspace. A person's locked placement has to survive every editing path: direct agent moves, removal, repacking, and truck changes. A supported stack also needs its supporting base preserved.
We had to represent height and support, because a moving truck is a volume, not a very expensive floor mat. We also replaced a general load score with measured results so people can understand what passed, what needs attention, and which item caused it.
Accomplishments that we're proud of
- Six discoverable WebMCP tools operating on the same plan as the person
- Human-owned locks that the agent works around
- Direct drag-and-drop with valid and invalid placement previews
- Undo that preserves the need for human approval
- Readable 3D and top views with camera reset
- Measured checks with clickable cargo highlights
- A guided move that tracks actual agent calls and human edits
- A complete collaboration flow with a human-only final approval control
What we learned
WebMCP is most powerful when the agent is not operating somewhere behind the curtain. It becomes useful when the person and the AI can see, change, and validate the same state together.
Turning a stressful real-world task into a puzzle makes the solution easier to understand—and considerably more fun than arguing with a sofa in a driveway.
Try the guided move
Open the live app in a browser with WebMCP support and choose Try the guided move. Ask the agent to read and pack the inventory. Drag the first-night bag, select Keep here, and add the sample ottoman. Then ask: Repack around my locked items, include the new item, and validate the result. Do not approve it for me. Review the checks and approve the plan yourself.
Manual entry, packing, locks, Undo, and the guided demonstration require no API key or login. Photos are optional local visual references in the hosted demo. Dimensions and weight are always entered and confirmed by the person. The optional local AI identification integration is disabled on hosted builds.
Truck specifications and sample measurements are illustrative. These are planning checks, not a transport-safety certification. There is no door-clearance or loading/unloading-path check, and the packing heuristic does not prove an optimal arrangement.
What's next for ONE TRIP WIN
Saved household inventories, shared moving plans, a durable allowance for hosted photo identification, and stronger packing optimization could extend the experience. The goal remains fewer avoidable second trips and a clearer plan before anyone starts carrying the sofa.
Built With
- react
- typescript
- webmcp
Log in or sign up for Devpost to join the conversation.