The full record of what's shipped, in order, with what changed and why. The repo's RELEASES.md is the source of truth — this page is the readable mirror.
SHIP Public principles page with 10 hard commitments (no commission-ranked gear, no dark patterns, no data sale, plain pricing, public scoreboard) — written so you'd notice if we broke them.
SHIP About page with the founder story (Austin, two filmmakers, why this exists). Real name, real email, real reachable.
SHIP Public changelog page (this one) — every release dated and described, mirrored from the repo's RELEASES.md.
SHIP Hobbyist tier €4/mo — non-commercial alternative to Pro for enthusiasts. Includes solver, theater seating, 9.2.6, but no branded PDF / DWG export.
SHIP Free tier expanded: up to 7.2.4 Atmos layouts (was 5.2.4), unlimited local scenarios (the prior "save 1" cap was promised on the landing but never enforced — the landing now matches reality).
SHIP Typography: swapped JetBrains Mono → Geist Mono across all surfaces. Less aggressive slab terminals, pairs better with the Fraunces warmth.
SHIP Generic starter defaults — new visitors no longer land on Jared's personal BHK-212 cinema. Plain 6000×3500×2700 mm room, 5.1.2 layout, no gear pre-selected.
SHIP Legal stub pages live: /privacy, /terms, /refund, /affiliate-disclosure. Branded, honest about being placeholders. Unblocks the App Store privacy-policy URL requirement.
SHIP README.md rewrite, CLAUDE.md sync, api/README.md — all internal docs caught up to v6.10 reality.
FIX SNAPSHOT_KEYS completeness: cabinet_id, room_rotated, side_zoom, plan_zoom, side_pan, plan_pan were silently absent; saved scenarios now restore zoom + pan + cabinet selection.
FIX Autosave-on-unload: pagehide + beforeunload listeners flush the 3-second debounce so quick tab-closes don't silently drop edits.
FIX SVG accessibility: #svg_side and #svg_plan got role="img" + descriptive aria-label.
Renamed working directory from Code/ThrowStudio/ to Code/cinemap/ so the filesystem matches the GitHub repo + brand canon. git worktree repair against each Claude worktree fixed gitdir pointers.
SHIP L/R stand height is now adjustable. Speaker Placement modal's Mount column shows an inline mm input — type your real stand height and the 3D scene matches. Auto-default puts the tweeter at ear height.
FIX Distortion-free 3D camera. Replaced the default 50° vertical FOV (which barrel-distorted at room edges) with a calibrated pipeline: 35° vertical for overview (~50 mm full-frame lens), and seat FOV computed from actual screen geometry so the screen subtends ~55% of the vertical view — meaning the screen looks the same angular size in the render as it would to your real eyes from the listening position.
SHIP Bookshelves used as L/R no longer sit on the floor. Auto-detected: any L/R speaker shorter than 750 mm gets put on a stand sized so the tweeter lands at ear height.
SHIP "Take Me There" now shows a different now-playing image on the projection screen for each of the 8 personas (Measurementalist gets a frozen REW chart, Vibe Engineer gets a zen garden, Black-Level Monk gets pure black with a single pinhole star, etc.).
SHIP "After Dark" pill in topbar flips the entire app to a dark cinema-room theme. Persists in state.theme, travels in share URLs.
FIX "Cones" layer toggle now also gates the projector beam pyramid + eye-to-screen sightlines in 3D (previously only side+plan). Behavior is consistent across all four views.
PERF View-tab clicks (Split / Side / Plan / 3D) no longer block paint with a synchronous Three.js rebuild. INP dropped from ~880ms to <50ms on click.
SHIP Floating toolbar in 3D pane after Take Me There: ● Center snaps gaze back to the screen center over 600 ms; ↻ Arc runs a slow ±30° head-turn auto-pan over 6 seconds (forward → right → forward → left → forward).
SHIP When Stripe isn't configured, clicking any plan tier activates that tier locally with a PREVIEW-* license. Full Pro features immediately; once Stripe lands, the same button starts real checkout.
SHIP "Take Me There" animates camera from orbit → seated at MLP over 1.8s, then projector "warms up" with screen-emissive flicker, then speakers do an L→C→R→surrounds→heights→sub sound-check bounce.
SHIP End-to-end Pro tier scaffolding: license model, 5 Vercel serverless endpoints (/api/checkout, /api/license, /api/portal, /api/webhook, /api/spec-fetch), upgrade modal, feature-tier map. Every endpoint 503-graceful when Stripe env vars missing.
SHIP User-submitted gear via paste-URL spec-fetch wizard (Claude reads the manufacturer page, returns structured specs).
SHIP Real PDF export (replacing browser print dialog). LiDAR + visionOS roadmap detail in docs/ios-roadmap.md.
SHIP Repo-side source of truth: RELEASES.md + BACKLOG.md.
v5 was the consolidation phase: the geometry engine took its current form, the persona quiz shipped, dispersion cones became a first-class layer, share URLs went hash-encoded, the print sheet expanded to 6 pages. Detail in the repo's RELEASES.md.