R2D2-TV implements a local home screen, a private remote-rendered browser, and a push-to-talk voice assistant for webOS TVs by moving sensitive processing off-device to a Linux compute host. The host (spark/) runs a sandboxed Chromium instance, local speech-recognition and intent models, and streams video/audio to the TV over the LAN while the TV supplies display, apps, and remote control input. Voice audio is captured on the TV and sent to the host over mutual TLS; content-protection uses pinned filter rules per disposable browser profile; model inference remains on the host while requested websites and streaming services still contact their providers. Source is organized into tv/, voice/, spark/, protection/, tools/ and includes an offline Home/idle planner and a closed command registry.
The project requires significant, exacting host and TV setup: Python 3.10+, Node 20+, an aarch64 Linux host with the Chromium snap, Xvfb, PipeWire/WirePlumber, FFmpeg with HEVC hardware encoding, and a CUDA-capable GPU plus Python 3.12 for locally pinned models (~10 GB weights). Installing on a webOS TV needs system (root) access and firmware-matching toolchains; several components run as root and patch vendor services, which can void warranties or render a device unusable until recovery. Build, test, and deployment tooling are provided (local build, unittest/Playwright tests, preflight checks) and the code is MIT-licensed with some GPL-3 components; keys, firmware pins, and runtime data must be kept private and re-derived per firmware.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.