1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
---
layout: default
title: Projects
permalink: /projects/
---
* November 2025: [Deleted Pippin Barr Game](https://somnolentsucculentstudio.itch.io/deleted-pippin-barr-game), the video game adaptation of the conceptual classic [Erased de Kooning Drawing](https://en.wikipedia.org/wiki/Erased_de_Kooning_Drawing) by Robert Rauschenberg
* August - September 2024: [solipsist.social](https://solipsist.social/), a work of conceptual art in the form of a set of single-user fediverse instances running in allowlist mode that only federate with each other
* September 2023 - now: [MBTA Go](https://www.mbta.com/goapp), a mobile app displaying schedules and predictions for the Massachusetts Bay Transportation Authority, with an [Elixir backend](https://github.com/mbta/mobile_app_backend) and [Kotlin Multiplatform / SwiftUI / Jetpack Compose frontend](https://github.com/mbta/mobile_app)
* July - September 2023: [Fountain 1917](https://somnolentsucculent.studio/fountain-1917/), the video game adaptation of the infamous Dadaist anti-art sculpture
* April 2022: [Schrödinger’s SAT](/assets/Schr%C3%B6dinger_s_SAT.pdf), a SIGBOVIK 2022 submission (published alongside [Harder Drive](http://tom7.org/harder/), but hardly in the same league) “proving” that P = NP under many-worlds quantum mechanics
* January 2022 - August 2023: [Glides](https://medium.com/@katrinalanger/green-means-go-improving-green-line-operations-b831daf7a834), an Elixir and React service for train tracking on the MBTA's Green Line
* March - April 2021: [makers](https://code.boringcactus.com/makers/), a Rust implementation of `make`
* November 2020: [cactus-ssg](https://git.sr.ht/~boringcactus/cactus-ssg), a Python static site generator targeting both WWW and Gemini (built this site right here!)
* September 2020: [Crowbar](https://crowbar-lang.boringcactus.com), a language offering "the good parts of C, with a little bit extra"
* September 2020: [gemifedi](https://sr.ht/~boringcactus/gemifedi/), a Rust server offering a Gemini frontend to the fediverse
* September 2020: [csgo-gsi](https://sr.ht/~boringcactus/csgo-gsi/), a Rust library for integrating with CS:GO
* August 2020: [the Fuck Around and Find Out License](https://sr.ht/~boringcactus/fafol/), an experimental software license
* June 2020: [Slabforge](https://handandmachine.org/index.php/2021/10/15/slabforge/), a JS CAD tool for slab-built ceramics built as part of [research published at CHI '22](https://doi.org/10.1145/3491102.3517663)
* June 2020: [pig.observer](https://pig.observer), a JS frontend for viewing several traffic camera streams simultaneously (finished)
* December 2019: [cargo-why](https://sr.ht/~boringcactus/cargo-why/), tracing dependency paths to show why a Rust crate is needed in the current project
* December 2019: [wasm-pack pull request #745](https://github.com/rustwasm/wasm-pack/pull/745), adding watch and serve subcommands
* November 2019: [wasm-pack pull request #736](https://github.com/rustwasm/wasm-pack/pull/736), adding support for binary crates (finished)
* October 2019: [wasm-bindgen pull request #1843](https://github.com/rustwasm/wasm-bindgen/pull/1843), adding support for binary crates (finished)
* October 2019: [OWReplayRenderer](https://github.com/boringcactus/OWReplayRenderer), a utility in Rust to render out Overwatch replays to a single video file automatically
* September 2019: [micro-ci](https://github.com/boringcactus/micro-ci), a tiny self-hosted CI system written in Rust
* September 2019: compiler for the [While programming language](https://www.oxfordreference.com/view/10.1093/oi/authority.20110803122041931), written in Rust as a group project for a compilers class
* June 2019: [faketwitch](https://github.com/boringcactus/faketwitch), an IRC server shim in Python to allow Twitch-chat-integrated games to use other services instead of Twitch
* February 2019 - January 2021: [vidslice](https://github.com/boringcactus/vidslice), a wxPython GUI wrapping youtube-dl and ffmpeg (finished)
* January 2019 - July 2021: [kink.garden](https://github.com/kinkgarden/kinkgarden), a (NSFW) Django service for maintaining lists of kinks (finished)
* January 2019 - March 2020: [DynaMaze](https://github.com/boringcactus/dynamaze), a Rust-based multiplayer game compiled to WebAssembly (finished)
* December 2018: [crabravebot](https://git.sr.ht/~boringcactus/crabravebot), a Python (originally JS) service for easily overlaying text over Crab Rave
* August 2018: undergraduate thesis on natural language processing and textual entailment (finished)
* February 2018: full stack web application with Spring, React, and Elasticsearch for a software engineering class (finished)
* October 2017: [functional-dependency-generator](https://github.com/mathphreak/functional-dependency-generator), a PHP site that generates database theory example problems (finished)
* August 2017: [rust-editorconfig](https://github.com/mrandri19/rust-editorconfig), an editorconfig library for Rust that I substantially contributed to
* July - November 2017: [MFTE](https://github.com/mathphreak/mfte), a Nano clone written in Rust
* April 2017: graphics library exposing XPM and Swing-like layout interfaces and targeting a set-one-pixel-at-a-time renderer
* March 2017: [cull21](https://github.com/mathphreak/cull21), a Ruby web-based Gmail API client designed specifically for powering through backlogs (finished)
* January 2017: [Yummy Goodness](https://github.com/mathphreak/yummy-goodness), a JS game built with Elm (finished)
* September 2016: [prodenfd](https://github.com/mathphreak/prodenfd), a Ruby program that doesn't let me play games if I have pending tasks in my todo list due soon (finished)
* August 2016: [verbatim](https://github.com/mathphreak/verbatim), an Electron application for integration testing an actual binary against an expected one (finished)
* July 2016: [Rust pull request #34694](https://github.com/rust-lang/rust/pull/34694), adding trivial helper methods to the `IpAddr` enum
* June 2016: [halfhearted](https://github.com/mathphreak/halfhearted), a JS game built with just React (finished)
* January 2016: [compare-ignoring-articles](https://github.com/mathphreak/compare-ignoring-articles), a JS library for sorting in a natural way
* January 2016: [Galactic Max](https://github.com/mathphreak/Galactic-Max), a JS game built on Phaser with a full team for a hackathon (finished)
* December 2015: [CS Eco Dash](https://github.com/mathphreak/cs-eco-dash), a Rust web application taking [CS:GO data](https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Game_State_Integration) and presenting recommendations
* September 2015: [E-800](https://github.com/mathphreak/E-800), a Rails web app for running and grading student-submitted code
* August 2015: Java application translating CSV exports from one academic record keeping program to be importable by another, with a Swing GUI
* June 2015 - August 2016: [Relief Valve](https://github.com/mathphreak/ReliefValve), an Electron application for moving Steam games between libraries (finished)
* March 2015: [statdns-socks5](https://github.com/mathphreak/statdns-socks5), a Go proxy server for DNS-over-HTTP before it was cool
* November 2014: [komodo](https://github.com/KamikazeKumquatsLLC/komodo), a Web-based realtime quiz system powered by Meteor
* May 2014: [AltcoinNetWorth](https://github.com/mathphreak/AltcoinNetWorth), a Web-based dashboard for an altcoin portfolio, written in Go
* December 2013: [LD28-You-Only-Get-One](https://github.com/mathphreak/LD28-You-Only-Get-One), a Backbone-powered textual JS game
* August 2013 - November 2015: [hamwerk](https://github.com/mathphreak/hamwerk), a Web-based todo list specialized for homework powered by Meteor (finished)
* July 2013: [MCWebDash](https://github.com/mathphreak/MCWebDash), a Web-based dashboard showing the status of a Minecraft server
* June 2013: [SpawnAndBack](https://github.com/mathphreak/SpawnAndBack), a simple Minecraft mod
* March 2013: [BecauseWhyNot](https://github.com/mathphreak/BecauseWhyNot), a CPU emulator written in CoffeeScript for the DCPU-16 fictional CPU from Notch's cancelled 0x10c.
* March 2013: [CompetentDeathMessages](https://github.com/mathphreak/StaffDrops), a Minecraft server plugin
* January 2013: [Republica Eternity Event III](https://github.com/mathphreak/RepublicaEternityEventIII), a Minecraft server plugin some friends needed help with
* November 2012: [StaffDrops](https://github.com/mathphreak/StaffDrops), a Minecraft server plugin a friend needed help with
* July 2012: [Multiverse Core pull request #780](https://github.com/Multiverse/Multiverse-Core/pull/780), adding a feature to a Minecraft server plugin
* October 2011: [github.js](https://github.com/mathphreak/github.js), a library for making client-side calls to the GitHub API
* May 2011: [Zrczr](https://github.com/mathphreak/Zrczr), a canvas-based JS game
* May 2011: [Pecan.js](https://github.com/mathphreak/Pecan.js), a library for persisting scroll position
* March 2011: [VCRI](https://github.com/mathphreak/VCRI), a Chrome extension tweaking an existing JS game (finished)
* January - February 2011: [Arduinochet](https://github.com/mathphreak/Arduinochet), a needlessly-motorized trebuchet I built with a friend
* February - May 2010: [Acts 20:2](http://sourceforge.net/projects/acts202/), a Java Swing application displaying periodic popups of Bible verses, which I built in collaboration with a few other people
* January 2009: [EPlanner](https://sourceforge.net/projects/eplanner/), a todo list specialized for homework built in Java with Swing
|