algorithmic modeling for Rhino

Hi all,
Any ideas how to design a fully parametric house?
I mean I know my way around in GH
But what i need is a new approach
I need a way to input relations between architectural spaces
Say bedroom beside bathroom..etc (we call it "organigram")
And i need after the pc makes its calculations to generate options meeting the criteria. To be able to manipulate the volumes and forms
Any ideas?

Views: 1850

Replies to This Discussion

This would make a nice Phd thesis.

Thank you for the support, I wonder why no one is giving hints, Maybe I shifted away from current capabilities of the present software..

I don't think its a case of limited capabilities, I think that it is just very complex and needs to take a lot of different things into consideration. The scope of something like this is very large, but can be done in grasshopper.

So for some hints for the options part you will need to get familiar with a plugin called Octopus, which will give you multiple outcomes using an evolutionary approach. Its very powerful, but also has quite a learning curve to it. 

Secondly you will need for that evolutionary process to check against something, ie. you are trying to evolve towards a measurable goal, maybe something simple like volume or surface area with the given constraints or maybe something more dificult like sun-exposure, shortest-routes or static considerations.

For anything to do with static calculations you can use Karamba (, which again has quite a learning curve.

So in the end everything is pretty much there, but its about assembling the pieces. Best to start small, because what you want is probably going to be very big.

Thank you Armin Seltz for the hints and support, I'll check what you pointed out

As with most things architectural you start out working in plan. As with most things grasshopper you should start out simple and build up. You begin by mentioning the relation between bedroom and bathroom, but first you have to define what is a bedroom and bathroom, most simply square footage. This can be your initial input, before you decide where spaces go, decide what spaces are in the system. Once this is determined you can develop hierarchical relationships and further adjacency. But why put the bathroom beside the bedroom? Why not isolated up in a tower with an incredible 360 view? Are you designing for the middle of the night quick tinkle or a truly epic bm? In terms of adjacency do you want a tightly packed design or expansive? is it open to the solver? this changes how you might write your definition. Are you trying to skip the process of manual iterative design and quickly output a conventional home? What contextual elements are you responding to? Just the organigram as an input? Think of natural systems, or yourself, you are who you are because of a vast wealth of inputs that have influenced the final outcome, that, yes, make the house do that. 

Thank You Moonbeast for your nice contribution,

I am totally convinced with what you stated,

The aim is certainly NOT to write a program to design a conventional home,

The aim is to automate the manipulation of volumes and forms without losing any functionality,

the concept I am hoping to bring to life is the same extreme flexibilty that GH offers now,

but Rationalizing the design in the prior stage,

starting with a set of connections of spaces,it may be adjacency,or in the Z-dimension and that would be also an option(Z-dimension expansion to toggle as true or false for example)

and of-course, the square foot and of-course a range of proportions of each space is required as input, just like you stated.. :)

Husein, here is what I recommend (as general pseudo code): 

1) Establish initial input parameters, number of spaces, area of each space and connectivity between spaces. These can be represented any number of ways, and how they are represented will dictate the final outcome.

2)If you use rectangles a question for area would be how do you dictate the ratio between the width and length? It may be easier to use circles or rather simple points with a specific charge attached relating to required area, think of the metaball component in 2d or using an isosurface in 3d (I recommend Daniel Piker's Aether plugin). So do you want something orthogonal or more amorphous?

3)Means of creating adjacency: I think for the best results you will want something that operates recursively. Hoopsnake, Octopus, Loop all allow you to create your own recursive loops, however, you might find that using something like circle/sphere packing within kangaroo will give you the desired results. In the case of Kangaroo, the spheres can be given different volumes and the connective network treated as springs to push and pull things together.

4)At this point you will have your basic geometric relationships, start simple and build up. You will want to go back and embed more intelligence into the script pulling in new parameters and inputs to relate to the given context (orientation, sun angles, topo of site, vertical arrangement, circulation). Here you may add new forces to the kangaroo to create a repelling force or attraction to certain areas.

5)Once you have this all in place it is time to flesh out the model, floor plates, partition, aperture, etc. This can be done strictly in GH native. Your primary challenge is establish believable connection between the recursive solver and the forces and output, not an easy task, but very doable.

Good luck, 

Thank you Moonbeast for the positive insight

search "housing grammars" with Jose Pinto Duarte another way for the starting in the topology studies is space sintax metodology.


Another reference on shape grammar (perhaps the most famous one): variations on Frank Lloyd Wright's prairie house.

Romain Mesnil thank you for cooperating, I find it is really interesting to know such concepts have been always on humans minds, and how lucky we-the new generations-are, to have all tools at our hands.. we shall be able to make miracles..thanks again

Thank you Braulio qatica, you make me wonder why Autodesk or other huge names haven't adopted such an idea to develop...anyway thank you for brightening my way :)






  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service