This repository contains the results of the SausageDog hack at AECTech Barcelona 2024.
Presentation: AECtech_2024_Hotdog_Optimizer.pdf
We make complex design spaces accessible to end users without requiring them to operate the various parameters controlling the design space. The end users choose what is important, and an optimization algorithm picks options from the design space.
We implement a web application that includes an implementation of the NSGA-II (Non-dominated Sorting Genetic Algorithm II) algorithm. Please find details about this algorithm and our implementation here.
The optimization algorithm runs on the front end, but the population computation uses Grasshopper models computed on a ShapeDiver system. This allows us to offload the heavy computations to the cloud and parallelize them. The optimization algorithm does not require heavy computation and is ideally suited for web browsers.
Our implementation is based on the ShapeDiver App Builder framework. We extended the React front-end code by the optimizer and a corresponding UI widget. You can find our changes in this pull request.
The optimizer can be used using any Grasshopper model uploaded to ShapeDiver which fulfills the requirements as explained in the following.
Directory Grasshopper contains example models from which to start. The Grasshopper models need to include a data output component defining the objectives for the optimization algorithm. They also need to include the App Builder components defining the optimization widget as shown in the example models (simply copy those components).
The optimizer in the front-end is capable of optimizing the following types of parameters of the Grasshopper models:
- Numbers, Integers
- Value lists
- Booleans
The front-end application is deployed here. It can be used using any Grasshopper model uploaded to ShapeDiver that fulfills the requirements explained above.
Some examples:
- Hot Dog
- Grasshopper model
- Give it a try here
- Barcelona Blocks Optimizer
- Grasshopper model
- Give it a try here
Read more here.