3db7e47994
- Constitution: self-hosted first, FPS-grade immersion, mobile-first capture, API-first, open formats - Spec: 6 user stories (upload & process, share & embed, dashboard, API, measurements, billing) - Plan: 6 phases, 50 tasks, Phase 1-3 = MVP core - Data model: Drizzle schema with projects, photos, walkthroughs, processing_jobs, subscriptions
59 lines
2.0 KiB
Markdown
59 lines
2.0 KiB
Markdown
# InteriorScan
|
|
|
|
**Turn apartment photos into navigable 3D walkthroughs.**
|
|
|
|
InteriorScan is a self-hosted SaaS platform for interior photogrammetry targeting real estate. Upload 30-100 photos of a property, the system reconstructs a 3D mesh (COLMAP + OpenMVS), and visitors navigate the space in first-person — like a Doom map of a real home.
|
|
|
|
## Why?
|
|
|
|
Physical property visits are time-consuming and often unnecessary. InteriorScan lets potential buyers walk through a reconstructed interior from their browser, filtering out properties that don't fit before scheduling a visit.
|
|
|
|
## Features
|
|
|
|
- 📸 **Photo-first capture** — iPhone/Android photos as baseline, LiDAR optional
|
|
- 🎮 **FPS navigation** — WASD + mouse (desktop), tap-to-walk (mobile)
|
|
- 🔗 **Share & embed** — public links + oEmbed for listing pages
|
|
- 📐 **Measurements** — room dimensions overlaid on walkthrough
|
|
- 🗺️ **Floor plans** — DXF/PDF export from reconstructed geometry
|
|
- 🔌 **API-first** — every feature has REST API before UI
|
|
- 🏠 **Self-hosted** — PostgreSQL + Valkey + GPU worker, no vendor lock-in
|
|
|
|
## Stack
|
|
|
|
| Layer | Technology |
|
|
|-------|-----------|
|
|
| Framework | Next.js 16 (App Router) |
|
|
| Monorepo | Turborepo + pnpm |
|
|
| Database | PostgreSQL + Drizzle ORM |
|
|
| Cache/Queue | Valkey |
|
|
| 3D Viewer | three.js |
|
|
| Processing | COLMAP + OpenMVS |
|
|
| Auth | better-auth |
|
|
| Billing | Stripe |
|
|
| Lint | Biome 2.x |
|
|
| Testing | Vitest v4 + Playwright |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm dev
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
interiorscan/
|
|
├── apps/web/ # Next.js 16 App Router
|
|
├── apps/processor/ # GPU processing worker
|
|
├── packages/auth/ # better-auth + RBAC
|
|
├── packages/db/ # Drizzle schema + migrations
|
|
├── packages/viewer/ # three.js FPS walkthrough viewer
|
|
├── packages/ui/ # shadcn/ui v4 + Tailwind tokens
|
|
├── packages/utils/ # Zod, neverthrow, error catalog
|
|
└── .specify/ # Constitution, specs, plans
|
|
```
|
|
|
|
## License
|
|
|
|
Apache-2.0 |