Inspiration

In Conway's Game of Life, a set of simple rules give rise to an incredibly complex systems. We wanted to research whether this cellular automata approach could be applied to the process of designing architectural floorplans. Specifically, we wanted to create a flexible framework where a user could create and refine rules "on the fly", and monitor how those rules evolve into a stable (solved) floorplan.

WHAT IT DOES

Shuffle was built with a typical residential apartment floor plan in mind. The algorithmic solver takes the prescribed number of rooms and places one seed point for each. The algorithm begins to "grow" cells in 1" increments around each point. When the cluster of cells radiating from each seed becomes large enough to intersect another cluster, the algorithm must evaluate whether each cluster meets the minimum requirements -- if one side is not satisfied it will grow steal from the neighbor(s), if both are satisfied they will stay the same. In addition, the system solves for blocks containing a furniture or appliance object and associated mechanical or accessibility clearances within each space. When all minimum requirements are met and it has gotten as close as possible to target area/dimension values, the algorithm will stop iterating.

HOW WE BUILT IT

The algorithmic logic was coded in C# using Visual Studio to create a custom component for Grasshopper. The output is visualized in Rhino through Grasshopper to show the points growing and exchanging while the tool runs.

CHALLENGES WE RAN INTO

We ran into roadblocks trying to define the logic for some of the supplementary aspects of the solver. For example, it's possible that the exploratory nature of the algorithm could result in undesired biforcation or division in the rooms. Creating rules to identify and discourage separation require many more steps than anticipated but such tests are crucial to reducing potential flaws in the system. Another challenge was determining a hierarchy for assigning priorities to layered constraints. An example is the multiple types of clearance requirements -- general maneuverability/access, object-based operational, and ADA -- to test for proper fitting and arrangement within each space

WHAT IT DOES

Shuffle was built with a typical residential apartment floor plan in mind. The algorithmic solver takes the prescribed number of rooms and places one seed point for each. The algorithm begins to "grow" cells in 1" increments around each point. When the cluster of cells radiating from each seed becomes large enough to intersect another cluster, the algorithm must evaluate whether each cluster meets the minimum requirements -- if one side is not satisfied it will grow steal from the neighbor(s), if both are satisfied they will stay the same. In addition, the system solves for blocks containing a furniture or appliance object and associated mechanical or accessibility clearances within each space. When all minimum requirements are met and it has gotten as close as possible to target area/dimension values, the algorithm will stop iterating.

HOW WE BUILT IT

The algorithmic logic was coded in C# using Visual Studio to create a custom component for Grasshopper. The output is visualized in Rhino through Grasshopper to show the points growing and exchanging while the tool runs.

CHALLENGES WE RAN INTO

We ran into roadblocks trying to define the logic for some of the supplementary aspects of the solver. For example, it's possible that the exploratory nature of the algorithm could result in undesired biforcation or division in the rooms. Creating rules to identify and discourage separation require many more steps than anticipated but such tests are crucial to reducing potential flaws in the system. Another challenge was determining a hierarchy for assigning priorities to layered constraints. An example is the multiple types of clearance requirements -- general maneuverability/access, object-based operational, and ADA -- to test for proper fitting and arrangement within each space

ACCOMPLISHMENTS WE'RE PROUD OF

It works! - we were excited to create a working concept in the short 30 hour time frame. Collaboration - as one of the most cross-disciplinary teams, it was helpful to draw from a wide array of expertise.

WHAT WE LEARNED

Algorithms are time-consuming! We were able to establish a functioning system, however it takes awhile to refine and continuously build in the rules that account for the nuances architectural design. One half of the team experienced coding in C# for the first time and learned a lot about computer science while other members learned much more about architectural space planning and code requirements.

WHAT'S NEXT FOR SHUFFLE

Further research would continue to add rules and constraints to the algorithm in order to account for all typical scenarios in laying out a residential apartment. Once the system reaches a state of harmony, it would be nice to establish representational lines at the intersection point of room clusters. The linework diagrams could also evolve into 3D massing or even Revit elements to serve as a starting point for refinement and documentation. Data visualization would help narrate the gradual evolution of the rooms and explain how the algorithm arrived at the final solution.

Built With

Share this project:
×

Updates