I spent a big part of my life working professionally making games and other large software projects, and it’s still an important creative outlet for me. However, with no pressure to ship and no producer to yell at me, I rarely finish things these days.
I often compare it to: it’s like I used to be a shipbuilder, and now I retired and just like to whittle. Similar process, much smaller projects, and most things get discarded or abandoned when I get bored.
In any case, here are things I have made that are available on the Internet. Not all projects are web-viewable, and many are simply unlisted because of Reasons™.
In roughly reverse chronological order:
In spring of 2023 I was taking a course on the prophets of the Hebrew Bible, and our professor gave us a list of citations we needed to be ready to identify on the final. I made a little script to scrape the NRSV translation of the texts from a popular Bible website that, sadly, has no API, and once I had that I figured I could also make some digital flashcards. This was all done in a pique of procrastination… if I had really been procrastinating, it would be far more visually attractive. Very quick-and-dirty work, but a useful study tool!
A program I use to help track and assemble my academic papers, so I can just focus on writing and not get bogged down in formatting. Mostly uses pandoc, but with some custom Lua scripts and processing to meet the sometimes non-standard citation requirements of the Boston College STM. I wrote an initial version in Python, but after one semester moved over to Rust so it was easier to share with other people. (I also wanted an excuse to actually learn Rust. 😄🦀)
In the first half of 2022, as part of my role as Regional IT Officer for JRS MENA, I assembled and deployed Internet-in-a-Box devices for rural learning centers in Iraq and Kurdistan. It’s a pilot project, but the initial deployment went really well, and I’m looking forward to following up with additional development and support.
I want to take an extended break from Twitter, but I have some friends who only think to contact me there and might think I’m ignoring them. This resurrects the old AIM away message concept for Twitter DMs.
This page that you’re looking at is generated from its own JSON Feed. If you want, you can plug this URL into most RSS readers and subscribe to whatever new wackiness I cook up.
A code generator for passing messages back and forth between different languages in compact binary form. Along the lines of FlatBuffers, but with less functionality in exchange for a smaller produced buffer and simpler usage in client code.
Making pretty things out of triangles and concepts.
While rewatching Deep Space Nine I idly wondered if anyone had ever named a child “Jadzia.” Then I started wondering about other fictional characters and also real names and, in a classic bit of Shane overkill, tracked down 140 years of baby name data and made a little visualizer.
(The answer was yes; there have been dozens of Jadzias, and the first was not until 1994, so it’s definitely from the TV show. It can also be interesting to track the rise of Hermione, and how Britney Spears staved off a steady decline in her name in the 90s.)
Algorithmically generated word clouds of the word “Jesuits” in as many languages as I could track down. Part of me is thinking back to when I used to earn walking-around money by designing t-shirts. Some of these could look decent on a silkscreen.
A little web-tool that can also be installed to your phone’s home screen to help you remember gratitude.
I wanted to make a photo gallery of various places I’ve visted, but I couldn’t find any software that did what I wanted with maps and things. So I built my own. PHP because it’s easily deployable and while I kind of regret that, the backend is actually really solid. I was learning Svelte as I made the frontend and it kinda shows. Hit a wall on the implementation of tag albums (more a frontend problem than backend) and lost motivation. Will probably return to it someday because I still would really like it to exist.
In the process of making Pozzo I wanted to play with different compression settings for image loading. This is a little tool to just see the effects of various options at different sizes.
Very simple prototype for low-level gameplay on an idea I’ve had for a long while. Eventually want to build it up into a kind-of-procedural heist game, but wanted to experiment with player-owned systems gameplay in a 2d cartoony setting.
I love static site generators for building web stuff — I feel like they are more than enough for like 90% of websites and am sad that the most popular CMS softwares seem to be making things slower and more expensive to host. But a big barrier to entry is the content creation for people who aren’t nerds like me. So I built this frontend for GitHub/Markdown workflows, meant to be used by authors and editors. It has comments that are tracked alongside the content, and a Markdown web editor that I will still defend as my favorite to use. (The trick is to not try and pretend you aren’t writing Markdown, but provide all the tools that people are used to from word processors, and support their muscle memory.) The project I built it for never launched, so it hasn’t been touched in a while, but I still like it as an idea.
I was (still am) trying to learn to play the pennywhistle. This is a Mac app to drill me on translating sheet music to fingering patterns.
One of my best friends is a chemistry professor, and as a favor to him I maintain some build scripts to make installing specialized laboratory software easier on Macs.
Something to terrorize you, inspired by the movie Annihilation (2018). #iykyk
A library for modern 3D rendering using familiar realtime techniques without needing a graphics context or indeed even a graphics card in the machine. Kind of a poor-man’s raytracer, built for making videos of my little generated islands. (Mentioned below.)
I started playing with procedural generation of islands, as part of an idea for a game-like object and also an excuse to learn more about the various mathematical tools involved with such things. Hit a wall on how best to extrude the elevation map, but I’m fairly happy with how far it got and how cool the generation videos look.
Python 2 and JavaScript library to turn a normal English sentence into Hulk-speak.
Like a lot of nerds, I keep my dotfiles in git. Sometimes programs will update them unexpectedly, and I wanted to know when I had uncommitted changes. So this is a Mac menubar app that just shows a little dot when a certain git directory is dirty. You can click on it open that directory in the editor of your choice. That is all.
From when I used to make Twitter bots fairly regularly, I realized that sometimes if I let them loose on trending topics (which is something worth doing if you want them topical), they would frequently Tweet inappropriate things. So I envisioned a kind of system where trusted people could let the bots know, “hey, these topics should be off-limits for a certain amount of time.” I still like the idea, but given Twitter’s hostility towards bots these days, it’s not worth continuing.
Twitter bot that generated titles and box art for fake games in the “Job Simulator” genre, using data from the Bureau of Labor Statistics, job listings, and of course trending topics. Shut it down after it demonstrated the need for bot-innocence too many times.
Maybe the most successful thing I’ve ever done as an individual. Peaked at around 45,000 followers before I shut it off. Would give regular reminders to not read the comments, and was followed and retweeted by more famous people than would ever hang out with me in person. To many people (including some friends) I am forever known as the “don’t read comments” guy.
My first Twitter bot, just spitting out one of the Oblique Strategies once a day, timed to be useful for east cost people just finishing lunch or west coast people just starting their day. Not as many famous people followed it, but a few.
(Note: the site is no longer active, to avoid confusion since all the stuff is gone.) When I was entering the Jesuits, I had to get rid of a lot of stuff in a hurry. So I made a website listing all the stuff I was giving away and people could claim it. I had a simple algorithm for resolving situations where more than one person wanted something (based on how well we knew each other, whether the item in question was related to our friendship, how much shipping would cost, etc). Everything was sent out for free, in a last gasp of blowing my money.
When I was working in a research lab at Disney, we had a set of test rooms with multiple webcams and were frustrated that there was no simple software that let us look at more than one on the same computer. So I wrote this. It is dead simple. It does the job. It has an unlicensed Disney character as its icon.
Maybe one of my longest running side projects; I keep coming back to this and rewriting its base technology, most recently in January of 2021. Based on Tony Dowler’s excellent How to Host a Dungeon (and with his permission), it’s a little programmable simulation of caves and the civilizations that live there. But it’s also a fun excuse to toy with computation models, scripting engines, new rendering systems, etc. I think every time I visit a cave I get inspired to return to this.
A 2D game prototyping engine made for gamejams at EALA, back in the mid-2000s. Unity was barely a thing when we first built this, and other prototyping systems were either very non-performant or used exotic languages. So a team of us built this from scratch and piled it with features designed to make small 2D games as quickly as possible. I convinced EA to open source it and managed the project for several years afterwards, but the rise of things like Unity and Godot make prototyping in C++ seem like ice-skating uphill. So I sunsetted it around 2014. Still one of the only engines that clicks into my way of thinking of how to build prototypes, though — I kind of wish there was something these days that was only meant for prototyping, with not even a glance at shipping stuff. You can unlock a lot of productivity if you make that commitment.
In a time before streaming, college students used to all have separate collections of DVDs. If you lived in the same building with people, you might want to know what they had. If you had a collection, you might want to be able to loan it out and track who had what. So my roommate and I built this for our residential college. This is very old source code that he resurrected for some reason. It is not well-structured nor well-engineered. The README file kind of says it all.
Secret stuff that will someday have a writeup here:
© 2000-2024, Shane Liesegang