Labyrinth Workshop

Labyrinth Workshop

Workshop Schedule

February 19th

1:00 - 2:00
2:00 - 5:00
5:00 - 6:00

March 26th

Workshop Introduction
Pattern Experiments in Groups
Closing Conversation

Robotic Drawing at Texas A&M
Schedule TBD


This collaborative workshop will explore the timeless archetype of the labyrinth, a recurring figure in the history of architecture and computation. The manifold pathways of the labyrinth intertwine space and logic.

For the past few years, our office has explored the labyrinth as a the framework for broad interrogations of the indeterminate in both architecture and software.

The labyrinth is an architectural type devoid of utility and thus an ideal foil to explore architectural performances with computation beyond immediate concerns of productivity or efficiency. Outcomes from this workshop will include a temporary folly on the Texas A&M campus.

In late March, Outpost Office will travel to campus to install one more more patterns generated during the workshop at 1:1 scale. We will be using a GPS-guided marking robot, typically used to install sports fields, to paint these patterns. You can learn more about our robot and its kinetics here.

Our previous work with the robot includes Drawing Fields, winner of the 2020 Ragdale Ring competition and Cover the Grid at the Chicago Architecture Biennial.


To begin, download the workshop Rhino, Grasshopper and Illustrator files here.

Open the Rhino file first. The file contains a small fragment of the Texas A&M campus, including the Architecture Quad. Next, open the Grasshopper script.

The provided Grasshopper script uses Prim's Algorithm, a method for producing a minimal spanning tree from an undirected weighted graph. In layperson's terms, Prim's algorithm uses a grid of "cells" to produce mazes by randomly selecting a cell, assessing the "state" of its neighbor cells, and growing the pattern. It does so until every cell in the pattern is filled or the algorithm is exhausted. If you want to see what is going under "under the hood" of the definition, navigate to the MAZE SCRIPT component and double click to explore the code (in Python). A guide to the script parameters can be found below.

Once you and your team have the script working, begin experimenting with the various parameters. Note how even subtle alterations to the parameters produce dramatic changes. Experiment not only with the numeric parameters, but the boundary geometry, which can be any 2D closed curve as well.

After experimenting with the script, begin working with your team on a design approach. Pay particular attention to questions of scale, the relationship between the pattern and existing landscape, campus circulation, etc.

The script produces a seamless labyrinth pattern, but your team should work to decide how you will incorporate its output into your final proposal. Will you overlay several labyrinths on top of one another? Will you install several distinct labyrinths in the quad? Will you combine multiple labyrinths into a single pattern? Will the boundaries of your proposal be quite clear or incredibly blurred? How will your pattern effect the movements and flow of people in the space? 

When you have completed your studies, produce a series of visualizations that describe the proposal using the provided Illustrator template. Please use the provided template to define drawing boundaries, but we invite you embellish the drawing with other scale figures, colors, graphics, etc.

When finished, upload your group's work to the shared Miro board here.

After our closing conversation, we will also ask you to archive your work, including all Rhino and Grasshopper files here. We'll need these sources files to produce g-code for the Turf Tank robot.

Script Parameters

The definition provided for this workshop includes the following input parameters: 

Labyrinth Boundary - a single, closed boundary curve of any shape that will be "filled" by the algorithm

Grid Type - the geometry of the underlying cellular grid; select from Square, Triangular or Hexagonal

Curvature - determines the curvature of the final pathways; a curvature of "1" for example, is a polyline with no curvature. Typical nurbs curves in Rhino use a degree of "3"

Cell Size - determines the size of the underlying grid

Wall Thickness - sets the thickness of the labyrinth walls

Reduce % Field - randomly deletes a percentage of cells

Filter Walls By Length - eliminates walls from shortest (0) to longest (1)

Seed - random number seed for the entire script

To move the geometry into Rhino space, simply right click on either Final Curve Geometry or Centerlines and bake.


No items found.
No items found.