Build an Android TV webcam globe app by measuring on the device

A Redditor had Claude Code build Lukarne, an open-source Android TV app with a spinning globe and 3x3 walls of live webcams, testing every choice on a Shield instead of guessing.

Done withClaude CodeinGitHub· Oct 27, 2026

What they did

u/cyberdinn used Claude Code to write Lukarne, a free MIT-licensed Android TV app. You turn a day-and-night globe with the remote, pick a region and get a grid of up to nine live cams: US road cams, Finnish weather cams and round-the-clock YouTube streams. Claude Code wrote the Kotlin and Compose app, an OpenGL ES globe, a Python pipeline for the cam catalogue and a GitHub Actions job that rebuilds that catalogue daily. It also wrote the scripts that build, install and benchmark the app on an Nvidia Shield, and kept a decision log in the repo with each measurement and the options it dropped.

How it went

The first globe, drawn with Compose Canvas, spent 28 ms a frame on land dots alone; the agent moved it to OpenGL ES on its own thread and got about 3 ms and 60 fps. It tested how many H.264 streams the decoder could take, found nine worked, and capped the app at eight. It traced a YouTube cam that froze now and then to a WebView being briefly detached, then checked the fix over a couple of dozen switches. Pulling YouTube frames from GitHub runners failed on a bot check, and the frames were later removed anyway over YouTube's terms.

Worth knowing

Key presses sent with adb skewed the timing, so the agent built an in-app autopilot, and debug builds ran about ten times slower, so only release builds were measured. Check the terms of every cam source before shipping: Windy's cams were dropped because its API bans redistribution. Only tested on one Shield running Android 11.

Try it

With Claude Code· 4 parts to fill in

Build [describe the app] for [target device or platform] in [language and UI toolkit]. Before choosing any approach that affects speed or limits, write a script that builds a release build, installs it on [my device] and measures it there; do not trust guesses or debug builds. Record each decision, the numbers behind it and the options you dropped in a decision log in the repo. Check the terms of every external data source before using it and tell me about any that forbid redistribution. Stop and show me the log after each major feature so I can test it on the device.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related