Breathing new life into Brooks Running with Clojure and Arduino
Over the past two years, we had the opportunity to help build a smart sculpture for the lobby of Brooks Running’s new Seattle headquarters. The sculpture is made from dozens of mechanical flowers that open and close throughout the day, reflecting the environmental performance of the building. When water and power consumption is low, the flowers bloom and open—when they’re high, the flowers close, and go dormant. The sculpture is powered by a Clojure server running on a Mac Mini, sending messages via six Arduinos.
BROOKS RUNNING & THE ARTIST
The Brooks headquarters houses 300 employees, right off the Burke Gilman trail. The building is one of the most resource-efficient structures in the city—automated lighting systems keep power demand low and giant cisterns capture rainwater for re-use. Brooks and the construction firm Skanska, wanted a unique way to tell the building’s story. They found Casey Curran, a Seattle-based sculptor that builds intricate, moving mechanical models of living things: flowers, vines and leaves crafted in brass and steel.
Casey contacted us and described the plan: dozens of brass flowers, vines and leaves would crawl up and out of cracks running through the Corten steel wrap that spans the main entrance to the buildings. Employees and visitors would see in the brass flowers a reflection of the building’s environmental performance.
PROTOTYPING IN CLOJURE
We helped Casey build a proof-of-concept for the sculpture—an Arduino driving four servos opening and closing flowers, controlled via a laptop serving up a web interface. Keeping the controller logic on the laptop allowed us to program in my environment of choice for experimental and early-stage projects—Clojure. The web interface was a quick path to interactivity and demonstrated that the flowers could respond to inputs from an external control system. The demonstration was a success and Casey was commissioned to build the full-sized sculpture for the Brooks lobby.
We had to scale the proof-of-concept design up from four servos and a Macbook to dozens of servos being controlled by six arduinos, mounted on the wall of a utility closet off the lobby. We worked with a friend of mine, Breland Miley, to calculate the power needs of the Arduinos and servos and lay out the wiring efficiently and safely. For the prototype, we used Firmata to send control commands to the servos from the PC, but for the production version, Breland wrote a simple messaging system that helped us avoid problems we were having with the Firmata Clojure bindings.
Casey and I settled on a method for the sculpture to report building performance. We had to balance a desire for the sculpture to faithfully represent how the building was doing, while remaining dynamic even when the building state wasn’t changing. We chose to have the flowers open and close at random — when the performance score is high, the flowers tend to stay open longer and stay closed for less time. When the score is low, the opposite. This means that the number of flowers open at a given time is slightly random — but when the building is doing well, more will tend to be open, and fewer will tend to be open when the building is doing poorly.
The design of the finished sculpture was very much a scaled-up version of the prototype — avoiding writing any logic for the Arduinos helped us move quickly and Clojure was a great platform modeling extremely long running processes. The flower positions are modeled as an long-running infinite stream of 0-1.
A major unknown on the project was integration with the building’s environmental systems—there were restless nights dreaming of BACNet datatypes in Clojure. In the end, we settled on about the simplest system possible—the control PC and the building’s central environmental controller both mount a shared network drive. Every five minutes, the building computes a performance score and the sculpture controller reads it out—and it’s worked without issue.
The project went live in September 2014. It’s amazing to watch the flowers slowly and silently opening and closing and the vines gently lifting and dropping their leaves. It’s often the first thing guests ask about when they visit Brooks—are those flowers moving?
The project being a union of art, environmental UX, and hardware, it was a great project for Thomas Street and we’re excited to do more.