Inspiration

Moving is hard! Organizing your stuff, deciding what to sell or donate, buying new things, and figuring out how they’ll look in your new home. These are all headaches. This led us to create Moove, an iOS app that streamlines this entire process. We built the app primarily to assist those who had to move on a short notice, like young grads starting their first jobs or immigrants on visa timelines.

Moove runs on a single shared SpacetimeDB database. The app and our agents never talk to each other directly. Both read and write the same live tables. Each agent watches for rows that need its work and writes its result back, and that result is what the next agent picks up. Because every agent step is a row, you watch your agents work in real time, right in the app.

What it does

The app has four main features:

1. Scan and model your room: First, scan your room with a phone or iPad’s LiDAR. Apple RoomPlan captures the walls and large furniture, and an on-device YOLOE detector catches what RoomPlan misses, like bikes, plants and guitars. A second on-device classifier, which we trained, checks each find and corrects or drops mistakes. The room comes back as a 3D voxel dollhouse, with every piece where it stood and colored from the camera frames. When you tap Done, the scan is written to SpacetimeDB as a room full of items, and the agents start working on it immediately.

2. Price your items with real market data (Apify + x402): The moment an item appears, our vision agent picks it up, and Claude names it from the scan's photos plus its LiDAR size. The pricing agent then needs to know what this exact thing actually sells for, so it runs Apify Actors that scrape eBay sold listings and Facebook Marketplace. When vision isn't sure which model something is, it runs a Google Lens search through Apify. Claude filters out comps that aren't the same item, and the estimate comes from what's left.

The agent pays for the data it gathers itself, using Coinbase x402. Each comps report costs $0.01 in USDC on Base Sepolia, paid from the agent's own CDP wallet. We use USDC and Coinbase instead of credit cards as credit card fees would be much greater than the $0.01 cost. We limit each agent’s spending by placing a hard cap of $0.10 per transaction and $5.00 per day. Failed spending attempts are logged, ensuring we prevent and find potential rogue agents.

Before anything is signed, code checks the agent's budget and a per-call maximum. Money is also checked out before it is spent, ensuring that many agents cannot place many simultaneous calls and exceed their budget. Before an item is listed, a safety agent can pay a third-party x402 service $0.002 to check the item's brand against product recalls. This is the agent economy we wanted to show: agents paying for the data they need per request, within limits they can't exceed.

A sort agent then suggests keep, sell, donate or trash, with a reason ("worth $30, costs ~$24 to move"). You go through the suggestions as a stack of flip cards. Moove never decides sentimental items for you. Roommates join your room with a 6-character code, and SpacetimeDB keeps everyone's phone in sync as they sort.

3. Sell and buy items (Auth0 + SpacetimeDB): Claude writes the eBay listings. A buy agent works out what the new home still needs, finds deals with Apify, screens each one for fraud (it never buys a likely scam), and checks out through a Visa Acceptance sandbox. Anything over your limit stops and waits for you. Auth0 is how the agent reaches you: through Auth0 for AI Agents (CIBA), it sends a Guardian push to your phone saying, for example, "sell 420.00 USD: Herman Miller chair." The amount comes first, so a scraped title can't pose as the price. The agent continues only after Auth0 confirms that you approved it. The same Auth0 login is your identity in SpacetimeDB, so the database itself enforces who can approve what: roommates can approve listings, but only you can approve a purchase. Every x402 payment, card charge and refusal shows up as a live receipt, so you can always see what your agents spent and why.

4. Plan your new home: Paste a Zillow, Redfin or Realtor.com link, or use the demo house. Claude reads room sizes from floor-plan screenshots. Everything you kept flies from its spot in your old room into the new home, along with what the buy agent bought. Pieces are arranged by interior-design rules: a bed with nightstands, the sofa facing the TV, clear walkways. Moove also packs everything into numbered boxes with printable QR labels and loads a 3D moving truck.

How we built it

One difficulty was that the Apple roomplan API only captured the bare bones features of a room: the walls, the floor, the entrances, and large structures. It also could not identify specific products, which was necessary for estimating the prices they could sell for. Thus, we spent a significant chunk of time choosing and fine-tuning image classification models that could properly identify all the notable objects in a room. Ultimately, we used Claude Vision and fine-tuned YOLO11. For price estimates, we used Claude Sonnet as a prior, and pulled comps from eBay to modify the prior. We measured the RMSLE on Mercari sold listings to test various ways to estimate the price and settled on our current method.

We experimented with realistic 3D models and then decided to use Voxel models that still captured the features of each object while stylizing it to be aesthetically pleasing. There was some difficulty matching the colors to the right objects and getting the shapes right from only a name and a size (for example, a wheelie chair could be accidentally interpreted as a wooden chair). Additionally, the fly-in to the new home at first was very arbitrary: objects were scattered randomly across rooms. However, we specified laying out furniture according to interior design rules: one bed per bedroom, sofa facing the TV, etc. A significant portion of time was also dedicated to making the UI more intuitive and creative (a binder layout for inventory instead of the standard grid, a poster wall for listings, animations for the homes, a truck visual for packing) as well as making sure that it was not overstimulating.

On the commerce side, we wanted to build something that was secure. Hence, we decided that all our agents would have individual spending limits, daily spending limits, and a log of all successful and failed payments. We had some difficulty using CyberSource (we were not able to set up a payment system for our agents), so we opted to use Authorize.net instead. We also added a feature to make sure decisions were being verified with the user. Hence, we used Auth0 to verify all purchases/sales that were made over $100.

For the backend, we wanted every phone and every agent to see the same state in real time, so we built it on SpacetimeDB: when one person sorts an item, a roommate in the same room sees it change instantly. Our agents run in a separate Node worker, and every step they take is logged, so the app can show exactly what each agent did, paid for, or refused. The pricing agent pays a small amount in USDC over x402 every time it pulls comps through Apify, and the buy agent screens every deal for scams, using rules for things like off-platform payment requests along with a small AI-text classifier we trained ourselves.

What’s next?

Outside of a demo version, instead of simulating the process of selling on eBay using their sandbox, the agents would post listings directly on eBay.

While our Apify actors help us decide where to sell our items, we currently don’t have agents that decide where to donate other items, if we would like to.

We hope to expand our product to serve the consumer real estate market, helping realtors and consumers decide which house to buy and how to move into it.

Built With

  • anthropic-api
  • apify
  • arkit
  • auth0
  • authorize-net
  • base-sepolia
  • claude
  • coinbase-cdp
  • core-ml
  • cybersource
  • ebay-api
  • github-actions
  • node.js
  • realitykit
  • roomplan
  • spacetimedb
  • swift
  • swiftui
  • typescript
  • usdc
  • visa-acceptance
  • x402
  • xcodegen
  • yoloe
  • zod
Share this project:

Updates

Submission history