Unless you’re a software developer, computational design in architecture can seem like a black box. Though parametric modeling and programming tools have become more common in firms, architects without extensive coding experience may feel like they're looking at a foreign language.
Grasshopper is the visual programming language that underpins the CAD and 3D design software Rhinoceros (or Rhino, as it’s more commonly known). Through Grasshopper, Rhino users can build algorithms by stringing together wireframes of data and mathematical functions—dictating, say, the height of a building or the depth of a concave cladding element—through a drag-and-drop interface. The algorithm can then automatically generate geometries for building models in Rhino, and update them when users tweak parameters back in Grasshopper.
The process and result can look intimidating to the uninitiated. Global architecture and planning firm NBBJ, headquartered in Seattle, wants to ease the learning curve for this increasingly common aspect of design. Today, the firm is releasing Human UI, an open-source Grasshopper plugin that creates intuitive graphical interfaces for adjusting the parameters of building models in Rhino. It is also available in the plugin library food4Rhino.
Here's how it works: After a wireframe has been built by a designer knowledgeable in Grasshopper, Human UI overlays a more user-friendly interface that emulates the interactive control panel of a mobile app with drop-down menus, sliders, and toggles. As a result, essentially anyone can modify a design parameter and see the changes in a 3D Rhino model instantaneously.
“It takes this difficult, sort of unapproachable tool and turns it into a professional looking app,” says San Francisco–based NBBJ design computation leader Marc Syp, who worked on Human UI with Seattle-based lead developer Andrew Heumann. “The interface allows designers to build tools of any range of complexity and hand them off to other folks [such as consultants and clients] who are not necessarily going to open up a Grasshopper definition and fiddle around with stuff.” The plugin can work with any of the parameters available in Grasshopper, he adds.
One application that Syp and Heumann created was an interface to help a healthcare client plan ahead for new facilities based on projected growth. The team aggregated about eight spreadsheets of data on population trends across the healthcare system and then built a computational tool that allows the client to estimate the gross square footage needed across its locations for various medical services based on a user-selected population growth.
Other potential applications for Human UI include experimenting with the allocation of public space on a project site, varying an exterior wall’s thickness to calculate differences in construction cost, adjusting building floor plates to project rents, and modeling the effects of corridor placement on circulation. “The value is hopefully pretty clear because we’ve all been living with this lack of user interface infrastructure in Grasshopper for many years,” Syp says.
NBBJ worked on the plugin for 10 months before releasing it to the public. The firm is also releasing the code repository so anybody can download the code, tweak it, develop their own project, and, the firm hopes, contribute to the repository.
Syp brushes off the idea that his firm is losing a competitive advantage by making the tool available. Rather, he says it’s the responsibility of computational designers like his team to make their work more relevant to designers and clients alike. “We see it as something that is powerful and will change the way that people interact with Grasshopper,” he says. “And, frankly, it feels not right to just hold onto it.”
Note: This article has been updated since first publication to correctly identify the lead developer of Human UI as Andrew Heumann.