Skip to the projects

Open to new opportunities

Hi, I’m Fiona (she/her).

Engineering experiments, shipped with care.

I build software end to end: 3D games in the browser, phones that play together without a server, music and video tools that never upload a file, and network tools and an audio plugin in Rust. Every project here comes with tests, CI, documentation and an interface in English and German.

Future Gadget Lab · Low Earth Orbit

Fiona’s avatar, with a little satellite in orbit
Projects
11
Mostly written in
TypeScript · Svelte · Rust
Runs on
Web · Android · Windows · macOS · Linux
Interfaces in
English · Deutsch

01 · Projects

Projects

Eleven recent projects from my GitHub, by topic. Each one runs, is open source and documented: open the details for more screenshots, how it is built, and links to its docs, releases and packages.

Games

Gadget No. 01 since Nov 2026

Wormhole Surfing Link to Wormhole Surfing

A 3D browser game: surf a wormhole on a cute spaceship and warp into strange worlds full of treasure.

Why
How far does code alone go? Not a single image, model or sound file: the ship, the chibi pilot, eight worlds, the music and every sound are generated in code, and the whole game still has to hold its frame rate on a phone.
What
Steer through a swirling tunnel, collect orbs for speed, dodge sparks and pick a warp hole before one picks you. Behind it, the pilot explores a world on foot and opens the treasure waiting there; rarer holes and longer rides bring rarer finds for the collection.
Stack
Runs on
  • Browser
  • Offline & installable
  • Android

Gadget No. 02 since Oct 2026

Vibe Puzzles Link to Vibe Puzzles

Six logic puzzles with unique solutions, generated on the device, with hints that explain the next step.

Why
Puzzle apps like to hide their best puzzles behind ads and subscriptions. Here, deterministic algorithms make every puzzle with a guaranteed unique solution, and when you are stuck, a hint shows not just what to do next but why.
What
Tetroid, Pinwheel, Sudoku, Calcudoku, Loop and Pipes in several sizes and levels, plus daily, weekly and monthly specials. A puzzle ID gives the same puzzle on every device, and an optional server syncs progress and ranks solves.
Stack
Runs on
  • Browser
  • Offline & installable

Gadget No. 03 since Oct 2026

Vibe Laser Link to Vibe Laser

A laser logic puzzle: place mirrors, prisms and filters until every coin is lit in exactly its color.

Why
A love letter to the puzzle classic Aargon Deluxe (2001): its rules rebuilt from a written specification, with an original name, art and levels, so that it plays like the original without copying it.
What
Nineteen optical parts, from mirrors and prisms to color converters and polarizers, and six hazards and actors: explosives, fuel cells, black holes, slimes, robot mines and spaceships. Seven level packs, a level editor, and levels that travel as links.
Stack
Runs on
  • Browser
  • Offline & installable

Networking & peer to peer

Gadget No. 04 since Nov 2026

Spielekiste Link to Spielekiste

Board, card, dice and party games for phones side by side, connected directly by QR code, without internet or a server.

Why
A game night shouldn’t need accounts, ads or the Wi-Fi password. A box of classics where the phones on the table talk directly to each other, over a hotspot or by Bluetooth, and nothing leaves the table.
What
Twenty-two games of four kinds: tactics such as Nine Men’s Morris, Draughts and Chinese Checkers; luck and bluff such as Ludo, Mäxchen and Werewolf; party games such as City, Country, River; and real-time games such as Light Racers and an air hockey rink that runs across two phones. Up to eight phones sit at a table, or two to six players share one laptop.
Stack
Runs on
  • Browser
  • Offline & installable
  • Android

Gadget No. 05 since Oct 2026

PortRedirect Link to PortRedirect

Glue your frontend to the backend: a lightweight TCP forwarder that tunnels connections over QUIC.

Why
A home server behind a router can’t be reached from outside. PortRedirect lets a small, cheap public server take the connections and pass them through an encrypted tunnel that the home server opens itself: no port forwarding, and almost as if the big machine were on the internet.
What
The server listens for TCP connections, on port 443 for example, and tunnels each one as a stream over a persistent QUIC connection; the client hands it to the target service, such as localhost:8443. Both sides authenticate with a pre-shared key, and the client pins the server’s certificate.
Stack
Runs on
  • Linux
  • Docker

Gadget No. 06 since Oct 2026

Spark Hunt Link to Spark Hunt

A real-time game for phones lying side by side, with no internet and no server, not even to connect.

Why
The project is about the connection: can phones play together in real time with no server at all, not even for signalling? The game is small on purpose, and the networking grew into three libraries that other apps use now.
What
Every player steers a glowing dot, and whoever reaches a spark first scores, while mines cost points. The phones swap their WebRTC offers by scanning each other’s QR codes over a shared Wi-Fi or hotspot, or connect by Bluetooth in the Android app; up to eight play together.
Stack
Runs on
  • Browser
  • Offline & installable
  • Android

Music & audio

Gadget No. 07 since Nov 2026

AudioRef Link to AudioRef

A VST3 and CLAP plugin that evens out your headphones, so that budget and consumer models sound closer to neutral studio monitoring.

Why
Mixing on a Bose QC25 or a Sony WH-1000XM4 means mixing against their bass and treble. Measurements and correction curves for them exist; AudioRef puts them where the mix happens, as the last plugin on the master, with no latency, no clipping and no way for the correction to slip into an export.
What
Pick your headphones and an EQ preset from OPRA, built in for the Bose QC25, the Sony WH-1000XM4 and the AKG K240 Studio, or loaded from OPRA’s database for thousands of others. Or load a measurement and a target curve in AutoEQ’s format, and AudioRef designs the correction itself, to be adjusted with tilt, bass and a limit for boosts.
Stack
Runs on
  • Windows
  • macOS
  • Linux

Gadget No. 08 since Oct 2026

Vibe Soundlab Link to Vibe Soundlab

Drum & bass and chiptunes written as code in Strudel, and a browser player with a mixer, live chords and visuals.

Why
Music as code: writing tracks in Strudel, then building the player I wanted for them, with a real mixer, the chords to play along on guitar, and visuals that follow each track’s arrangement.
What
Thirteen tracks, from atmospheric rollers and bangers to keygen, C64 and Amiga-style chiptunes, each a plain Strudel file that runs on strudel.cc too. The player shows the parts of every track, outlines the notes that sound in the code, and lets you change the code while it plays.
Stack
Runs on
  • Browser

Gadget No. 09 since Oct 2026

musicbanana Link to musicbanana

A free, self-hosted home for your listening history: scrobbling, charts, reviews and statistics.

Why
A project that has been running in one form or another since 2007. A listening history is personal and worth keeping, so musicbanana keeps it on your own server: rebuilt from the 2016 PHP version as a small Rust server with a Svelte interface, and the old database comes along.
What
It takes the plays of every player that speaks the ListenBrainz API, such as Navidrome, and of Spotify through YourSpotify, and turns them into profile pages, charts for any period with their movement, a year in review, a listening clock and comparisons of two profiles.
Stack
Runs on
  • Self-hosted
  • Docker
  • Browser

Gadget No. 10 since Sep 2026

FibeStation Link to FibeStation

An audio-reactive music visualizer that renders HD videos for YouTube and TikTok, right in the browser.

Why
Music deserves pictures, but video editors are heavy and online tools want your files. FibeStation makes both live visuals and finished videos on your own machine: no server, no uploads, rendered frame by frame and smooth on any computer.
What
Two looks follow the beat: a logo in a glowing spectrum ring, and kaleidoscopic feedback tunnels with neon tubes, each with presets that switch with the music. Around them sits a player made for DJs, with a gapless queue, waveforms, hot cues, a beat grid, tempo with key lock and effects.
Stack
Runs on
  • Browser

Everyday

Gadget No. 11 since Sep 2026

Vibe-Stundenplan Link to Vibe-Stundenplan

A weekly timetable in the browser: no account, no backend, no build step.

Why
A timetable for a university week that simply works: open it, fill it in, done. Everything stays in the browser, and the code stays small enough to read in an afternoon.
What
A weekly grid with days to rename, add and remove, time grids from presets such as TU Dresden and RWTH Aachen or fully custom, entries by click or by dragging across slots, and several schedules side by side, exported as readable JSON.
Stack
Runs on
  • Browser

02 · How I build

How I build

The same habits run through all of these projects. Each tile names where they show best.

03 · Tech

Technologies

Everything these projects are built with, by how many of them use it. Pick one to see its projects.