| Project | Description | Activity |
|---|---|---|
| Tools | |2015 |2020 |2025 |
|
| dev-env | Reproduce this dev environment on any machine | █ |
| zen-gate | Block phone use by default, allowing only approved apps | █ |
| image-cropper | Batch-crop images to 9:20 portrait via a localhost web UI | █ |
| ukulele-tab | Convert sheet music to ukulele tabs | █ |
| map-generator | Create PNG images of world maps | █ |
| visualize-timeline | Visualize Google Maps Timeline | █ █ |
| spotify-scrobbler | Scrobble Spotify history to Last.fm | ▄█ |
| instagram-bot | Run a machine-learning Instagram bot | ██ |
| map-maker | Generate procedural worlds | █ |
| Games | |2015 |2020 |2025 |
|
| ants-ai | Play the Ants challenge with an ant-colony AI | ▄ █ |
| rts-info-delay | Command through fog of war with messenger-delayed orders | █ |
| rts-logistics | Haul, gather, eat, and fight in a logistics strategy game | █ |
| osrs-combat-optimizer | Calculate the optimal way to train combat in OSRS | █ |
| aoe-ai | Play Age of Empires II with a scripted AI | █ |
| py-risk | Play Risk against a simple AI, in Python | █ |
| interstellar-warfare | Play a strategy game with evolving AI | █ |
| Go | |2015 |2020 |2025 |
|
| go-trainer | Practice Go with move suggestions and optional instant feedback | █ |
| go-bot | Run Go bots on OGS | █ |
| anki-tsumego | Drill tsumego with Anki card templates | █ |
| ogs-to-anki | Download Go problems and prepare them for Anki | █ |
| alphazero-go | Play Go against an AlphaZero-inspired bot | █ |
| Gists | |2015 |2020 |2025 |
|
| make-profile-table.py | Generate this profile table | █ |
| wl.md | WL Notes | █▄ |
| Simulations | |2015 |2020 |2025 |
|
| olympias | Research and simulate the Olympias trireme replica | █ |
| digi-evo-v2 | Simulate digital evolution in C++, inspired by Tierra | █ |
| gravity | Simulate gravity in Tcl | █ |
| evoludo | Simulate cellular-automata evolution | █ |
| digi-evo | Experiment with Tierra-inspired digital evolution in Tcl | █ |
| Anki | |2015 |2020 |2025 |
|
| mandarin-ebook-flashcards | Create flashcards from ebook vocabulary | █▄▄ |
| fsrs-experiments | Experiment with the FSRS spaced-repetition algorithm | █ |
| Trading | |2015 |2020 |2025 |
|
| systematic-trading-platform | Manage market data, test trading models, and automate live orders | █ |
| forex-trading | Test ML trading strategies | ██ |
| gym-asset-allocation | Allocate assets in an OpenAI Gym environment | █ |
| University | |2015 |2020 |2025 |
|
| ucl-csml-notes | UCL MSc Computational Statistics and Machine Learning revision notes | ██ |
| cambridge-dissertation | Reinforcement Learning Demolition Teams | █ |
| ucl-msc-thesis | Stochasticity in the Travelling Salesman Problem | █ |
| external-sort | Sort data externally in Java | █ |
| chat-client-server | Run a client-server internet chat app | █ |
| game-of-life | Simulate Conway's Game of Life | █ |
| brainfuck | Interpret Brainfuck in Java | █ |
| mandelbrot | Explore the Mandelbrot set in Java | █ |
| Data | |2015 |2020 |2025 |
|
| crossfit-scraper | Scrape and analyze the Crossfit Games leaderboard | █ |
| language-distances | Visualize distances between natural languages | █ |
Generated by make-profile-table.py.
