High altitude balloon imagery decoding in the browser with C, JS, and Python
summary
Browser builds of Horus and Wenet demodulators become real: WebHorus and WebWenet compile C demod code into Python modules, build those modules to WebAssembly, and call them from JavaScript with no server. It receives amateur high altitude balloon imagery over USB RTL-SDR, runs as a progressive web app that works offline, and even receives on a phone (Chrome only via WebUSB). Demo shows live image frames, required fiddling with web audio filters, and a sub‑2‑minute build pipeline for deployment.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 1:29Why mix C JavaScript and Python for decoding
- 2:54Amateur ballooning basics
- 5:00Horus binary telemetry
- 6:48Hardware setups
- 8:11Old Linux approach challenges
- 9:15Demo: web receiver
- 11:25Cross-platform goals
- 12:50Python-C interfacing with CFFI
- 15:40Wrapping C for Python
- 16:03Python in browser with Pyodide
- 17:48C libs in Python browser
- 18:53Replacing JS with Python
- 19:54Lightweight telemetry app
- 21:19Progressive web apps and offline functionality
- 22:45Web audio modem issues
- 23:50Web USB limits
- 24:35ARG balloon test
- 25:42Summary and future
- 26:27Question and answer session
related talks
26mReaching for the sky with JavaScript
21mOn the fly WebP decoding with Web Assembly and Service Workers (Main Stage)
30mBuilding hacking tools in JavaScript
19mGetting Data From The Sky
31mFlying Satellites from a Browser
26mBinary Data Adventures in Browser JavaScript
31mSeeing Eye To Eye: Computer Vision using wasmVision
34m2023's most interesting browser APIs
