Bot Projects

last updated 2024-04-01

"Bots" are, in this context, automated programs that generate something and post it for entertainment purposes. I became interested in these kinds of code experiments around 2012 after seeing such work by creators like Darius Kazemi and Allison Parrish. This page is an exhaustive list of bots I've made over the years, mostly using the Python programming language. In the spirit of sharing knowledge, source code is available for all but one.


LucasArts Places

Status: Active, since 2023-08
Posts: every day at 11:38am PST
Mastodon: @lucasarts_places@botsin.space
Cohost: @lucasarts-places
Source code: heptapod.host/jp-lebreton/jp-bots/lecrooms

Posts one piece of background art from a classic LucasArts adventure game once a day. Beginning with Maniac Mansion on the Commodore 64 in 1987 and ending with Escape From Monkey Island in 2000, LucasArts' canon of graphic adventures featured a typing-free interface, clever puzzles, great storytelling and humor, and hand-crafted worlds - the latter brought to life by the studio's many talented artists. This bot is a celebration of that work.
Image post: the underwater docks scene on Melee Island from the first Monkey Island game, EGA (16 color) version

As the Film Ends

Status: Active, since 2014-05
Posts: every day at 4pm PST (matinée time)
Mastodon: @endingsummary@mastodon.social
Cohost: @endingsummary
Source code: heptapod.host/jp-lebreton/jp-bots/plotbot

Most Wikipedia pages for a given film provide at least a brief plot synopsis. Using the sum total of all film pages on Wikipedia as a corpus, this bot picks a random film and posts the final sentence from its plot summary. Spoilers are definitely possible, but given the depth of the corpus it'll usually be a film you've never heard of. A reverse-search (searching for the post's text on Wikipedia) will almost always find the film that has been excerpted on a given day.
Text post: "Frankenstein, disappointed and having apparently learned a lesson, walks away silently."

SimCity 2000 Traffic Helicopter

Status: Active, since 2020-07
Posts: every day at 8:30am PST (morning commute)
Mastodon: @sc2000bot@botsin.space
Cohost: @simcity2000bot
Source code: heptapod.host/jp-lebreton/sc2000bot

In the decades since its release in 1993, players have created thousands of cities in the classic builder game SimCity 2000. With heavy lifting done almost entirely by the OpenCity2k project, this bot picks from a private archive of hundreds of user-created cities and posts a random glimpse of a cityscape. The game's timeless pixel art and the creativity of its players provide the interest here.
Image post showing an isometric view of a city (this one called Retro) from the game SimCity 2000.

DeusEx.txt

Status: Active, since 2022-03
Posts: once a day, at 20:52 PST
Mastodon: deus_ex_txt@mastodon.social
Cohost: @deus-ex-txt
Source code: heptapod.host/jp-lebreton/jp-bots/dxbot

Posts random lines from the complete script of Deus Ex, Ion Storm Austin's ground-breaking first person PC RPG from 2000.
BOB PAGE: Your augmentations are a-go. The real test comes next: active duty.

Capcom VS Everyone

Status: Active, since 2018-09
Posts: every day at 12pm PST (high noon)
Mastodon: @vs_everyone@mastodon.social
Cohost: @vs-everyone
Source code: heptapod.host/jp-lebreton/vsbot

Possibly my most elaborate and hardest to explain bot, Capcom VS Everyone (no affiliation with Capcom, or anything else really) depicts pre-match "Versus" screens from a fictitious fighting game whose character roster includes a seemingly infinite breadth of fictional characters from every corner of pop culture.
The bot draws from a private, hand-built corpus that includes character names, fiction of origin, portrait image, and metadata to construct amusing team-ups and showdowns. In early 2021 I wrote a new tool for managing this corpus, which I describe briefly in this thread. At some point I would like to do a video explaining all the ridiculous things going on behind the scenes of this bot; when I finally do so I will be sure to link it here.
Image post showing a match-up between The Joker and Carmen Sandiego VS Vizzini (from Princess Bride), in a graphical frame that evokes a fighting game pre-match screen.

WADbot

Status: Active, since 2014-04 (overhauled 2015-05, and again 2020-08)
Posts: every day at 6:30pm PST
Mastodon: @wadbot@botsin.space
Cohost: @wadbot
Tumblr: wadbot.tumblr.com (this is where the image posts are actually hosted)
Source code: heptapod.host/jp-lebreton/wadbot

Mere months after id Software's landmark 1993 first person shooter Doom was released, fan-made level editors emerged on the net. Since then, the community's output has grown to tens of thousands of levels and mods - commonly referred to by their file format, WADs - and over 25 years later shows no signs of stopping.
WADbot dives into this massive vault of community work, opens up a random level, tries to find the most "interesting" (high detail, mostly) screenshots, and posts them with an excerpt from and link to the database entry.
Image post showing a screenshot of a Doom level, a fanciful house. Map summary text is "DREMHOUS.WAD, MAP01: Dream House"

Every JoJo's Bizarre Adventure character

Status: Active, since 2023-11
Posts: every day at 9:21am PST
Cohost: @jojo-characters
Source code: heptapod.host/jp-lebreton/jp-bots/jojo_chars

Posts a random character from the Jojo's Bizarre Adventure fan wiki once a day.
post showing Robert E.O. Speedwagon

Daily Emoji

Status: Active, since 2023-06
Posts: every day at 7am PST
Cohost: @daily-emoji
Mastodon: @daily_emoji@botsin.space
Source code: heptapod.host/jp-lebreton/jp-bots/moji

Posts a randomly selected emoji from the official Unicode specification once a day. Since 2024-04-01, can also post unusual "combo" emojis from the Emoji Kitchen libarary.
Two image posts: the 'foggy' 🌁 and 'woman mage (medium-dark skin tone)' 🧙🏾‍♀ emoji

*Orz*

Status: Launched 2014-05, Retired 2022-11
Posts: wildly variable random periods of at least a few days
Mastodon: @orz@mastodon.social
Source code: heptapod.host/jp-lebreton/jp-bots/orzbot

Posts random quotes from the enigmatic, alternately lovable and terrifying alien race the Orz from Star Control II: The Ur-Quan Masters, the 1992 cult classic space adventure from Toys for Bob.
Text post: "It is better to not *frumple* or else there is so much problems."

Random Sandwich

Status: Launched 2014-07, Retired 2016-07
Source code: heptapod.host/jp-lebreton/jp-bots/sandwichbot

Invents and posts a randomly generated sandwich using a very simple implementation of a context-free grammar.
Text post: "The Mayor: Chicken, black forest ham with melted Gruyere on multi-grain, topped with shredded carrots, and remoulade."

At Bat Today

Status: Launched 2014-12, Retired 2017-02
Source code: heptapod.host/jp-lebreton/atbatbot

A gift for my father, this bot drew from the Baseball Reference website's database of at-bat information from almost a century of recorded baseball history, posting the players involved and outcome for a single at-bat on the same day as the post. During the off-season, posts would be chosen based on players' birthdays.
Unfortunately, changes in the source website's format broke this bot after a few years. Getting it working again would involve a total rewrite, with no guarantee that it wouldn't break again.
Text post: "Today in 1983: Larry McWilliams (PIT) vs Terry Kennedy (SDP), bot 4th 0 out: Flyball: RF/Sacrifice Fly; Garvey Scores"

Manny Calavera

Status: Launched 2013-07, Retired 2020-06
Mastodon: @MannyCalavera@mastodon.social
Source code: heptapod.host/jp-lebreton/jp-bots/mannybot

This was the bot that got me started. Drawing from the 1998 adventure game Grim Fandango's dialog bank for the "open mic poetry" sequence at the Blue Casket beatnik club, this bot generates free-association slam poems by the game's protagonist, Manuel Calavera, posting one new line each night.
Text post: "Good evening. I'd like to read a poem."

ROT13 Scavenger

Status: Launched 2017-06, Retired 2022-11
Source code: heptapod.host/jp-lebreton/rot13bot

ROT13 is a very simple cipher people frequently use online to obscure spoilers, quasi-private whispers, et cetera. This website lets you play with the technique to get a feel for it.
This bot searches twitter for common words ("the", "was", etc) in ROT13, on the assumption that most or all of the resulting posts are written in the cipher. It then simply un-ROT13s the post text, and strips out any @ usernames to keep it (mostly) anonymous.
Text post: "I started laughing when Gaius did his gold anime attack. what the hell was this questline, what a waste of really good animation"

welcome to

Status: Launched 2017-02, Retired 2022-11
Source code: heptapod.host/jp-lebreton/welcomebot

People use the construction "welcome to X" to convey a lot of different things: greetings to a newcomer, a new situation, sarcasm or exasperation. This bot searches twitter for posts that contain the phrase "welcome to" and posts what follows (excluding links and @ usernames).
Text post: "flavortown baby" (such that, with the title of the bot itself directly above, reads as "welcome to flavortown baby")

SteamDB Linux Update

Status: Launched 2014-06, Retired 2018-08
In the early years of Valve's push to support Linux, thousands of new ports of games became playable on Steam. SteamDB is an independent database that, until 2018, maintained a page that tracked possible additions of Linux support for new and existing games. I created this bot to post new findings from that page. At some point, the bot's scraping logic broke and Tin Tvrtković took over maintenance. Then in 2018 SteamDB discontinued their Linux support page, its purpose having more or less been served.
Text post: "New Game: American Truck Simulator", with a link to the game's entry on SteamDB



<< back to main page