Ross School - Senior Projects 2010


Student: Charles Lehner

Mentor: Urban Reininger






Title: The Infinite Maze




My project was to create an online collaborative maze that people can move and play in. In a traditional maze, the goal of the player is to get from the start to the end. In The Infinite Maze, I have created a start, but no fixed end: When you get to a place where the maze stops, you can start drawing it from there. The maze is in perpetual self-creation.


The result is an online space where people can both collaborate and compete, as they build off of each other’s drawings and expand outward in ever-increasing complexity and artistry.




The site:

The code:


Keynote presentation


Screenshot of the Maze (Feb 6, 2011)






The idea came to me near the end of Junior year to make a site where people could move the cursor through a maze image, and when they got out of the maze they would be able to add onto it with their own drawing. I decided to call the idea “The Infinite Maze.” I imagined that it would allow for interesting collaboration to happen, and it was supposed to be fun. It turned out to accomplish most of this.


This project combined two different interests of mine: making interactive collaborative websites, and making mazes.


My own maze drawing

I have enjoyed drawing mazes for a long time. As I got older I tried to make them increasingly complex and difficult. Eventually they got so complex that it began to be hard for me to make them. By making this site I returned to my maze-drawing interest, but this time drawing other people into it through the Internet.


The site as a collaborative web app

There were a few websites that were inspirational to me in conceiving The Infinite Maze:


   The Never Ending Quest (1999) (2008) (2009) (2010)


Each of these sites has an infinite collaborative space for a written story, drawing, text area, and scrabble game, respectively. I wanted to do for mazes what these sites did for their mediums. I see the Infinite Maze as part of the movement of new collaborative websites like these.


Important technologies used

The <canvas> HTML tag is used to allow drawing to take place in the page. A few years ago, not many browsers supported this, and so a site like this one that depends on drawing would not have been as successful.


CouchDB is the database and web server for the site. That means it stores all the maze images that people draw, and it delivers them every time anyone goes to the site. The site can precisely be considerd a CouchApp.


The site meets the public

Many people enjoyed moving through the maze and contributed great drawings to it. As of Feb 6, 2011, 76 users had signed up and together drew 1386 squares of maze.


Works Consulted



Anderson, J. Chris, Jan Lehnardt, and Noah Slater. CouchDB: The Definitive Guide. 15 Oct. 2010. <>.


Chacon, Scott. "Git Book - Basic Branching and Merging." Git Community Book. 10 Nov. 2010. 16 Feb. 2011 <>.


Couchdb Wiki. Apache Foundation. 15 Oct. 2010 <>.

Haverbeke, Marijn. "Chapter 7: Searching." Eloquent JavaScript. 4 Dec. 2010. <>.


Lehnardt, Jan. "What's new in Apache CouchDB 0.11 - Part One: Nice URLs with Rewrite Rules and Virtual Hosts." CouchOne Blog. CouchOne. <>.


Malone, William. "Create a Paint Bucket Tool with HTML5 Canvas." William Malone. 13 Dec. 2010 <>.


"Pixel manipulation with canvas - MDC Doc Center." Mozilla Developer Network. 10 Sept. 2010. <>.


"Safari CSS Visual Effects Guide: Interactive Visual Effects." Safari Reference Library. 03 Nov. 2010. Apple Inc. 20 Dec. 2010 <>.


Expanded list of websites consulted (sources expanded.txt)



Community Member (Details)



Pamela Fox

Developer Relations, Google Inc.