Grasshopper

algorithmic modeling for Rhino

Hi,

I have been trying to simulate this algorithm , but i'am unable to reach similar results .

Anyone can help?

Views: 3756

Replies to This Discussion

Hmm ... a classic thingy that one.

Where's your definition?

That's my initial curves ... i want to generate a cloud of points inside these two envelopes and connect the Ramps through a network with a similar pattern in the picture above .

I hope that i made my target clear enough .

Attachments:

Any Help?

OK ... assuming that this is an AEC related thingy:

You have a collection of spaces that are - presumably- related each other by means of a classic adjacency matrix (this means: for each space provide a measure of the connectivity required VS the rest: for instance a dining room is "connected" to the kitchen; meaning that communication [circulation] between these 2 must be the most effortless possible blah blah).

Then you want to arrange the spaces (having in mind a variety of topological - or other - restrictions; in your case these 2 "envelopes") in order to achieve the all overall "optimum" circulation (i.e. with the max efficiency).

Note: if the spaces are fixed (totally wrong approach) then a variant of the above is required: i.e. outline the most "suitable" corridors for connecting them.

This is a classic hierarchical soft cluster analysis problem (as initially outlined by Christopher Alexander in the 70's and attempted for the first time in the HARNESS hospital system initiative in UK).

I have code that does this but is classified strictly as internal (for obvious reasons) not to mention that runs in Unix O/S.

I'll try to provide some indicative hints soon (in terms of a "simple" C# that does a small portion of the above).    

Hmm ... spend some time by translating some stuff (C++ to C#) ... but the bad news are that I must discuss this matter with my partners: cluster analysis is something that we've agreed that never goes out of the practice walls.

Anyway get a hint: Hard top-bottom clustering is used (process is STOPPED to the fist level of clustering for clarity: meaning flat clustering):

Cubes are abstarct (spaces, say: "rooms") centroids:

Then clusters are made; Prox K-Means is used here (other methods also available). Cyans are the abstract representation of the flat clustering (for clarity). The decision upon the number of clusters is quite complex and is based on criteria that are not used here (adjacency matrices et all):

Then this:

And finally that:

Obviously the real thing works recursively (kinda like a fractal algo) on the clusters and stops if the predefined number of nodes is reached (say 2 or 3). Then the "flat" red connector shown connects actually (bottom to top) child to child AND child to parent clusters etc etc.

BTW: GH has a component (called quadTree) that - I guess - works "kinda" like a K-Means clustering algo but the fact that GH is a-cyclic by nature ... means that you should use Anemone - if the above are attempted via the component way (not my way anyway).

more soon

Bad news: partners said NO for making public any cluster algo.

Thus ... get this "draft" using in fact GH components (other than the 2nd C# that gets the flat QT and yields the actual points "clustering"). The left most C# can been - obviously - replaced with components very easily.

As I said that's only a hint: In order to do that properly you'll need recursion.

Attachments:

Added a less stupid option (kind of "shaft").

Still utterly out of focus (since spaces have occupancy, space connectivity relations AND "traffic" is NEVER calculated on proximity).

Anyway ...

Attachments:

Hmm ... tested against one of mine KM algos (cyan: solely on proximity).

and the 3 together (QT on bottom):

BTW: Thinking this again ... I have a feeling that Hesham actually wants this (instead of weighted graphs and cluster analysis):

i.e. a classic recursive Dijkstra’s algorithm on points (with weight = 1).

Thanks for your help peter , but yes that one is very similar for what i want , yet i think the above algos might be a good start , or not .... i'am a little confused about that .

The above is only doable with code, mind.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service