Wolfram Computation Meets Knowledge

A New Kind of Building?

I recently came back from the NKS 2007 Summer School and the 2007 Wolfram Science conference. This was my third time at the Summer School, after being a student in 2003 and an instructor in 2005. Being an instructor at the NKS Summer School means giving lectures about A New Kind of Science, but the most intense part is supervising student projects.

Each Summer School student carries out a project that can be used in a variety of ways—for example, some are published in academic journals, used as the basis of doctoral dissertations or incorporated into professional activity. (A nice feature of this year’s Summer School was that students could now also present their work in the Wolfram Demonstrations Project.)

This year I supervised five projects, with topics ranging from social networks to finite state automata. And as an example, I thought I’d write a little bit about the story of NKS 2007 student Maurice Martel’s work.

Maurice came to the Summer School from Open Form Architecture in Montreal, Canada, a firm that he runs together with second-time Summer School student Maxime Moreau. Maurice was interested in generating architectural structures subject to spatial constraints (such as a given area in which they need to fit). During his project meeting with Stephen Wolfram, Maurice settled on a project in which he would run 2D cellular automata on irregular grids determined by arbitrary polygons.

Row[(With[{rule = 93, step = #1}, ArrayPlot[CellularAutomaton[{rule, {2, 1}, {1, 1}}, {{{1}}, 0}, {{{step}}, {-35, 35}, {-35, 35}}], ImageSize -> {100, 100}]] &) /@ {2, 20, 50}]

Maurice’s ultimate goal—as you would expect from an architect—was to create a 3D structure. He used Mathematica’s built-in computable data function PolyhedronData to choose different polyhedra to insert at each point location, and wrapped everything in a Manipulate function to create an instant form generator.

Instant form generator in Mathematica

The idea in Maurice’s project was to create an interface where the user could determine an arbitrary polygon that would serve as the boundary of the cellular automaton evolution.

He used a combination of the Manipulate, Locator, ArrayPlot and CellularAutomaton functions to create an interface in which the user could interactively determine the area where the cellular automaton would be run:

Screen shot of interactive cellular automaton in Mathematica   Screen shot of interactive cellular automaton in Mathematica

The form generator Maurice created then enabled him to mine a corner of the computational universe in search of shapes that could be used as a basis for actual buildings:

NKS-based shapes for buildings

© 2007 Open Form Architecture

Many of the shapes in the above picture look rather interesting, but it takes an architect to turn them into a building design. Things were made easier by the fact that Mathematica can export its 3D graphics to a format that Maurice could plug directly into CAD applications for further design work. The final result was a design that feels very much like a building (at least for my modernist taste), but at the same time shows its origins as a cellular automaton.

Complete design of cellular-automaton-generated building

© 2007 Open Form Architecture

Stephen once suggested that at some point in the future there will be buildings that have been entirely generated by the evolution of a single rule. For me, it seems that Maurice’s three-week project at the NKS Summer School has come very close to that objective—something that has now been made possible by the integration of computational primitives, symbolic graphics, computable data sources, dynamic interactivity and import/export capabilities in Mathematica 6.