Some years ago, I ran a weekly Project Night where people would come by and work on their personal art/craft projects. Ian was one of the regular attendees, always bringing his laptop to work on his personal coding projects.

During the winter holiday season, we’d often run a Secret Snowflake (aka secret Santa) event where regulars to our project night would opt into the event and then be given a random person who they would have to craft something special for. One year (Jan 2015) that we ran it, Ian choose to participate.

This made me very nervous, as the only crafty thing we’d ever seen him do is writing software. Was he going to write some code for his person? Was he going to flake and just not make anything? We had issues in the past where participants were disappointed due to their secret person flaking and I didn’t want to risk it again. So I made a small tweak.

To ensure that no participants were left wanting, I rigged the shuffle and put myself as the person that Ian would be crafting something for. If he flaked it’d only be me who doesn’t get anything. I’m also a software person, so if Ian wrote some software for me, I’d probably be more in a position to understand what it was.

Fast forward a few weeks to when we were doing the gifting ceremony. Everyone was unwrapping their crafty presents to one another: a handmade candle, a knit scarf, a clay sculpture. It came to be my turn and I receive a small rectangular package.

A brief interlude: there is a computer game that's not a game called robotfindskitten. It's really more of an art project or a zen simulation. In robotfindskitten, you are robot (represented by a "#" on the Rogue-like playfield) and your job is to find kitten. This is complicated by the existence of many things that are not kitten. You must go around as robot and touch each item to determine if they are kitten or not. There is no way to determine if an item is kitten without touching it, but you will always find kitten. I like to think of it as a reflection on how the destination is sometimes less important than the journey that you take (and what non-kitten items you find along the way). I'm a big fan of this "game" and did port of it for Android as one of my early Android projects.

I receive a small rectangular package, open it up, and it’s a deck of cards. But not just any cards, this is robotfindskitten The Card Game (Now with unicode kitten!). Ian had not only designed an entire multi-player game version of robotfindskitten (which I must remind you wasn’t even really a game), but fabricated hand-made cards to embody the game. Each card is double-sided, lightly laminated with hand-beveled corners. You could actually play this game!

There are 4 kitten cards and 4 robot cards for up to 4 players, which a collection of non-kitten item cards (aka NKI to those who are deep into it) sourced from the official collection. Non-robot cards are randomly laid out face down on a 4 foot x 6 foot grid and players roll a D6 to determine how many spaces they can move their robot around in order to find their respective kitten (carefully not revealing the card to other players). The player who finds their kitten first wins.

That year at project night’s secret snowflake, Ian had not only pulled through and made a gift for someone, but he made something that was special, unique, and showed his skills at crafting cohesive systems. In hindsight, I shouldn’t have been worried about needing to rig the secret snowflake randomizer, but I’m glad I did.

-Steve 2023-07-14

robotfindskitten The Card Game laid out