CORE studio is pleased to announce Design Explorer, an open source tool for exploring design spaces on the web.  We’ve been working on this project on and off for well over a year now and we’ve presented it a number of times, but we’ve never written about it. Shame on us!

Design Explorer

Design Explorer

Over the next few weeks, we will publish a series of blog posts about the project’s goals, the natural history of design space tools in AEC, and how Thornton Tomasetti and others are using Design Explorer in practice. This first post will focus on the current state of the project and the main problems that Design Explorer is trying to solve.

The first problem will be familiar to anyone who has done any parametric and/or computational modeling: parametric models give you too many iterations. Of the multitude of possible states that any reasonably complex parametric model describes, which ones are the good ones?  Are there some zones that are better than others?  If so, how do we find them?  It depends what you mean by ‘good’ and ‘better’, of course…

For some design problems, performance is measurable. Designers and engineers can qualify ‘good’ according to project-specific performance criteria.  Computational modelers can (and should!) build analysis feedback loops into their models to let performance analysis inform the trajectory of the design process.  Since CORE studio supports a world class engineering practice, we have the luxury of dealing almost exclusively with these types of problems.  In most cases, we build rich parametric models with embedded analysis feedback loops to rapidly study a wide range of potential solutions.  As such, this problem (too many iterations, where are the good ones?) is particularly important to us.

Nervous SystemNervous System’s edge based growth design space. Source.

The second set of problems is related to the nature of design spaces themselves. The types of design spaces that our grasshopper definitions and dynamo graphs describe are multi-dimensional.  Multi-dimensional spaces work  like the three dimensional space we all model in every day – they just have more axes.  Whereas a three dimensional point in euclidian space is described like this: { x, y, z }, a higher dimensional point in a design space might be described like this { length, width, height, numFloors, cornerRadius, rotation, embodiedCarbon, cost }.  Because our design spaces are typically of a higher dimension [than three], they are hard to visualize.  And because they are hard to visualize, they are very hard to navigate.

Wired’s illustration of a 3D design space. Source (and excellent article about design space thinking in the graphic design world).

You can think of Grasshopper and Dynamo as design space navigation interfaces.  Parametric modelers allow you to navigate from one point to another in any design space that you construct.  When you drag a slider in Grasshopper, you are moving along a vector in your design space, computing and visualizing one iteration at a time as you go.

Design Explorer is an interface that lets you visualize and filter groups of iterations – sets of design solutions that are both intimately related, and potentially scattered across a vast, high-dimensional possibility space.

Design Explorer Demo

Users export their design spaces from parametric authoring applications (Grasshopper, Dynamo, Catia, Etc.) in the form of a data.csv file and a series of images and Spectacles models.  The design space data is generated by traversing the parametric model in an automated fashion – either with our brute force solver, Ladybug’s Fly component, or an optimization algorithm such as Galapagos or Octopus.  After all of the data has been generated, it must be hosted somewhere on the web (Google Drive, Amazon S3, or your own server).

Design Explorer reads the data.csv file and generates a 2D visualization of the design space called a parallel coordinates plot (with a grid of thumbnails and some other UI).  The plot’s vertical axes represent design variables and performance metrics; the lines running horizontally across the plot represent individuals within the design space.  The design space can be filtered by clicking and dragging along the vertical axes, and by dragging filters up and down.  Users can investigate individuals by clicking on a thumbnail and reviewing a full size image and a 3D model.

Our next post will concentrate on the natural history of these ideas within our group, highlight a few parallel/adjacent projects within the AEC technology community, and identify some meaningful precedents in popular culture. In the meantime, you should try Design Explorer!  Give the samples a look, check out Mingbo Peng’s tutorial video, fork the Github repo and mess with the code, and let us know what you think!


Written by: Benjamin Howes