Let Us Cultivate Our Garden

Portland, Oregon 2022-05-26


Let Us Cultivate Our Garden is an interactive botanical experience, presented by CETI at the Welcome Dome in Portland, Oregon.

Visitors to the dome were able to scan a sign with their mobile phones, which launched an augmented reality experience in which the entire dome was covered in virtual versions of flowers native to the PNW. Tapping the individual flowers triggered musical tones and waves of animations across the field of blooms.


The phrase “Let Us Cultivate Our Garden”, uttered in the final lines of Voltaire’s Candide by the eponymous character, has been widely interpreted since the book’s publication in 1759. To me, it represents a kind of individual mandate to address personal, community and broad social issues by working to “cultivate” the good things we’d like to see in the world. It demands achievable, but deliberate, effort to take the care of the things that our within our reach to take care of.

Presented with an opportunity to anchor an AR artwork to Pioneer Square’s “Welcome Dome”, I immediately began to imagine the dome as a seed planted in the heart of Portland that would, with the right kind of cultivation, bloom into something extraordinary.



At the heart of this project is a custom system for generating flora based on a simple set of topological rules and parameters, which I authored using three.js. I then developed a series of “presets” consisting of simple algorithms and hand-drawn textures to approximate flowers native to the Pacific Northwest. After exploring different methods of “growing” these flowers out of the dome, I decided to sample an invisible mesh created in Maya with geometry matched to the physical dome, then place flowers on the surface using a simple sphere packing algorithm.

I was then able to adapt these systems for use with 8th Wall’s image detection and world tracking features to place the virtual flowers in AR. The tones for the individual flowers were created using Studio One. The resulting files are played back and pitch shifted with a tone.js sampler.