3D Home TV OS
His apartment in live 3D is now the TV's home screen, lights wired in
By Rod Pers (@srepdor)
- Posted
- GitHub stars
- 27 (GitHub)
- Likes on X
- 831 (X post)
Build sheet
- Board
- Mac or Raspberry Pi as the always-on host
- Other parts
- Google TV or Android TV (tested on a Philips Google TV), Philips Hue or other Home Assistant lights, iPhone or iPad Pro with LiDAR (optional, for the scanner app)
- AI model or service
- Claude Code (the creator's build), AGENTS.md playbook for coding agents (Claude Code, Codex, Cursor, Copilot, Gemini CLI and others)
- Difficulty
- Advanced · Our suggestion
- License
- MIT (source)
Parts list
- Google TV or Android TV (e.g. Philips, Sony, TCL, Hisense, Chromecast with Google TV) [6]
- Google TV dongle [optional] [6]
- Smart lights (Philips Hue directly, or anything Home Assistant supports) [7]
- iPhone or iPad Pro with LiDAR [optional] [8]
- Always-on host (macOS (launchd) or Linux (systemd, Raspberry Pi)) [9]
Prices and notes: Parts and requirements
Steps
- Skill level
- Advanced
- Phase 0: a plan for your TV, lights and machines
- Phase 1: scan your rooms (iPhone LiDAR, or drawn)
- Phase 2: a low-poly 3D model, editable in the browser
- Phase 3: the bridge (Hue, Home Assistant, HomePod) as one live API
- Phase 4: the new TV home screen (3D, lights panel, dock, screensaver)
- Phase 5: iPhone app and widgets, macOS menu-bar widget
- Phase 6: always on (Raspberry Pi or an awake Mac) [16]
Full instructions: View original
Like this build? Get the weekly builds
Get the best new AI hardware builds every Thursday. One email a week, free.
Built something? Submit a build
Part of: Hack a gadget you already own →
Overview
Rod Pers (@srepdor) vibe coded his own TV OS with Claude Code: his Philips Google TV's home screen is now a live 3D model of his apartment, scanned with an iPhone. Hue lights and a ceiling fan (through Home Assistant) switch from the remote and light up in the 3D in real time, and the same 3D runs in an iPhone app and a Mac menu-bar widget. The repo (Rod292/3d-home-tv-os, MIT) is an AGENTS.md playbook for coding agents plus the working reference implementation.
What it does
- “No more ads: replaced with a live 3D model of my apartment. Lights + ceiling fan wired in, they turn on in the 3D in real time.” [1]
- Flip a lamp from the remote and it turns on in real life and in the 3D; select a lamp and the 3D shows which one it is. [2]
- The same 3D home runs on the iPhone and in the Mac's menu bar: “tap a lamp in the model to switch it, everything syncs across the TV, the phone and the Mac in real time.” [3]
- The repo is built to be vibe coded: an AGENTS.md playbook interviews you about your hardware, then goes phase by phase with explicit “done” checks, on top of a working reference implementation. [4]
- The stock Google TV home stays installed as a fallback, and everything done on the TV is reversible. [5]
Parts and requirements
| Part | Spec / notes | Needed | Price |
|---|---|---|---|
| Google TV or Android TV [6] | e.g. Philips, Sony, TCL, Hisense, Chromecast with Google TV | Required | |
| Google TV dongle [6] | Only for Apple TV, Samsung and LG sets, whose home screens can't be replaced | Optional | |
| Smart lights [7] | Philips Hue directly, or anything Home Assistant supports | Required | |
| iPhone or iPad Pro with LiDAR [8] | For the scanner app, which also needs Xcode | Optional | |
| Always-on host [9] | macOS (launchd) or Linux (systemd, Raspberry Pi) | Required |
- Computer for setup: Node 24 or newer and pnpm 10
- Requirements source: [10]
How it works
Per the creator: the apartment was scanned with an iPhone and turned into a 3D model, a small bridge on his Mac talks to Hue and Home Assistant, and the TV runs a custom Android launcher with the 3D on top, the lamps in a glass panel and only the apps he uses. The repo walks your coding agent through 7 phases (0 to 6): plan, scan (iPhone LiDAR, or draw the plan), 3D model, bridge, TV launcher, phone and desktop, always on. The stock Google TV home stays installed as a fallback.
| Layer | Component | Runs on |
|---|---|---|
| Scan | iPhone LiDAR scanner app (Apple RoomPlan) [11] | iPhone or iPad Pro |
| 3D model | 3D web app (React, three.js): editor and home view [12] | Browser, served by the bridge |
| Bridge | Node bridge: Hue, Home Assistant, HomePod and the TV behind one HTTP/SSE API [13] | Mac or Raspberry Pi |
| TV home screen | Android/Google TV launcher: 3D, lights panel, dock and screensaver [14] | Google TV |
| Phone and desktop | iPhone/iPad app with widgets, and a macOS menu-bar widget [15] | iPhone and Mac |
Setup effort
- Skill level
- Advanced
The path: Phase 0 to Phase 6, from a plan for your TV, lights and machines to running 24/7 (Raspberry Pi or an awake Mac). [16]
Limits and caveats
- Tested end to end on one setup only: a Philips Google TV, Philips Hue, Home Assistant (Tuya fan, Philips TV), a HomePod mini and a Mac as host. Other TV brands and hosts are untested. [17]
- Apple TV, Samsung and LG home screens can't be replaced; those TVs need a Google TV dongle. [6]
- The web editor and the iPhone and Mac apps are in French (the TV launcher follows the TV's language, English or French). [18]
- The scanner needs an iPhone or iPad Pro with LiDAR, and Xcode. [19]
- The Raspberry Pi path is documented, not yet battle-tested. [20]
- A personal project shared as-is: expect to adapt things to your home. [21]
Hardware
- Google TV or Android TV (tested on a Philips Google TV)
- Philips Hue or other Home Assistant lights
- iPhone or iPad Pro with LiDAR (optional, for the scanner app)
- Mac or Raspberry Pi as the always-on host
Credits and links
- Rod Pers (@srepdor): Creator
- Gathin (@gathint): CleanYourTV, the TV hack this one took a step further
- License: MIT (source)
Sources
- x.com/srepdor/status/2112207244096065661
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L5-L8
- x.com/srepdor/status/2112207251276759343
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L10-L16
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L61-L63
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L53-L54
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L55
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L75
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L57
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L21-L25
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/AGENTS.md?plain=1#L49
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/AGENTS.md?plain=1#L52-L53
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/AGENTS.md?plain=1#L53
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/AGENTS.md?plain=1#L55
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/AGENTS.md?plain=1#L56-L57
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L36-L46
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L70-L71
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L72-L73
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L74-L75
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L76
- github.com/Rod292/3d-home-tv-os/blob/0190ba88835d629437aff170528512264ae537f6/README.md?plain=1#L80-L81
This page is a short summary written by HardwareLab. Build steps, code and photos belong to the creator; follow “View original” for the full project.
Featured? Add this badge
Built this? Paste the badge into your README. It links back to this page.
Markdown
[](https://hardwarelab.dev/projects/3d-home-tv-os/?utm_source=badge&utm_medium=referral&utm_campaign=launch_2w)HTML
<a href="https://hardwarelab.dev/projects/3d-home-tv-os/?utm_source=badge&utm_medium=referral&utm_campaign=launch_2w"><img src="https://hardwarelab.dev/badge.svg" alt="Featured on HardwareLab" width="188" height="20"></a>Related builds
All 13 in Smart Home
Pokemote
A Pi agent that plays shows on an LG TV without the WebOS UI.
- Raspberry Pi
- LG WebOS TV
Intermediate74
TECHO5: Echo Show 5 as a Home Assistant satellite
Old Echo Show 5s, Dots and Spots reborn as local Home Assistant voice satellites.
- Amazon Echo Show 5 (1st/2nd gen)
- Echo Dot 2
- Echo Spot
Advanced314DIY Skylight-style family calendar
Skipped the subscription and built it with a Pi and Claude Code.
- Raspberry Pi
- display
Beginner