fuzzyworld

fuzzyworld-tools / files / server / content / projects.md

projects.md

13.6 KB · history · blame

title: Projects

Projects

Explodorama

A turn-based, mobile-first, roguelike take on the 1985 NES bomb-laying classic. Every bomb counts down with your moves, so nothing happens until you act — and you can see exactly what will burn before you commit. Clear enemies, uncover the hidden exit, and collect power-ups across a 20-level run. Early development.

Nordic Skating

An endless skate across an endless lake of thin black ice, for a phone. The ice sings under the blades the way real black ice does, and its pitch tells you how thin it is. Leave it alone and it skates itself; steer, and you choose where the lake forks. Every visit is a different lake — by day, at dusk, under the Milky Way or the northern lights. Inspired by National Geographic's Hear the Otherworldly Sounds of Skating on Thin Ice.

auto-print

A command-line tool that turns markdown manuscripts into books: an epub, a docx, a pdf, and a Kindle kpf for each one. It's made for writers who keep their drafts in markdown next to their notes — it publishes only the story, plus any extra pages you name (a dedication, a character guide), and never changes the source files. One config file lists the books, and one command builds all of them, using pandoc under the hood. I built it to turn my upcoming writing into books.

🛰 Tower

The companion website for Conversations with Aliens, a novel I'm working on. Tower is the story's fictional space station: a spinning cylinder orbiting Earth, with an inner surface the size of Wisconsin, lit by sunlight piped down its axis. Browse the unrolled surface map, view Tower from outside, or stand on its inner surface with the ground curving up on both sides and the far side of the world hanging 100 km overhead. The world generates itself live in the browser, complete with weather, a day/night cycle, railways, and a scenic tour.

BlueShadow

A Milkdrop music visualizer that runs full-screen on the Galaxy Z Flip 7's closed cover screen, driven live by the phone's microphone. 395 presets, controlled entirely by gestures, installable as a PWA. Rendering is done by butterchurn.

Engye

A web app for sharing files between devices using QR codes. No accounts, no cloud, just scan a QR code and the file is transferred directly between your devices using WebRTC. You can share one file at a time, or a whole queue of files. The app works entirely in the browser, and the file data is end-to-end encrypted, so the key never leaves your devices. It's a great way to quickly transfer files between your phone and computer without needing to email them or use a USB cable.

Shadow Zone

An interactive seismic wave simulator that visualizes why earthquake waves can't reach certain parts of Earth's surface — the "shadow zones" created by the liquid outer core. Adjust core size and wave velocities, trace P- and S-wave paths using Snell's law, and explore alternate planetary structures like "Water Core" or "Giant Core." Runs entirely in the browser with no external dependencies.

When Am I?

Imagine you're a time traveler who ends up in a random place and time in history — what does a local say when you ask "When am I?" Pick a spot on an interactive map and choose a date; the app shows you the calendar system and local year that would have been in use there and then.

Solo Dungeon Master

An AI-powered solo tabletop RPG that runs entirely in the browser, with Claude as your Dungeon Master. Pick from 10 races and 10 classes, then explore a narrative adventure in the Cypher System. You supply your own Anthropic API key — it never leaves your device. Adventure state saves to browser storage so you can resume where you left off, and encrypted URLs let you share a session without exposing your key.

Herd

A browser game about herding sheep. Tap the field to send your border collie to that spot — the dog scares nearby sheep, so use it to push the flock toward the pen before time runs out. Sheep flock together naturally, so working from the sides and behind is more effective than chasing them head-on. Physics, flocking AI, and rendering are all hand-rolled with no game engine.

AI Chat for Android Auto

An Android Auto voice assistant that sends your spoken questions to an AI provider and reads the responses back through the car's speakers.

Haunt

An Android app that uses WiFi Round-Trip Time (RTT) ranging to calculate your phone's position and automatically switch the correct Philips Hue light for whichever room you're in. No floor plans, no coordinate systems, no backend — just three Google WiFi pucks and a calibration step.

Send Dunes!

A sand dune simulation game where you control the wind to push, sculpt, and reshape a dune across a desert landscape.

Nuts

A phone-focused full-screen toy: a box of hex nuts bouncing around with 2D physics. Tilt your phone to shift gravity, shake it to scatter them, and feel haptic feedback on every wall collision.

Alphabeticals

A 1–10 player word-association card game for mobile browsers. Players take turns naming things from a category while playing letter cards from their hand. Use special cards to skip opponents, swap hands, or change the category. Last player holding cards loses.

Bubbles

Your phone is a glass of water. Tilt it to slosh the liquid side to side; tilt past 45° and water spills over the rim permanently. Tap anywhere to drop a random object in — some float, some sink. Desktop users move the mouse instead of tilting.

Slide!

Multiplayer slingshot curling for 1–10 players in the browser. Pull back your puck like a slingshot and release to throw. Choose between nearest-to-jack or target-ring scoring across multiple rounds, with a running leaderboard. Join via link or QR code — no install required.

Flight

A browser-based hang glider flight simulator inspired by the hang glider levels of Pilotwings 64. Soar over hand-crafted terrain, ride thermals, race other players in real time, and share your own worlds. Includes a free-fly island and a timed desert race mode with a leaderboard.

Chance It!

A multiplayer push-your-luck dice game for 1–10 players, no install required. Roll 3 dice each turn, bank your gold, or press your luck for more. Hit 3 skulls in a single turn and you bust, losing all unbanked points. First to 13 wins.

Word Waltz

A two-player asynchronous Wordle duel. One player picks a secret 5-letter word; the other plays Wordle against it and scores based on how many guesses it takes. Then the roles swap — back and forth indefinitely, with a running scoreboard. All game state is end-to-end encrypted; the key lives only in the share URL.

Cat Playground

An interactive web toy for cats. Animated critters (fish, ants, fireflies, laser dots…) wander across a full-screen tablet display. When the cat taps one, it reacts with animations and sounds. A human controls the experience from their phone by scanning a QR code — no app install required.

Secret Bangers

A browser-based multiplayer implementation of the Love Letter card game, with historical figures (Casanova, Tesla, Kafka, Cleopatra…) as characters. 2–4 players join via QR code; all game logic runs in the browser and syncs through Firebase in real time. No accounts required.

Friend Compass

Real-time location sharing for a group of friends. Share a room link or QR code; everyone who joins sees each other as directional arrows on their screen. No accounts, no app install — just a mobile browser. Location data is encrypted; the key lives only in the room URL.

Separator Page

This is a simple web page that can be used as a separator/container for other web pages. It has been recently rewritten and now supports custom icons.

I use it with FireFox and Tree Style Tab to organize my browsing, but you can use it in any other browser that supports nested/vertical tabs, or even just as a random page where you can customize the title, the icons, and the body.

Separator Page Usage

Quotable

Quotable is a web and Android app that shows random quotes.

The Android version can pop-up regular notifications, so you can get random quotes throughout the day.

The Android version is not yet on the Google Play store, so you'll need to sideload it.

template

This is an OSS CLI for automating folder/file creation.

Hawk

This is a web app that allows you to specify a duration (eg. "5:32"), then Hawk will find a song in your Spotify library with that length, and with one click you can start playing this song through Spotify.

Godot 2D shooter experimentation

This is my first real foray into using a game engine, so I'm experimenting with Godot and making a simple 2D space shooter.

Try the work-in-progress game here.

Find Stone Beer

Go app that uses https://find.stonebrewing.com/ API to notify me when Arrogant Bastard is shipped to stores around me. Pushover is used to deliver messages to my phone. This was a proof-of-concept implementation to figure out how to provide regular notifications without running a server.

Quantum Inspiration

This is a similar notification implementation to "Find Stone Beer", but this app uses Australian National University Quantum Numbers API to pick a random Wikipedia article and send it to me every morning. If a particular theory of the multiverse is correct, then every day 256 versions of me will receive a different article, and will thus lead to a slightly different day. Mostly, though, this was just something to do for fun.

Task Heap

Task Heap is a Flutter task-organizing web app. The basic concept here is to have a heap of tasks, then skipping big or complex tasks until you find a task that feels "doable". Eventually, all tasks will get done, as you complete the tasks in the order that works for you.

Dao

Dao is a TypeScript version of the game Dao.

Play it here.

Source
1title: Projects
2
3# Projects
4
5## <img src="https://apps.fuzzyworld.net/explodorama/icons/apple-touch-icon.png" class="small-logo" alt=""> [Explodorama](https://apps.fuzzyworld.net/explodorama/)
6
7A turn-based, mobile-first, roguelike take on the 1985 NES bomb-laying classic. Every bomb counts down with *your* moves, so nothing happens until you act — and you can see exactly what will burn before you commit. Clear enemies, uncover the hidden exit, and collect power-ups across a 20-level run. Early development.
8
9## <img src="https://apps.fuzzyworld.net/nordic-skating/favicon.png" class="small-logo" alt=""> [Nordic Skating](https://apps.fuzzyworld.net/nordic-skating/)
10
11An endless skate across an endless lake of thin black ice, for a phone. The ice sings under the blades the way real black ice does, and its pitch tells you how thin it is. Leave it alone and it skates itself; steer, and you choose where the lake forks. Every visit is a different lake — by day, at dusk, under the Milky Way or the northern lights. Inspired by National Geographic's [Hear the Otherworldly Sounds of Skating on Thin Ice](https://www.youtube.com/watch?v=v3O9vNi-dkA).
12
13## [auto-print](https://code.fuzzyworld.net/auto-print/)
14
15A command-line tool that turns markdown manuscripts into books: an epub, a docx, a pdf, and a Kindle kpf for each one. It's made for writers who keep their drafts in markdown next to their notes — it publishes only the story, plus any extra pages you name (a dedication, a character guide), and never changes the source files. One config file lists the books, and one command builds all of them, using [pandoc](https://pandoc.org) under the hood. I built it to turn my [upcoming writing](https://writing.fuzzyworld.net/upcoming/) into books.
16
17## 🛰 [Tower](https://apps.fuzzyworld.net/tower/)
18
19The companion website for [Conversations with Aliens](https://writing.fuzzyworld.net/upcoming/), a novel I'm working on. Tower is the story's fictional space station: a spinning cylinder orbiting Earth, with an inner surface the size of Wisconsin, lit by sunlight piped down its axis. Browse the unrolled surface map, view Tower from outside, or stand on its inner surface with the ground curving up on both sides and the far side of the world hanging 100 km overhead. The world generates itself live in the browser, complete with weather, a day/night cycle, railways, and a scenic tour.
20
21## <img src="https://apps.fuzzyworld.net/galaxy-z-flip7-butterchurn/icon-192.png" class="small-logo" alt=""> [BlueShadow](https://apps.fuzzyworld.net/galaxy-z-flip7-butterchurn/)
22
23A Milkdrop music visualizer that runs full-screen on the Galaxy Z Flip 7's closed cover screen, driven live by the phone's microphone. 395 presets, controlled entirely by gestures, installable as a PWA. Rendering is done by [butterchurn](https://github.com/jberg/butterchurn).
24
25## <img src="https://engye.fuzzyworld.net/favicon.png" class="small-logo" alt=""> [Engye](https://engye.fuzzyworld.net/)
26
27A web app for sharing files between devices using QR codes. No accounts, no cloud, just scan a QR code and the file is transferred directly between your devices using WebRTC. You can share one file at a time, or a whole queue of files. The app works entirely in the browser, and the file data is end-to-end encrypted, so the key never leaves your devices. It's a great way to quickly transfer files between your phone and computer without needing to email them or use a USB cable.
28
29## <img src="https://code.fuzzyworld.net/shadow-zone/raw/public/earth.png" class="small-logo" alt=""> [Shadow Zone](https://apps.fuzzyworld.net/shadow-zone/)
30
31An interactive seismic wave simulator that visualizes why earthquake waves can't reach certain parts of Earth's surface — the "shadow zones" created by the liquid outer core. Adjust core size and wave velocities, trace P- and S-wave paths using Snell's law, and explore alternate planetary structures like "Water Core" or "Giant Core." Runs entirely in the browser with no external dependencies.
32
33## <img src="https://apps.fuzzyworld.net/when-am-i/favicon.png" class="small-logo" alt=""> [When Am I?](https://apps.fuzzyworld.net/when-am-i/)
34
35Imagine you're a time traveler who ends up in a random place and time in history — what does a local say when you ask "When am I?" Pick a spot on an interactive map and choose a date; the app shows you the calendar system and local year that would have been in use there and then.
36
37## <img src="https://apps.fuzzyworld.net/dm/dice.png" class="small-logo" alt=""> [Solo Dungeon Master](https://apps.fuzzyworld.net/dm/)
38
39An AI-powered solo tabletop RPG that runs entirely in the browser, with Claude as your Dungeon Master. Pick from 10 races and 10 classes, then explore a narrative adventure in the Cypher System. You supply your own Anthropic API key — it never leaves your device. Adventure state saves to browser storage so you can resume where you left off, and encrypted URLs let you share a session without exposing your key.
40
41## <img src="https://code.fuzzyworld.net/herd/raw/plant.png" class="small-logo" alt=""> [Herd](https://apps.fuzzyworld.net/herd/)
42
43A browser game about herding sheep. Tap the field to send your border collie to that spot — the dog scares nearby sheep, so use it to push the flock toward the pen before time runs out. Sheep flock together naturally, so working from the sides and behind is more effective than chasing them head-on. Physics, flocking AI, and rendering are all hand-rolled with no game engine.
44
45## <img src="https://code.fuzzyworld.net/ai-chat-android-auto/raw/app/src/main/res/mipmap-mdpi/ic_launcher.png" class="small-logo" alt=""> [AI Chat for Android Auto](https://code.fuzzyworld.net/ai-chat-android-auto/)
46
47An Android Auto voice assistant that sends your spoken questions to an AI provider and reads the responses back through the car's speakers.
48
49## <img src="https://code.fuzzyworld.net/haunt/raw/favicon.png" class="small-logo" alt=""> [Haunt](https://code.fuzzyworld.net/haunt/)
50
51An Android app that uses WiFi Round-Trip Time (RTT) ranging to calculate your phone's position and automatically switch the correct Philips Hue light for whichever room you're in. No floor plans, no coordinate systems, no backend — just three Google WiFi pucks and a calibration step.
52
53## <img src="https://apps.fuzzyworld.net/send-dunes/favicon-32x32.png" class="small-logo" alt=""> [Send Dunes!](https://apps.fuzzyworld.net/send-dunes/)
54
55A sand dune simulation game where you control the wind to push, sculpt, and reshape a dune across a desert landscape.
56
57## <img src="https://apps.fuzzyworld.net/nuts/favicon-32x32.png" class="small-logo" alt=""> [Nuts](https://apps.fuzzyworld.net/nuts/)
58
59A phone-focused full-screen toy: a box of hex nuts bouncing around with 2D physics. Tilt your phone to shift gravity, shake it to scatter them, and feel haptic feedback on every wall collision.
60
61## <img src="https://apps.fuzzyworld.net/alphabeticals/favicon-32.png" class="small-logo" alt=""> [Alphabeticals](https://apps.fuzzyworld.net/alphabeticals/)
62
63A 1–10 player word-association card game for mobile browsers. Players take turns naming things from a category while playing letter cards from their hand. Use special cards to skip opponents, swap hands, or change the category. Last player holding cards loses.
64
65## <img src="https://apps.fuzzyworld.net/bubbles/favicon.ico" class="small-logo" alt=""> [Bubbles](https://apps.fuzzyworld.net/bubbles/)
66
67Your phone is a glass of water. Tilt it to slosh the liquid side to side; tilt past 45° and water spills over the rim permanently. Tap anywhere to drop a random object in — some float, some sink. Desktop users move the mouse instead of tilting.
68
69## <img src="https://apps.fuzzyworld.net/slide/favicon-32.png" class="small-logo" alt=""> [Slide!](https://apps.fuzzyworld.net/slide/)
70
71Multiplayer slingshot curling for 1–10 players in the browser. Pull back your puck like a slingshot and release to throw. Choose between nearest-to-jack or target-ring scoring across multiple rounds, with a running leaderboard. Join via link or QR code — no install required.
72
73## <img src="https://apps.fuzzyworld.net/flight/favicon-32x32.png" class="small-logo" alt=""> [Flight](https://apps.fuzzyworld.net/flight/)
74
75A browser-based hang glider flight simulator inspired by the hang glider levels of Pilotwings 64. Soar over hand-crafted terrain, ride thermals, race other players in real time, and share your own worlds. Includes a free-fly island and a timed desert race mode with a leaderboard.
76
77## <img src="https://apps.fuzzyworld.net/chance-it/favicon-32x32.png" class="small-logo" alt=""> [Chance It!](https://apps.fuzzyworld.net/chance-it/)
78
79A multiplayer push-your-luck dice game for 1–10 players, no install required. Roll 3 dice each turn, bank your gold, or press your luck for more. Hit 3 skulls in a single turn and you bust, losing all unbanked points. First to 13 wins.
80
81## <img src="https://apps.fuzzyworld.net/word-waltz/favicon-32x32.png" class="small-logo" alt=""> [Word Waltz](https://apps.fuzzyworld.net/word-waltz/)
82
83A two-player asynchronous Wordle duel. One player picks a secret 5-letter word; the other plays Wordle against it and scores based on how many guesses it takes. Then the roles swap — back and forth indefinitely, with a running scoreboard. All game state is end-to-end encrypted; the key lives only in the share URL.
84
85## <img src="https://apps.fuzzyworld.net/cat-playground/icons/favicon-32x32.png" class="small-logo" alt=""> [Cat Playground](https://apps.fuzzyworld.net/cat-playground/)
86
87An interactive web toy for cats. Animated critters (fish, ants, fireflies, laser dots…) wander across a full-screen tablet display. When the cat taps one, it reacts with animations and sounds. A human controls the experience from their phone by scanning a QR code — no app install required.
88
89## <img src="https://apps.fuzzyworld.net/secret-bangers/icons/favicon-32.png" class="small-logo" alt=""> [Secret Bangers](https://apps.fuzzyworld.net/secret-bangers/)
90
91A browser-based multiplayer implementation of the Love Letter card game, with historical figures (Casanova, Tesla, Kafka, Cleopatra…) as characters. 2–4 players join via QR code; all game logic runs in the browser and syncs through Firebase in real time. No accounts required.
92
93## <img src="https://apps.fuzzyworld.net/north-star/favicon.png" class="small-logo" alt=""> [Friend Compass](https://apps.fuzzyworld.net/north-star/)
94
95Real-time location sharing for a group of friends. Share a room link or QR code; everyone who joins sees each other as directional arrows on their screen. No accounts, no app install — just a mobile browser. Location data is encrypted; the key lives only in the room URL.
96
97## [Separator Page](https://apps.fuzzyworld.net/tools/separator-page/)
98
99This is a simple web page that can be used as a separator/container for other web pages. It has been recently rewritten and now supports custom icons.
100
101I use it with FireFox and Tree Style Tab to organize my browsing, but you can use it in any other browser that supports nested/vertical tabs, or even just as a random page where you can customize the title, the icons, and the body.
102
103![Separator Page Usage](https://code.fuzzyworld.net/tools/raw/separator-page/usage.png)
104
105## [Quotable](https://apps.fuzzyworld.net/quotable/)
106
107Quotable is a web and Android app that shows random quotes.
108
109The Android version can pop-up regular notifications, so you can get random quotes throughout the day.
110
111The Android version is not yet on the Google Play store, so you'll need to sideload it.
112
113## [template](https://code.fuzzyworld.net/template/)
114
115This is an OSS CLI for automating folder/file creation.
116
117## [Hawk](https://apps.fuzzyworld.net/hawk/)
118
119This is a web app that allows you to specify a duration (eg. "5:32"), then Hawk will find a song in your Spotify library with that length, and with one click you can start playing this song through Spotify.
120
121## [Godot 2D shooter experimentation](https://code.fuzzyworld.net/godot-shooter/)
122
123This is my first real foray into using a game engine, so I'm experimenting with Godot and making a simple 2D space shooter.
124
125Try the work-in-progress game [here](https://apps.fuzzyworld.net/godot-shooter/).
126
127## [Find Stone Beer](https://code.fuzzyworld.net/find-stone-beer/)
128
129Go app that uses [https://find.stonebrewing.com/ API](https://find.stonebrewing.com/) to notify me when Arrogant Bastard is shipped to stores around me. [Pushover](https://pushover.net/) is used to deliver messages to my phone. This was a proof-of-concept implementation to figure out how to provide regular notifications without running a server.
130
131## [Quantum Inspiration](https://code.fuzzyworld.net/quantum-inspiration/)
132
133This is a similar notification implementation to "Find Stone Beer", but this app uses [Australian National University Quantum Numbers API](https://quantumnumbers.anu.edu.au/) to pick a [random Wikipedia article](https://en.wikipedia.org/w/api.php?format=json&action=query&generator=random&grnnamespace=0&grnlimit=256) and send it to me every morning. If a particular theory of the [multiverse is correct](https://en.wikipedia.org/wiki/Multiverse), then every day 256 versions of me will receive a different article, and will thus lead to a *slightly different* day. Mostly, though, this was just something to do for fun.
134
135## [Task Heap](https://apps.fuzzyworld.net/task-heap/)
136
137Task Heap is a Flutter task-organizing web app. The basic concept here is to have a heap of tasks, then skipping big or complex tasks until you find a task that feels "doable". Eventually, all tasks will get done, as you complete the tasks in the order that works for you.
138
139## [Dao](https://code.fuzzyworld.net/dao-game/)
140
141Dao is a TypeScript version of [the game Dao](https://en.wikipedia.org/wiki/Dao_%28game%29).
142
143Play it [here](https://apps.fuzzyworld.net/dao-game/).