Grotto menu: ☜ Back to Index


Grotto Test Server

Grotto is an experimental web space that treats html pages as rooms that human players navigate in real time. This game is a sandbox for me to experiment with modes of world apprehension in games, and a place to both activate and conceal a family history in relation to past and future imaginaries.

The Dungeon The Arcology The Frontier

Current developers:

Thanks to:

Ariel Uzal, Andy Reitano, Prof. Chandler McWilliams, Prof. Jenna Caravello, Prof. Allison Parrish, Prof. Danny Snelson, Prof. Eddo Stern, Diana Thayer, Chris Cuellar, Tristan Espinoza







In addition to communication within a player class, I’ve also been thinking about playing with the current darkness mechanic to allow for different perception for different classes.

More ➜

language communities

I’ve been looking for a while for mechanical ways to represent “imagined communities” (Anderson), and especially linguistic communities. Grotto is starting from very abstract and sometimes arbitrary formal bits- random character classes (robot, animal etc) with meaninglessly arbitrary skills that don’t have an immediately obvious mechanical use.

More ➜


I really enjoy the way stuff looks when I draw it with the tile painting program we made, but to actually include it seems like it would be so complicated. Using something pre-made like d3 seems much easier, but visually boring.

More ➜


Grotto has some somewhat unique challenges to its success as an actual game because it uses an atomic maze structure where exits are blind guesses about what is inside adjoining rooms. This mode is inherited from interactive fiction, Hunt the Wumpus, MUDS, etc– games that either had puzzles within the rooms themselves, or relied on constructing a mental model of the maze based on guesses (each one potentially fatal, in the case of Wumpus). I’ve had critiques about whether the game is intelligible and whether there is any player enticement to play. I’ve kind of sidestepped these critiques by saying that the real game mechanics haven’t been implemented yet, and that they would be the sugar that activates the content I am spreading through the maze in room and item descriptions. This suggests that I have some kind of plan for game mechanics though, and all my game design ideas gravitate towards roguelike mechanics, which may not be a good fit here. A roguelike structure where a visual map is slowly completed by exploring would probably require a substantial amount of retooling.

More ➜

Grotto 0.8.0



  • Eyes for characters to view items
  • Arena for fighting ancestors
  • Inline files for Items




More ➜

class item ideas

  • robot item: (servo? actuator? battery?) action? (work? compute?)

More ➜

items, eyes, maps

Today was a first planning meeting to resume development on Grotto, and start the big project– the one I’m now calling Phantom Homeland (I got a good laugh out of calling it Dusičky for a little while, but come on).

More ➜


More ➜


More ➜


Last night I was thinking about how to evolve the gui for grotto. Specifically- taking the older text view and fusing some elements from the joystick-gui view into it. I’d like to add a div with a top down map view of the room you are in with glyphs signifying items and doors. I added some new tiles to my drawing tool and started playing with the most minimal way to represent objects. when I stopped trying hard to represent things and abstracted all the way down to two-tile glyphs, I immediately unlocked a memory- another atari game (eyeroll emoji). The creatures from imagic’s Cosmic Arc

More ➜

post crit roadmap session

Post mud room show spitball session

More ➜

UCLA Show notes

Last night was the first public viewing of Mud Room. As of this morning I’ve fixed a number of bugs I identified in the first show. There’s a remaining problem where the kneeling pad errors out when the pad is set to keyboard press/release but works with keyboard write, which is a little problematic since people kneeling for over 10 seconds trigger multiple kneels. I’ll likely need to fix this after the show is over.

More ➜


A lot of development work and not a lot of reflection or documentation. I’ll take a moment here.

More ➜

Grotto 1-8-22

Grotto: Pair programming session on the Grotto codebase today.

More ➜

grotto api

Good day of work with @thismatters today, we installed the django-rest-framework which enabled api pages for rooms. This will enable abstracting the grotto data out into new UI’s. I had hoped to get the new html/css/vanilla js UI I started working on in time for Monday’s review, but it seems unlikely.

More ➜

Grotto 0.3alpha notes

Another pair session with @thismatters today, working on items and room attributes for Grotto/Mud Room.

More ➜

grotto and mudroom items

Grotto itemBuilder branch commit 519f103750178349cbf9d2e646e61744088f138c

More ➜

Grotto 0.1 alpha

An instance of Grotto is now up at

More ➜

grotto 2-9-21 exits

I got some assistance today with automatically connecting rooms by symmetrical exits from my friend Paul. Now, as you generate rooms they randomly link to up to three previous rooms, so that you get a repeating node pattern that balances out into shapes like the Hunt the Wumpus “squashed dodecahedron” I linked in an earlier post. I added a sidebar of exit links to rooms & made the bullets lil emoji doors because why not.

More ➜

grotto 2-8-21

libsass is installed and working. I started making some cursory room styles with a couple of fun background-image outliers for weird room color names. Login/registration page is next.

More ➜

grotto 2-6-21

Room detail pages are loading, room generator is working and creating rooms! Before I start writing any css, I want to figure out how to install sass. Django’s default system of lots of app-level static folders confuses the hell out of me when it comes to managing css, I’d like a single compiled stylesheet and sass partials can live at app-level if they have to.

More ➜


some grotto pomodoros- I got rooms listing at /mapBuilder/index.html and the button triggers the old room generator script, but the script still needs to be adapted to add rooms to the database not make flat html documents. right now markovify can’t find its corpus text document even though the path looks right to me.

More ➜


Worlds crappiest page flowchart for grotto v 0.0000001

More ➜

jan 28 grotto

Had time for some Grotto pomodoros today. I am most of the way through the django tutorials but I still don’t really know what I am doing. The parts that are the main mystery to me atm are views and models.Today I am looking at I conceptually understand what a view is in MVC but I don’t really know anything about the python functions that is using to construct those views. Today I’m starting here in my reading.

More ➜

grotto 1-14-21 pomodoros

I did 2-ish pomodoros for Grotto today, focusing on the Django tutorial project. I got here.

More ➜

zero players

I reposted Paolo’s Games Without Players piece yesterday because every time I think about how best to situate Thicket, I feel like it would be as a zero player mode simulation, constantly reseeding itself. I don’t think of Thicket as being a particularly healthy space to inhabit, it’s purposely about themes that bother me- predation, hierarchy, violence, manipulation.

More ➜


I’m back in Austin but I’m “bubbled” with my partner and her mom and sister. My Mother lives in Austin but I haven’t gone to go see her. We quarantined two weeks when we got here, and then my partner’s Mom had an exposure scare so we waited longer. My mother has gotten increasingly despondent, even though we had got her an iPhone and managed to show her how to facetime with us on it.

More ➜


It occurred to me that since I’m already writing some python for this and I need a CRUD app with users and a database, maybe i should use Django for this.

More ➜

room descriptions

Today I repurposed one of my python random text generators to use as a grotto page generator. Pulling from a corpus made of these dungeon descriptions, this spits out 20 html pages, with hashid filenames and titles from a master color list I’ve compiled (part of which I scraped from Joyce’s Ulysses with another python script). Then I try to detect major color words in those names and assign a background-color to the page body (this is one of those times it would be great to know how to use more advanced machine learning 😒). For not a ton of work, this is creating some pretty cool results! The room descriptions are mushed up rpg-inspired poetry which I like, since this game wouldn’t have any room interactions really, just moving from room to room, looking for/avoiding other people.

More ➜

grotto links

This is the very first grotto post.

More ➜