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)
For more information, videos, news and updates you can visit the following website.
See a video demo-tutorial here.
The plugin is available for download here: https://genesis-lab.dev/products/syntactic/
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.
NEW VERSION WAS RELEASED ON JANUARY 25, 2015.
See our newest results these publications:
Voxel-Based Spatial Ergonomics Research
Evaluating Spatial Configurations as to their [Adaptive] Reuse Potential
UPDATE: Genesis Lab [webpage][website] is to modernize, open-source, and develop the toolkit starting in December 2021. Stay tuned for updates through my YouTube Channel and ResearchGate.
Sz_tju
Hi Pirouz,
Except the difference factor, control analysis, choice analysis, integration analysis, entropy analysis, I want know whether the plugin can calculate the value of connectivity and intelligibility.
Best regards,
Sz_tju
Oct 18, 2017
Pirouz Nourian
Hi Sz_tju, for calculating connectivity you can connect a mass addition component to the graph (whether from axial lines/cells/nodes). Connectivity is the number of neighbors of a node in a graph and in graph theory it is called the degree of a node. For intelligibility, you can calculate the correlation between node degrees (connectivity values) and the global integration, see: http://otp.spacesyntax.net/term/axial-intelligibility/. At the moment you can do this with a bit of math expressions/scripting. I will add a piece of code for that.
Best regards,
Pirouz
Oct 18, 2017
Pirouz Nourian
Hi Theodoros Galanos, thanks for pointing out! It was a mistake indeed. Meant to be public :)
Cheers,
Pirouz
Oct 18, 2017
Samane
@ Sz_tju,
Attached, you can find two components which calculate the intelligibility and connectivity.
Connectivity%26Intelligibility.gh
Oct 19, 2017
Sz_tju
@Samane
Thank you very much for your components.
Oct 19, 2017
Samane
@ Sz_tju,
You are welcome!
Sama
Oct 23, 2017
Jonathan Irawan
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
BriefAnalysisTool_gH_PreAlpha.gh
Test-Sheet_AreaInput.csv
Oct 24, 2017
Pirouz Nourian
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.
https://en.wikipedia.org/wiki/K-vertex-connected_graph
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.
Oct 25, 2017
Jonathan Irawan
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.
Oct 25, 2017
Dmitri Korolenko
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
Oct 26, 2017
Pirouz Nourian
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.
Oct 26, 2017
Dmitri Korolenko
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.
Oct 27, 2017
Vyara Kuneva
I am having difficulties installing Space Syntax. I have downloaded the zipped folder from here - https://sites.google.com/site/pirouznourian/syntactic-design, 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?
Nov 13, 2017
Pirouz Nourian
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.
Nov 13, 2017
Pirouz Nourian
Hi Dmitri Korolenko,
Did you manage to get it running? Do you get any error messages? Please share the error messages (if any).
Nov 13, 2017
Vyara Kuneva
That's great! Thank you very much, Pirouz Nourian
Nov 13, 2017
Pirouz Nourian
Nov 26, 2017
Pirouz Nourian
Dec 2, 2017
Pirouz Nourian
Dec 3, 2017
Clement Loyer
Wow, that's sounds promising Pirouz !
Dec 3, 2017
Pirouz Nourian
Hi, yep, 2D & 3D Spectral Graph Drawing and a lot of new things are coming...
Dec 3, 2017
Richard Schaffranek
Hi Pirouz what are you planning with spectral drawing?
Dec 3, 2017
Pirouz Nourian
Hi Richard, I am going to use them for a compact bubble packing, hopefully with the isovist bubbles for a full Barba Papa experience
https://nl.wikipedia.org/wiki/Barbapapa
What do you think of this direction? Any suggestion or advice?
Dec 4, 2017
Francesco De Luca
Hello Pirouz,
thank you for your work.
I placed the file SYNTACTIC.GHA in the Grasshopper Components Folder but there is no SpaceSyntax tab when I open Grasshopper. The gha file is unblocked and Rhino was not running when I placed the file.
Any known issue? Thank you.
Francesco
Dec 21, 2017
Pirouz Nourian
Hi Francesco,
Thanks for your compliments. I suppose you have already restarted your computer, Rh & GH? Was the folder containing the GHA file zipped? then I would suggest to unzip it before copying. Could you please try loading the included example files?
I hope this helps but if the error persists please let me know.
Dec 23, 2017
Francesco De Luca
Hello Pirouz,
thank you for the reply.
When I run the downloaded SYNTACTIC_V_2.7.exe the files have been extracted in a folder in C:\Program Files (x86)\SYNTACTIC from there I copied the file SYNTACTIC.EXE in the GH libraries folder. After, yes the computer Rhino and Gh have been restarted.
When I open the sample file SYNTACTIC_NewVersion_sample_2.7.3dm Rhino tells me it can be open only in read only mode and when I open the SYNTAZTIC_NewVersion_PublicRelease_0.2.7.gh I see an alert telling the plug-in SpaceSyntaxDesign_GH is missing and when the file is opened all the Space Syntax components are (obviously) missing.
Dec 26, 2017
Pirouz Nourian
Hi Francesco, the exe file is only to extract and make a folder containing a GHA file and example files on your computer. During the installation process, you can specify a location you know (e.g. you desktop) and then copy the GHA file from that location and paste it into your GH/Components Folder. Could you please verify that an unblocked GHA file is present in your Components folder?
Best wishes for 2018!
Dec 27, 2017
Esteban Agüero
Hi Pirouz, I have the same problem mentioned by Francesco. I followed the installation procedure step by step with no success.
Dec 31, 2017
Pirouz Nourian
Hi Esteban, I believe the mistake is copying the exe file into the components folder instead of the extracted GHA file. Please redo the installation, specify a location for the containing folder, then find the green .gha file, make sure it is unblocked, copy it, and then paste it into your GH components folder. After that Restart your Rhino and GH. I hope this solves the problem. Happy 2018!
Jan 1, 2018
Gabriel Bremer
Hello! Congratulations on the beautiful work. I would like to ask some basic questions that came up in my first contact with Syntactic.
1-I started with a complex organization in my first test and could not generate the bubble diagram. It turns red with an error alert. I tried to break it up into smaller pieces and it worked again. Is there a limit on connections?The sequence that binds the points interfere with the result? Why do bubbles overlap? View files: scheme with many connections.gh and scheme with many connections.3dm
Gh file
2-Some areas have priority of connection. How can I configure this?
3-When I move the dots and the curves the bubble diagram changes. Why does it happen?
MOVE CURVES AND POINTS CHANGED THE GRAPHIC
MOVE CURVES AND POINTS CHANGED THE GRAPHIC
Jan 16, 2018
Pirouz Nourian
Hi Gabriel,
Thanks for your compliments!
Regarding the bubble diagram:
The issue could be one of the followings or a combination of them:
1. The configuration graph might be non-planar, that is, a graph that cannot be possibly drawn on a piece of paper without its edges crossing one another. Please check this Wikipedia article:
https://en.wikipedia.org/wiki/Planar_graph
2. It could be that you are trying to fit a big bubble in the middle of small bubbles, imagine trying to fit a 2 euros coin in the middle of 4 5 cents coins. This is a coin-graph (alias kissing disks algorithm)
The remedy that I can suggest right now is to lower both the attraction and the repulsion coefficients in the Force-Directed graph drawing component. that way you should be able to get a 'better' drawing.
For the next version, we have made a series of new components that ensure arriving at a planar configuration graph. Stay tuned for updates.
I hope this helps for the time being.
Jan 24, 2018
Pirouz Nourian
@ Gabriel Bremer:
Additionally, I could also suggest using a genes generator from GH to change the areas of the bubbles so as to deal with the issue of big coins.
BTW, please note that if you don't get a beautiful graph drawing, it does not mean that you cannot use the Space Syntax analyses. the drawing of a graph and the graph itself are not the same thing.
Jan 24, 2018
Jose Carlos Rojas
Dear Pirouz, congrats for your great job.
I taked these graphs from your google site and your SSS9 paper, and...

Feb 28, 2018
Jose Carlos Rojas
Dear Pirouz, congrats for your great job.
I taked these graphs from your google site and your SSS9 paper, and...

Feb 28, 2018
Pirouz Nourian
Hi Jose Carlos Rojas, thanks for your compliments. The REL-chart (a.k.a. From-To chart) is included in the new version, which is being slow-cooked in our kitchen :). The rectangular cell packing tools (as we have indicated in the released version) are only place holders. We will need quite some time to develop them further as robust algorithms. We are re-writing the whole package and mostly focused on the very beginning, that is focused on forming the connectivity graph itself. I wish we had a ready-made solution for the rectangular drawing right now, but we do not have it correctly implemented yet . You can perhaps check the references of our paper on how to do this. It is not impossible but rather difficult. For the time being, I myself would do the last part of the process (rectangular configuration) by hand in 3D. I hope that helps.
Mar 4, 2018
zaidoon
Thank you for the amazing work Pirouz!
I have played around with space syntax while I was in Uni. Now that I have graduated, I have implemented as a part of my design process.
is there an ETA on the next update? Im so excited for it.
Mar 10, 2018
Pirouz Nourian
Hello zaidoon,
Thanks for your compliments. We have quite a few updates to make but the educational workload is high so I cannot promise a date. I hope we'll be able to release a new version within a couple of months, hopefully earlier.
Mar 17, 2018
Xingxin HE
Hi everyone,
Does anybody know what occurs this error?
"1. Solution exception:Object reference not set to an instance of an object."
Although there is an error, but the graph can pop out .
Mar 27, 2018
Pirouz Nourian
Hi Morris, when the algorithm does not succeed in putting the coins together as instructed, e.g. when a 2 Euros' coin does not fit in the middle of 4 5 cents' coins; a point might go to infinity and disappear. To avoid this you can try lowering the attraction and repulsion coefficients of the Force-Directed Graph Drawing algorithm (Coin-Graph).
Mar 28, 2018
Pirouz Nourian
Essential Means for Urban Computing: Specification of Web-Based Computing Platforms for Urban Planning, a Hitchhiker’s Guide
https://www.cogitatiopress.com/urbanplanning/article/view/1299
Apr 2, 2018
Rana Rizi
Hi all, Space syntax has not added on top of my grasshopper page, even though I already am using the containing example o that.
Apr 25, 2018
Pirouz Nourian
https://www.slideshare.net/PirouzNourian/geo1004-lecture-1topologya...
May 2, 2018
Dēmiurgos
Pirouz. Good day. First of all, thanks a lot for this plug in. It has been wonderful to work with this tool in order to get a deeper understanding about spatial configuration.
I'm having a problem with an algorithm Find attached the images.
I'm trying to make an evaluation of a list of spaces for a project, but it doesn't works as in your example file. I have the attributes in the enlisted spaces and the space syuntax indicators, but not in the depth graph. Is there a limit of enlisted spaces and connections between them?
Thank you for your attention and i'll be vigilant to your answer.
SYNTACTIC_NewVersion_sample_2.7.3dm SYNTAZTIC_NewVersion_PublicRelease_0.2.7.gh
Greetings from mictlan.



Jun 2, 2018
Pirouz Nourian
Hello Dēmiurgos,
Thanks for your compliments, happy to hear it is helpful.
I could not see in the images anything wrong with attribute generation/provision. Attributes are not necessary for analyses, but only for human users to comprehend the results. It could be that you have not provided the attributes to the Justified Graph component, or that you have not provided a consistent set of attributes. I would suggest double-checking the attributes with the LoL (List of Lists) component and making sure the number of names, colors, and areas are the same and that they are all valid.
ps. There is virtually no limit to the number of nodes. I would not expect a problem of efficiency for a graph of this size on an ordinary machine. This problem is most likely caused by inconsistent attributes.
I hope this helps.
Jun 4, 2018
Yuki Wada
Hi, Pirouz.
I'm very interested in your SYNTACTIC components, but it doesn't seem to be compatible with grasshopper of Rhino6.
Configurbanist could be successfully installed and works well with grasshopper of Rhino6.
I don't have Rhino5 license so, is there any way to use SYNTACTIC on grasshopper of Rhino6? or could you update the component?
Oct 11, 2018
Pirouz Nourian
Hi Yuki Wada,
I installed my Rhino 6 last week. We are working on updating SYNTACTIC using Rhino 6 library. If you have gotten any error messages please post them here so we can address the bugs.
Oct 12, 2018
Yuki Wada
Hi, Pirouz.
Thank you for your reply.
Syntactic doesn’t appear on grasshopper of Rhino6 though I put rha file into grasshopper components folder and rebooted.
Oct 12, 2018
Grassitect
Hey Yuki and Pirouz! Similar situation here. I have installed the plugin but it doesnt seem to be working with Rhino 6. I have also tried directly dragging the plugin into gh and the same situation continued. Heres a screen capture when opening up the test file provided in the folder.
Thank you very much!
Oct 16, 2018
Yuki Wada
Hi Grassitect and Pirouz.
The plugin also doesn't work with Rhino 5 of 64bit.
It only works with rhino5 of 32bit.
Rhino6 is 64bit software. So, it may need an update to work with 64 bit systems.
Oct 17, 2018
Pirouz Nourian
Hi Grassitect, Hi Yuki,
THanks for reporting this. I have installed Rhino 6 last week and started working on an update. Due to high education workload I cannot promise an early date but we are close to publishing updates, may be gradual updates.
Oct 17, 2018