The text "John LaRocque" rendered with very thin lines. It's invisible until a flock of bird-like "boids" settles upon the letters and outlines them in black dots.
A screenshot of the Freeclimbs web app.

Freeclimbs2024 -

Free and open source route book for home climbing and spray walls, including automatic hold detection and segmentation, shareable private walls, and admin tools.

I'm trying out Pocketbase for the backend of this one; the current frontend is Svelte 4 with a 5 port in progress. The computer vision is a tune of YoloV8 (I labelled a lot of holds...) and in-browser SegmentAnything.
Source is available here.

A screenshot of the GroupMe Archive Viewer web app.

GroupMe Archive ViewerAugust 2024

To preserve and search old group chats - an area where GroupMe's own interface is somewhat lacking - I put together this simple tool which displays exported chat archives.

A one day build, using Go and Svelte of course.

Volumetric Christmas TreeWinter 2023

If you light your tree with 1,000 addressable WS2812 LEDs and map their positions, you can display rudimentary holograms! Here's a longer video of some "fireworks" on Google Photos.

Driving the LEDs at a reasonable refresh rate turned out to be nontrivial - big thank you to Jeremy Bentham/Lean2 for this ingenious code for the Raspberry Pi's SMI (Secondary Memory Interface) with which I was able to run 10 channels in parallel with the tight timings required.

(No source for this one, sorry - it was very hacked together at the last minute and the code is spread all over the place.)

Wireless Shifter2023

Bicycle shifter and remote built around two NRF52840 microcontrollers. This programmable shifter supports nearly any combination of derailleur and cassette and is in daily use on my road bike. Click for Onshape CAD soup.

A photograph of the plotted card.

Christmas CardWinter 2022

A pen-plotter-based Christmas card to send out to friends and family. Click through for a page about creating the art on the card.

A screenshot of a web application showing the temperature for the past 24 hours.

PantryTempJanuary 2021

My parents were worried about their pantry freezing in winter if they closed the door. Putting together a Raspberry Pi with a temperature sensor and custom web widget to reassure them otherwise was of course the only reasonable course of action.

Golang and Svelte.

Earthwalker Example

Earthwalker (contributor)2020

A GeoGuessr clone built by Linus Heck around some brilliant manipulation of Google StreetView packets. I overhauled the Go backend for better read- and maintain-ability and contributed a new Svelte frontend, along with some additional game features like Nominatim-derived GeoJSON map constraints.

Which New Question Page

Which? Spring 2020

A simple polling web app with support for approval and ranked-choice voting in additional to regular old fashioned plurality. Includes OAuth 2 support with from-scratch sessions. At one point it was deployed on AWS EC2 and RDS but Amazon's rates are a bit steep. Made with Postgres, Golang, and Svelte.

Svelte-DragDropList May 2020

I needed a sortable list component for Which? and wasn't satisfied with anything available from the community in terms of ease of integration, stability, and accessibility. This Svelte 3 component was my effort to meet those requirements.

Spotted in the wild at CalMatters!

Hacklahoma 2019 Logo

Hacklahoma 2017 - 2019

The first MLH hackathon in Oklahoma! I was ACM secretary and built our websites (2019, 2018).

Barrage Screenshot

Barrage Spring 2018

Minimal Electron audio player with a real time waveform visualization acting as the seek bar/scrubber.

Inverse Squares2015

The result of some discussion in my high school physics class about an inverse square law (gravity?) was several of us trying to get a JavaScript widget like this to run smoothly. Hopefully we were done with our homework.

Screenshot of Python Python being played in a terminal window.

Python Python2015

Snake, made with Python for the terminal.