Rozvany – Optimal Structural Layouts

Rozvany is an application that generates optimal structural layouts. Given user inputs, such as boundary conditions (free, pinned, or fixed), column locations, and line support locations, the app outputs the optimal orientation of framing based on a set of geometric principles originally derived by the engineer George Rozvany, whom the app is named after.

There are four parts to the app:

Grid – Users can play with different column locations

Square – Users can vary the boundary conditions of a framing layout with a square domain

Draw – Users can draw their own boundary, column, and line support positions

Upload – Users can upload their own Rhino geometry to be analyzed

Each part can be accessed from the homepage.



The intention in building the app was to showcase Rozvany’s work and serve as a teaching tool by quickly displaying the optimal flow of forces and areas of positive and negative curvature which, for example, can be useful in determining the location of rebar in a concrete slab. Even though the layouts are not always the simplest in terms of constructability – they can provide engineers with a baseline from which to compare their own designs against. Shown below is the original Rozvany application, developed in the 1980s and written in 800 lines of BASIC. The app hopes to showcase and revive Rozvany’s original work, but with modern tools such Rhino and Grasshopper.


The following are images from a paper that Rozvany wrote on optimal grillages showing some of the desired outcomes the app hopes to achieve. 






The key to uploading your own Rhino geometry to be utilized with Rhino.Compute is to first use the latest version of THREE.js with import maps. Secondly, in the grasshopper script, only geometry contextual containers can be used.


Below is the workflow developed to make Rozvany.Draw. All elements, boundary lines, support lines and columns are derived from points that get input into the canvas by the user. Depending on the element that the user wants to draw, a function is employed that listens for click events, stores data regarding the location of the click, and generates a visualization of that element in Three.js.  It isn’t until the user presses the compute button that the stored data is sent to Rhino Compute and Grasshopper, that the optimal layout is generated and visualized in the canvas.

Looking back on this project, one of the main challenge for me was trying to understand the capabilities and limitations of rhino compute. Secondly, I also struggled to rationalize all the ‘what-if’ situations that were generated and create a workflow that could accommodate them all.  For example, if the user wanted to input an unstable boundary condition – how do I notify the user that their inputs are unstable but also, figure out how to prevent the script from breaking when input.

Thank you so much to David and Hesham for all their help and guidance.

Rozvany is a project of IAAC, Institute for Advanced Architecture of Catalonia developed in the Master of Advanced Computation in Architecture and Design 2021/22 by

Students: Sophie Moore

Faculty: David Andres Leon + Hesham Shawqy