Scan your home, turn it into a live 3D model, and make it your TV's home screen — no ads, no "recommended for you" — with your lights and devices wired in. Flip a lamp from the remote: it turns on in real life and in the 3D. Select a lamp and the 3D shows you which one it is. Same home on your phone and in your Mac's menu bar.
This repo is built to be vibe coded: point your AI coding agent at it and let it walk you through. It contains:
- a playbook for AI agents (
AGENTS.md→playbook/): an interview to fit your hardware, phases with explicit "done" checks, and the pitfalls that cost us hours (playbook/gotchas.md); - a working reference implementation you adapt rather than rewrite.
git clone https://github.com/Rod292/3d-home-tv-os && cd 3d-home-tv-os
pnpm install # Node >= 24, pnpm 10
pnpm --filter @appart3d/web build
HOME_BRIDGE_MOCK=1 pnpm --filter @appart3d/home-bridge start
open "http://localhost:8787/?view=3d&orbit=full" # demo apartment with simulated lightsThen open your agent in the repo and say something like:
Read AGENTS.md and help me build this for my home. My TV is a … , my lights are … .
Claude Code, Codex, Cursor, Copilot, Gemini CLI, Jules, Aider and Windsurf all pick up the
instructions (AGENTS.md, plus thin CLAUDE.md / GEMINI.md / .cursor/rules /
.github/copilot-instructions.md pointers).
| Phase | You get | Reference code |
|---|---|---|
| 0 · Start | A plan for your TV, lights and machines | — |
| 1 · Scan | Your rooms, walls and furniture (iPhone LiDAR, or drawn) | apps/ios, packages/roomplan-import |
| 2 · 3D model | A low-poly "dollhouse" of your home, editable in the browser | apps/web, packages/catalog, packages/scene |
| 3 · Bridge | Hue, Home Assistant (Tuya, Zigbee, TVs…), HomePod → one live API | apps/home-bridge, packages/home |
| 4 · TV | The new home screen: 3D + lights panel + dock + screensaver | apps/tv-launcher |
| 5 · Phone & desktop | iPhone app + widgets, macOS menu-bar widget | apps/ios-home, apps/macos |
| 6 · Always on | Runs 24/7 (Raspberry Pi or an awake Mac) | — |
Verification · Recovery (undo on the TV) · Privacy
- TV: Google TV and Android TV (e.g. Philips, Sony, TCL, Hisense, Chromecast with Google TV). Apple TV, Samsung and LG home screens can't be replaced — add a Google TV dongle.
- Lights: Philips Hue directly; anything Home Assistant supports.
- Scan: iPhone/iPad Pro with LiDAR for the scanner app; otherwise draw the plan.
- Always-on host: macOS (launchd) or Linux (systemd, Raspberry Pi).
Everything done on the TV is reversible (recovery), and agents are told to
ask before each TV step and before switching real devices. The stock Google TV home stays installed
as a fallback: if the 3D crashes, the dock and lights keep working; if the launcher crash-loops, the
Home key goes back to Google TV on its own. Your scan is the inside of your home: the
.gitignore keeps scans, your scene, tokens and device config out of git
(privacy).
- Tested end to end on one setup: a Philips Google TV, Philips Hue, Home Assistant (Tuya fan, Philips TV), a HomePod mini, a Mac as host. Other TV brands and hosts should work but are untested.
- The TV launcher follows the TV's language (English, French). The web editor and the iPhone/Mac apps are still in French — ask your agent to translate them.
- Furniture is procedural: unusual pieces need a small builder (your agent can write it from a photo — see phase 2). The scanner needs an iPhone/iPad Pro with LiDAR and Xcode.
- The Raspberry Pi path is documented, not yet battle-tested.
A personal project shared as-is: it runs daily on one Philips Google TV with Hue + Home Assistant. Expect to adapt things to your home — that's what the playbook is for. Issues and PRs welcome.
MIT licensed.