# Zimba
Zimba turns an everyday person's house dream into a constrained concept, an
explainable conceptual cost range and a practical savings path. It is designed
for Uganda and deliberately avoids CAD-style complexity.
## Current vertical slice
- Guided bungalow or two-storey dream brief with safe "not sure" defaults
- Three constrained proposals derived from the same brief
- Semantic 2D floor plan and interactive Three.js exterior/cutaway
- Versioned, data-driven Tier 1 conceptual cost model in UGX
- Site uncertainty represented as a range rather than silently treated as zero
- Savings timeline with live scenario controls
- Local browser persistence for the initial owner test
- Responsive, keyboard-accessible workflow with automated Axe checks
This release is a planning aid. It does not produce approved architectural
drawings, a tender BOQ or a professional valuation.
## Run locally
Requires Node.js 22 or later.
```bash
npm install
npm run dev
```
Open `
localhost`.
## Quality gate
```bash
npm run check
```
The gate runs strict TypeScript, ESLint, domain tests, a production build, and
Playwright journeys with automated accessibility checks.
## Architecture
- `src/` — Next.js application and visualization layer
- `packages/domain/` — pure concept, estimate and savings logic, resolved through
the TypeScript path contract
- `data/rules/` — versioned planning assumptions used at runtime
- `data/catalogue/` — provisional public-price observations
- `data/schemas/` — machine-readable domain contracts
- `docs/phase-1/` — normative product, data and validation specifications
- `data/research/` — Phase 0 Uganda evidence and explicit gaps
The domain module is intentionally independent of React and Three.js so the
same calculations can later power web, mobile and desktop shells.