Snugg app icon: a coral sofa inside a glass room

Passion project · 2026

Snugg.

An iPhone app that scans your rooms and your own furniture, so you can plan a move before lifting a box.

Role
Solo: problem, scope, design and build
Built with
SwiftUI + RoomPlan (LiDAR), vibe-coded in Claude Code
Started
Planning my own move into a small place
Status
Working MVP · TestFlight next
Snugg on three iPhones: scanning a sofa, a 3D layout of a two-floor home, and a 2D floor plan with furniture placed

The problem

A small place, and furniture I already own

419 square feet across three rooms. Before moving day I wanted to know which of my pieces fit, and where.
Problem statement

I needed to plan a tight layout with my real furniture at its real size, without measuring every piece by hand or settling for catalog stand-ins.

How might I scan both the room and my things, then arrange them like a game?

Where I started

Even my own company’s app stopped halfway

Room Scanner · Measure Square Corp

Great at rooms, not at my stuff

  • I redesigned Room Scanner at work, so I tried it first. It nailed the space: walls, doors, windows and square footage for every room in minutes.
  • But furniture comes out as generic grey boxes, and you can’t move them. It’s built to measure floors for estimates, not to plan a home.

What else I tried

Every app solved half the problem

App Scans the room Uses my own furniture No tape measure Plan the layout
Room Scanner YesGrey boxesYesCan’t move items
magicplan YesGeneric catalogYesYes
Polycam Not for layoutsBeautiful 3D scansYesNo
Placed Space YesYesType in every sizeYes
IKEA Kreativ YesIKEA onlyYesYes
Snugg YesScanned, real sizeYes2D & 3D

The gap: apps scanned the room or my furniture. None did both without a catalog or a tape measure.

How I built it

From pain point to v8.8 in five days, no Figma

5 daysFrom “does an app for this exist?” to v8.8
16Builds in the last three days alone, from v7.7 to v8.8
17Swift files: SwiftUI, RoomPlan, ARKit, SceneKit, VisionKit

The loop, build after build

  1. 1 · AskI describe what I need, or what felt wrong in the last build.
  2. 2 · WriteClaude writes the Swift, then explains the change in plain words.
  3. 3 · BuildI compile it in Xcode on my MacBook and install it on my iPhone.
  4. 4 · TestAt home, even at the gym. Errors and feedback go back as screenshots.
MVP scope · built
  • Multi-room scans, floor by floor
  • Places with floors & layouts
  • Layouts across the whole place
  • My Stuff + wishlist
  • Origin tags
  • Single-object scan & rescan
  • IKEA tag scanning
  • Share & import places

The app

Scan it all, then arrange it like The Sims

Scanning a living room: walls outlined in white, the sofa highlighted in purple, with chips for Sofa, Stairs and Storage Places list: one place with 2 floors, 6 rooms and 2 layouts, marked Current
01 · Scan the whole place

Room by room, floor by floor

  • Scan one room at a time. Walls show white, furniture shows in color, so you can see what was caught.
  • Rooms stack into a Place with floors and layouts. No LiDAR? Start from a rectangle, or import a place someone shared.
Single-object scan: a table outlined in orange, with Box and Tag options and a Save button
02 · Scan my furniture

My couch, not a catalog couch

  • Sweep the floor, then tap the piece you want. Its real size is captured. Rescan if it comes out wrong.
  • Not detected? Box it yourself: four taps with LiDAR mark the corners and height. Tag reads an IKEA price tag instead.
My Stuff: TV stand, shoe case, bar cabinet, dresser and night stand, each with real dimensions Filter menu: All places, Mine and wishlist, or furniture that stays with a property
03 · My Stuff & wishlist

What I own, what I want, what stays

  • Every scanned piece lives in My Stuff with its real dimensions.
  • Every piece belongs to me, my wishlist, or a property, like a landlord’s couch or a built-in that stays when I leave.
2D floor plan with an L-sofa, table and chairs placed, and a translucent wishlist IKEA dining set 3D view of a two-floor home with colored furniture
04 · Arrange

Try it before you buy it, or move it

  • Drag pieces in 2D or 3D, with snapping and undo, then view every floor at once in 3D.
  • Wishlist pieces show translucent, next to solid colors for my own and the landlord’s, so I can test an IKEA dining set before buying it.
  • Lock pieces to keep them out of the way while moving others. A property’s own pieces, like a landlord’s couch, start locked so they can’t be moved by accident; unlock them anytime.
  • Keep several layouts per place and compare.

How it got here

Product calls I made along the way

Claude wrote the code. Deciding what to build, and how it should feel, was my job. These came from using it in real places.

Found at the gym

Box it yourself

  • My gym machines never got a box. Apple’s scanner only knows 16 object types, so open frames like racks, or my keyboard on its X-stand, fall through.
  • After 12 seconds with nothing new, a nudge offers to box it by hand: aim at two corners, the far side and the top, and LiDAR measures the rest.
  • It happens inside the same scan: Apple’s detection keeps running, so I can box one piece and keep covering the room.
First launch

Scan first, name it later

“I don’t want property to be the first thing they see.” The app opens straight into scanning; the place gets a name only when you finish a floor.

Why: setup screens stand between you and the one thing you came to do.
Planning IKEA trips

A Scan button in the tab bar

Scanning happens out in the world; planning happens on the couch. So Scan got its own tab with just two choices: a place or furniture.

Why: in a showroom aisle you need one tap, not a menu inside a layout screen.
IKEA showroom

Whose furniture is it?

A showroom scan isn’t my stuff. Every save asks Me / Wishlist / The property, and remembers the last answer for a run of showroom scans.

Why: the same scanner serves my home, a store and a rental.
Planning a small place

Warn, don’t block

Placing more than you own shows a yellow “3 placed · you have 2”, like the “Tight walkway” note. Drag a piece onto the trash bar to remove it, no confirmation; Undo brings it back.

Why: planning is trial and error. Friction belongs on real data loss, not on experiments.
Inspired by The Sims

Move furniture in 3D

Only the selected piece drags; anywhere else orbits the camera. Walls fade while you drag so pieces can’t hide, and snapping works live.

Why: one rule ends “did I move the sofa or the camera?”
Caught reading my own UI

Say what actually happens

“Add to My Stuff only” read as if the floor plan wouldn’t be saved. I reframed the options as a question about the furniture, with a note that the floor plan is always kept.

Why: a label that sounds like data loss stops people from scanning.

Where it’s going

Built for me first, then for friends

  1. ProblemMoving into 419 sq ft with furniture I already own.
  2. ResearchTried 5 apps; each solved half the problem.
  3. Buildv8.8 in five days with Claude Code, tested at home and the gym.
  4. NextTestFlight with friends, then my own move.

Want a demo?

Snugg is still in progress. I’m happy to walk through the app and the decisions behind it.