Doors menu: ☜ Back to Index


January 23, 2023

Doors is a bare-bones exploration videogame that uses a book and unusual custom game controllers, including an heirloom doorknob and a kneeling pad. It uses colorful stage lights, projection and sound as feedback. Doors connects to the Grotto api to construct its maze. In its first incarnation, it drew on genealogy data to turn my family tree into a traversable maze with hidden pieces of my family history.

Exhibition History

UCLA New Wight Gallery, May 18th-June 1st 2023








(Models not loading? make sure to connect securely to this page with 'https')
Doorknob 1


studio notes 6-1-23

Critique Reflection

More ➜

studio notes 5-20-23

Things I’d like to do if I get more time

More ➜

studio notes 5-19-23

Last night was the opening of the UCLA DMA Thesis show, which held the Grotto-connected installation I’ve been working on this quarter.

More ➜

studio notes 5-17-23

Grotto is now at v1.01. The last push included a text-entry interaction that can be used for writing notes with a letter item and for updating a character greeting. Letter item and Potion item both are now functional, although Potions aren’t particularly useful yet.

More ➜


updates, just 15 days until the show-

More ➜

studio notes 5-1-23

behind on grotto main game schedule, but making progress on installation stuff. doorknob controller guts

More ➜


Kinbank is a database of kinship terminologies ranging from grandparents to grandchildren, parent’s siblings and their children. You will find terminologies for 1229 languages, ranging from Aché to Zulu. […] Link

More ➜

studio notes 4-17-23

book sample The scripts that generate book content from Grotto are done, the output requires a little bit of tweaking after they run, the pdf output looks good and I’ll try printing soon. This is going to be an expensive print job, as the book is over 1000 pages, 500ish 2-sided. I intend to print signatures and stitch it coptic, including whatever thesis writing is done.

More ➜

studio notes 4-10-23

Having all sorts of long-term ideas go out the window. Up until now I’ve been using a solenoid lock to stop a ratchet wheel in one direction and another ratchet wheel and arm to keep the assembly only turning in one direction. I had a limit switch that would flip on a turn.

More ➜

studio notes 4-7-23

Flailing. A few issues made me abandon my idea for a doorknob controller plinth in which the doorknob portion revolves to select a “door”, reorienting the player- first the reintroduction of a projection screen into the space, which would make variable player orientation weird, and 3 or four mistakes in laying out an mdf laser cut that made the complicated revolving encoder/slipring assembly off center or needing hand drilled holes over and over, resulting in a lot of wasted time. The alternative (keeping the doorknob controller) is an additional spinner knob control on the top of the plinth. I don’t love it. The idea here is there’s a projection of a circular array of the doors in the room, with the color of the room and doors, a spinner revolves them, the doorknob tests them to go through.

More ➜

Feelies as metaphor and method

In the early days of computer gaming, developers and publishers used various creative physical copy protection systems to prevent unauthorized copying and distribution of their games. These methods usually required the user to possess a specific physical item (“Feelie”) that came with the game in order to play it. Some notable examples include:

More ➜

Studio-notes 3-11-23

Big leap forward today- passing through a door in grotto gives it a color marking of its connecting room, letting you know what path you’ve taken. The maze is still disorienting, there are no cardinal directions in the map view, but you leave a breadcrumb trail as you traverse it.

More ➜

studio notes 2-27-23

Some small updates to Grotto- keys are no longer single-use, but rather have a chance to break on use, like shields and brushes. Shield bashing- you can attempt to shield bash locked doors now, but this has affected regular character shield bashing and will need to be revisited. Added incense animation.

More ➜

Studio Notes 2-23-23

the node app I made to check the grotto api and send mqtt (mosquitto) messages to things like lights and the doorknob controller is working, which is huge.

More ➜

studio notes 2-22-23

Genealogy breakthrough today- was able to fix a wrong name and add one generation prior to the earliest Fridel family member on record as well as a few additional people in other families. This means another version of the GEDCOM file, which is kind of a hassle at this point, because a new GEDCOM file totally rebuilds the game maze and I need to make sure that the cenotaph activation and relic csv’s all have all correct person names.

More ➜

studio notes 2-16-23

Some changes to Grotto from Saturday that I’m just now documenting here- Added the body parts UI area and changed the item interaction pattern- body part items can be equipped, all items in either section have a ‘x’ button that will drop them in the current room.

More ➜

studio notes 2-7-23

The cheapo usb 5.1 audio interface I got only does surround sound through a bunch of 3.5 mm analog plugs, and the surround speakers at the lab are digital only (the interface has optical out but it only carries stereo).

More ➜

Multi-tasking with CircuitPython

For many of us, the first program we see or run on a new platform is some variation of “Blink” to turn an LED on and off at some rate. It has become like the “Hello World” of microcontroller programming. This will turn the LED on and then wait, or in other words, time. […] Link

More ➜

studio notes 2-3-23

My current challenge is to find ways to connect Grotto to a gallery space for my final show. I’d like to avoid falling into the same pattern of “Thing projected on a wall” that you see at a lot of these shows. So far I have been concentrating on esp32 microcontrollers or headless raspberry pi’s that can get information from Grotto’s API. I’d like to use lights and sounds and weird tactile interfaces as much as possible.

More ➜

Grotto 0.10.0 - Grottopaint

First big push to the staging server in 2023- 0.10.0 includes the first iteration of a graphics window for room maps and animations, using a combo of pixi.js, svelte-pixi,, and a new tiled-compatible version of what was previously called scratchbeam, that I am now calling grotto-paint.

More ➜

Phantom Homeland

This is project start for Phantom Homeland, an art installation.

More ➜

the dungeon, the frontier, the arcology

My thesis project is about historical and future imaginaries, played out in a game substrate (a web-based game environment I call Grotto.)

More ➜

old czech legends

For some reason I had a difficult time thinking of a piece of art to refer to for this exercise, so I picked the last film I watched for research purposes. The film is Jiří Trnka’s stop motion film Staré pověsti české loutkový [Old Czech Legends]. This might be an interesting selection because the film doesn’t have subtitles available and I watched it without knowing Czech. I did have some access to what what happening in the film because I have an English translation of Alois Jirásek’s Ancient Bohemian Legends, the book that serves as its primary source (which Trnka also illustrated).

More ➜