I build things that make invisible stuff visible, energy data, sound, space and the human body.
An educational, open source Apache Iceberg data platform you can run locally with Docker Compose. An administration portal manages teams, users and databases on top of Apache Polaris, PostgreSQL and RustFS, while a separate user portal gives every team shared marimo notebooks with isolated execution, including examples that write synthetic energy measurements with PyIceberg and query them natively with DuckDB.
Python FastAPI Apache Iceberg Apache Polaris DuckDB marimo RustFS PostgreSQL Docker
馃幍 VoltViz
A dynamic, real-time music visualizer inspired by Winamp & Sonique. Synchronize with your system audio, microphone or Music Assistant (through Sendspin) and watch your music come alive, 50+ visualization styles and switchable Modern / Win95 / Winamp / CRT interface skins.
React TypeScript Three.js WebGL Vite Docker
An add-on repository for Home Assistant bundling four apps:
- VoltViz, the music visualizer above, running right inside Home Assistant
- DSMR Reader, extract, store and visualize data from your smart meter's DSMR protocol
- DSMR Datalogger, the standalone logger that feeds it
- Metabase, the easy, open source way for everyone to ask questions and learn from data
Python Shell Docker Home Assistant
Travel through space and discover countries, the moon and all the planets!
A free voyage of discovery for kids: spin the globe, fly to the moon and the planets, and steer everything with your hand via the webcam. No install, no account, just open it in a browser.
Three.js globe.gl d3 MediaPipe Hands WebGL Vite
onaspacejourney.com ENG 路 opruimtereis.nl NL
馃珋 Body Journey
Travel through your body: peel away the skin and discover muscles, organs and bones!
A free journey of discovery through the human body for kids: peel away skin, muscles and organs layer by layer, point at bones and muscles, and control everything with your hand via the webcam.
Three.js MediaPipe Hands WebGL Vite
onabodyjourney.com ENG 路 oplijfreis.nl NL











