algorithmic modeling for Rhino


Space Syntax

Space Syntax is a theory of architecture and built environment that seeks to explain the effect of spatial configurations on behavioral patterns of people. SYNTACTIC tools bring Space Syntax theory into parametric design workflows. More information on syntactic design methodology:

My PhD dissertation (see chapters 3 & 4)

Designing with Space Syntax

Syntactic Design Methodology

For more information, videos, news and updates you can visit the following website. 

The plugin is available for download here:

This plugin is completely compatible with SpiderWeb for Grasshopper and we hereby thank Richard Schaffranek for all we have learned from this extremely useful plugin


Location: Delft
Members: 440
Latest Activity: Nov 13

Hi, All components are ready. We are just wrapping all our VB codes into a GHA.

Discussion Forum

Need help to optimize a space division 2 Replies

Hello, I have an optimization problem to solve via grasshopper. Maybe it can solved by Space Syntax or goat or octopus with galapos or any other suggestion ?! Here is my problem... I need to arrange…Continue

Tags: octopus, galapos, goat, Syntax, Space

Started by Mohamed Elbangy. Last reply by Mohamed Elbangy Apr 6.

Issues with Sort

Hi All,I'm having issues with the sort node. Any ideas what it could be? See image for error."No values inherited from 1 source"Continue

Started by hAcopi Apr 5.

Space Syntax + Kangaroo 1 Reply

Someone knows how it this made?

Started by Guillermo Gutiérrez. Last reply by Guillermo Gutiérrez Apr 5.

Space Syntax crash. 7 Replies

Hi!I have a problem testing SpaceSyntax. I have a list of approx. 100 vertices of diagram and it only works fine with around 5 links beetween them. When I am setting up just a little more say 10…Continue

Tags: crash, SpaceSyntax

Started by Karol Terlikowski. Last reply by Jason Tan Mar 13.

Comment Wall


You need to be a member of Space Syntax to add comments!

Comment by Vyara Kuneva on November 13, 2017 at 2:26pm

That's great! Thank you very much, Pirouz Nourian

Comment by Pirouz Nourian on November 13, 2017 at 2:02pm

Hi Dmitri Korolenko

Did you manage to get it running? Do you get any error messages? Please share the error messages (if any). 

Comment by Pirouz Nourian on November 13, 2017 at 2:00pm

Hi Vyara Kuneva

The exe file is an installer that puts the GHA file and the example files in a folder on your computer. While going through steps, after accepting the license terms, it will ask you for a folder location. If you don't specify, it chooses a default location. From the installed folder, you can then copy and paste or drag the GHA file onto your GH canvas. Please double check that the GHA file is not blocked. 

I hope this helps. 

Comment by Vyara Kuneva on November 13, 2017 at 9:27am

I am having difficulties installing Space Syntax. I have downloaded the zipped folder from here -, unblocked it and unzipped it, however in the unzipped folder there is only one .exe file and no .gha file. Do you know what the reason for that could be and how to install it?

Thank you!
Comment by Dmitri Korolenko on October 27, 2017 at 4:08am

Hi Pirouz Nourian! Cant seem to get it to recognize the component. Put the green bit in the libraries folder, no unblock option in the properties, restart, grasshopper still does not see it. If this is not a common thing it might be my machine acting up. Ill keep trying.

Comment by Pirouz Nourian on October 26, 2017 at 12:35pm

Hello Dmitri Korolenko, you only need to copy and paste the GHA (green file) into your components' folder. And this component needs to be checked for being unblocked. Sometimes you need to close your rhino and GH and relaunch both to see the menu of Space Syntax. Please try and let us know if the problem persists.

Comment by Dmitri Korolenko on October 26, 2017 at 10:00am

Hello! A newbie question here - I cant seem to get the script to show up in my GH. I install the package to the GH library folder, but when trying to open the sample script it cant find the components. I checked for the "unblock" option but it isnt even there for the files. If I copy paste the files from the "SYNTACTIC" folder into the Libraries folder GH asks which of the two to load on startup, but doesnt load any irregardless of what I chose. Am I missing something really obvious here? 

Got GH 9.0076

and Rhino 5

Comment by Jonathan Irawan on October 25, 2017 at 4:24am

Thanks for the prompt reply Pirouz, 

Yes, I am going through your dissertation and other related literature/papers. My knowledge of graph theory and its implementation is limited for the moment so I need to do a bit of catching up. 

In regards to my previous question, your explanation of the functionality in the Tutte algorithm have provided answers as to why the component was failing in my workflow. Within the excel spreadsheet, i have tried to implement an approach where users can define the room connections via a series of abbreviations or code - which then translates to the generation of curve connections native within gH. Some of these connections have less than 3 vertices i.e relationship between bedroom and ensuite. Anyways, it has all been laid out in the sample script that I have attached. I have also tried to implement the matrix system to add weight to the connections based on the rating system in your latest presentation - SpaceSyntax4. 

I'll continue to explore and touch base with you if I get anywhere. Cheers. 

Comment by Pirouz Nourian on October 25, 2017 at 2:47am

Hi Jonathan, Thanks for your kind words about the toolkit. I am happy to hear you find them of value. I have a high education workload at the moment so I have not checked your file yet. But perhaps these explanations help (we will also look at your file) asap.

About your question regarding the Tutte graph drawing algorithm (also known as topological embedding):


The Tutte algorithm can be viewed as a special case of Spectral Graph Drawing, which is a mathematical solution for topological embedding formulated as an optimization problem. The formulation of the topological embedding (e.g. as in Tutte algorithm) is in fact quite similar to the so-called force-directed drawing that is often solved by heuristic methods like the one we have made for the SYNTACTIC plugin. You can read more about Force-Directed Graph Drawing (a.k.a. coin-graph drawing and kissing disks drawing) and Spectral Graph Drawing and Spectral Graph Theory in my dissertation


The functionality of the Tutte algorithm is only guaranteed for graphs that are 3-connected, i.e. graphs with more than 3 vertices which cannot be torn apart unless at least two vertices are removed.             


Speaking of the conditions for the Tutte algorithm to work properly: Practically, this implies, for instance, that there should not be rooms connected only to one other room.


Anyhow, long story short, we have decided to continue with Spectral Graph Drawing and 3D force-directed graph drawing. These algorithms are ready and with a couple of adjustments for maximum speed and stability we will release them shortly. Some conditions for these algorithms are easier to ensure, but in general if a node(room) is connected to only one space or the graph is not well connected one cannot expect a good graph drawing from neither of these methods. The other issue that is also common is that the force directed graph drawing will not work if one forces a big bubble to be squeezed in the middle of smaller bubbles. Stay tuned. 

Comment by Jonathan Irawan on October 24, 2017 at 8:23am

Hi Pirouz!

Just wanted to say thanks for the plugin, It really is useful to have such a tool in gH. I've been following your dissertation as I am also highly interested in the development of SpaceSyntax Methods in Architecture. I'm actually also in the process of maybe coming up with a workflow to have the initial parameters of room labels, connections and areas within a separate GUI, or say even excel. I'm using snippets of your example and I think I have run into an issue in the TutteConvexDrawing Component not translating/referencing properly to the TriangulateMeshinAllWays Component. I can't seem to understand where the problem may lie. I have attached the test files below. 

Hope to hear from you soon :)

Cheers, J



Members (440)



Search Grasshopper


  • Add Photos
  • View All

© 2017   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service