docs: add constitution, spec, plan, and data model for InteriorScan MVP
- 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
This commit is contained in:
@@ -1,3 +1,59 @@
|
||||
# interiorscan
|
||||
# InteriorScan
|
||||
|
||||
Interior photogrammetry SaaS - Doom-map style 3D walkthroughs for real estate
|
||||
**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
|
||||
Reference in New Issue
Block a user