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. 

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 Graph Operators

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

Load Previous Comments
  • Pirouz Nourian

     Hi Nicolas Rawitscher,

    I just opened your file but did not find any lines for connections. Actually, even looking at lines I could not easily tell whether it is a planar graph or not. Many graphs cannot be possibly drawn on a piece of paper without their edges (links) crossing one another. http://en.wikipedia.org/wiki/Planar_graph

    if the graph in question is not planar, then the kissing disk drawing (discograph component) will also fail to draw it; and that is not a bug. However, by lowering attraction force coefficient or adjusting it together with the repulsion force coefficient you might manage to get a good drawing. But please note that drawing a graph has nothing to do with analyzing it. In fact a graph can exist without anybody seeing its drawing. Think of your Facebook network of friends, in which every friendship is a connection link. You don't need to see it to believe it exists. Long story short, you can do Space Syntax analyses on a graph that does not have a good drawing (e.g. non-planar). Making a plan layout from a graph that is not planar can be done by making a set of plantar components acting as plan diagrams of floor levels but this will be mostly a theoretical investigation I would say.

  • izaka

    Hi Pirouz,

    I'm an architecture student, and I would like to use Space Syntax for my next project. 

    I'm getting an error while building the algorithm, it's written "object reference not set to an instance of an object" do you know what does it mean and how resolve it ? here are the files, I also try with an other algorithm but there is exactly the same problem. Could you help me, please ? 

    Thanks a lot!

    IC Tertrais

    gymnasess.3dm

    gymnasespacesyntax.gh

    gymnasess2.3dm

    gymnasespacesyntax2.gh

  • Pirouz Nourian

    Hi Agneesh, from what you've written I understand that you have tried to use a bubble (kissing-disk) drawing for a graph that includes NEWS vertices. I would only use the original/spatial vertices inside. I think I have added a solution for this in the new example file. 

    Re anchor points, it would be indeed interesting to add more anchor points; but note that in any case they need to correspond to the sides of a convex polygon for the Tutte algorithm to work. Anyhow, I am currently working on a new algorithm for 3D spatial layout that would not require this approach at all; just a Brep as the spatial constraint.

    Re arbitrary repulsion forces, I find the idea interesting but I won't be able to add such a feature in near future. I'll keep it in mind. Perhaps a whole new set of links as unwanted adjacencies would do. If you are curious, you can find some models that fellows had shared earlier on re-making the graph drawing algorithm using Kangaroo physics.   

  • Agneesh

    Thanks for your response Pirouz. 3D spatial layout!!! wow...can't wait for that to be released. Good Luck!!!

    Kind regards & Many thanks

    AB

  • Oleksii Dorozhkin

    Hi, great work here!

    I could not find anywhere video tutorial for SS 2.7 but I definetly whatched something like this in february (with room orientations). Could you please help me with this link?

    Food4rhino site has no SS/Syntactic page but I suppose it was exactly the place I find this plugin. Does anything happened?

    Thanks for great work anyway.

  • Alois

    Hi i´ve problems installing the space syntax plug-in !
    i downloaded the plug-in, installed it & copied the .gha into components folder...
    also checked the properties of it & it should actually be fine ?!
    anybody a few helpful suggestions / advices ?!
    Best Alois

    I´m runnig Rhino5 + latest Grasshopper version

  • Pirouz Nourian

    Hi all, sorry for late reactions. I'm having tough paper deadlines and many small matters to pursue these days. I'll just shortly respond and try to get back after June 1. Please help each other whenever you can!

    Alois: I cannot imagine what is the problem... didn't you find a Space Syntax/Syntactic menu in your GH? Did you try opening the example files from the folder installed? You can double check the GHA to see in its properties if it is blocked. 

    Oleksii Dorozhkin: Thanks for your compliments! Good point. We had made such a video with Sama but seem to have lost it!? I'll do my best to find it and put it on youtube. It will most probably be somewhat outdated though!

    izaka: I will do my best to check your files but unfortunately cannot promise anything until June 1. If anybody can help I will be very grateful!

  • Pirouz Nourian

    izaka: a quick answer to your questions. Just checked the files. 

    In the first series: your graph might not be planar or otherwise the set of areas you desire make it impossible for disks of those sizes to fit together nicely. a simple definition of a planar graph is a graph that can be drawn on a piece of paper without its connections crossing each other. If you can do that on a paper for your case please post your drawing. Checking planarity using algorithms is not trivial and the algorithm for kissing-disk drawing is not guaranteed to work. You can lower attraction coefficient to see something but if it is impossible to put coins of those sizes touching each other the way you want (according to the graph) then the algorithm fails. This is not a bug.

    In the second set of files: you have not shown any connections (lines) towards North, East, West and South. Therefore you cannot expect the algorithms to work. The graph needs to be pinned to a perimeter otherwise the Tutte algorithm cannot possibly work.

     

  • Pirouz Nourian

    Hi, we (I, Richard) are at 10th Space Syntax Symposium in London. Will have demos of new features on Tuesday (Richard) Thursday (me). 

    http://www.sss10.bartlett.ucl.ac.uk/events/

  • Alois

    Hi Pirouz,

    First, thanks for your response. I´ve been busy with other stuff in the meantime so i couldn´t come back to your message!

    I installed the plug-in, copied the syntactic.gha into components folder & also checked if anythin is blocked. Additionally i set a all user properties to full access for the application/plug-in.
    Still it doesn´t work & i have no glimpse why... sad story !

    I opened the tut-file.gha & grasshopper reminded me that i don´t have the plug-in installed.

    I´m running grasshopper version 0.9.0076 currently.
    A fellow of mine is having the same troubles.

    Looking forward to hear from you, Best Lois

  • Pirouz Nourian

    Hi Lois, Sounds confusing... did you extract the zip folder before copying the GHA file? Is your Rhino up to date? You can go to your rhino options and check whether it is or not. If the problem persists, please take a screen shot of the message which shows up when you try to open the tutorial file.

  • Alois

    Hi again,..
    I´m still having the same troubles with the syntactic.gha !
    I don´t know what to do, i copied it into components folder, checked the properties,, checked my rhino which is up to date, tried with various versions of grasshopper... the plug-in just doesn´t work/appear.

    Enclosed i upload some screenshots which appear when opening the tutorial file... !
    Is it anyhow possible that the problem could be windows8 !?

    best Lois

  • Amir Soltani

    Did you right-click on the syntactic.gha and UNLOCK it in Windows after install. Sometimes that is the problem, all the plug-ins that are manually drag and dropped in folders sometimes need unlocking. However, Syntactic I think has a installer that should works straight away.

  • George Agafonov

    Hello. I also have a problem with installing. Gha file unlocked and moved to gh library. But it's still not appeared in components.
    Same as Alois's image when open tutorial.

    I´m using Rhino5 + latest Grasshopper version+windows 8.1

    Thanks in advance.
  • Pirouz Nourian

     Hi George Agafonov & Alois, excuse me for this late response; have been travelling these days... Are you still experiencing this problem? A pessimist view would relate it to windows 8! If there is anyone who has been using Syntactic on windows 8 please let us know. 

    If you say everything is up to date and you are sure you've unblocked the GHA in the components folder then I don't know what might be the problem. Could you ask David's opinion on this problem?

  • Pirouz Nourian

    Hi all, I need to showcase a few design processes in which the toolkit SYNTACTIC has been used in my PhD dissertation. Of course, I will give full credit and acknowledgements as appropriate. I would be very thankful if you could kindly share your work samples. It is especially interesting to show how the tools are combined with other approaches. 

  • Guillermo Varela

    Hi Pirouz! Congratulations and thank you for this amazing plugin.

    I have been trying to use it for my final work, but I have some problems using the syntactic design tools for generative design to create a pavilion combining parametric design with the spatial patterns of C. Alexander.

    I am trying to use SYNTACTIC to make a parametric base plan but I don´t know how to transform the tutte convex drawing in a voronoi or rectangular design. 

    Could you upload the tutorial of the generative process?

    I don´t know how to scale the tuttedrawing to see it ok, because the bubbles aren´t tangents and the dual graph doesn´t works well.

    Thanks in advance

    Guillermo

  • Paul Arsene

    Hi Pirouz;

    Just to let you know that Install doesn't work here either, on windows 7

    Regards

  • Pirouz Nourian

    Hi  Guillermo Varela, I am happy that you've found the tools useful. I am currently having a very intensive schedule finishing my PhD, so I cannot work on tutorials. We have documented the generative process however in two papers. Just beware that this process is still a WIP. Looking at what you've been trying to do, I guess you are trying to plan with a non-planar graph. Please have a look at this: https://en.wikipedia.org/wiki/Planar_graph

    I am not working on rectangular layout anymore. Instead I am working on a much more generic solution using our Isovist bubble2D and Isovist Bubble3D constructs. It will take a while until I make sure we have some stable solution to release. Anyway... if you have a planar graph, i.e. a graph that can be possibly drawn on a piece of paper without its edges crossing each other then the Tutte algorithm and our triangulation and dual graph tools should work; provided that you have enough connections with the NEWS sides. Please use the example file that comes with SYNTACTIC 2.7 and start from tweaking that definition with your inputs. I hope these ideas help. 

    http://www.sss9.or.kr/paperpdf/mmd/SSS9_2013_REF048_P.pdf

  • Pirouz Nourian

    Hi Paul Arsene, could you please specify what kind of problem you have with the installation? did you run the installer? did you find the installed folder in your computer? did you drag and drop the GHA onto your GH and make sure it is in your components' folder and that it is unblocked?

  • dalec

    Hey, good to know that he idea of creating a 3D space configuration is still running... I though it was abandoned :);)

  • Pirouz Nourian

    Hi dalec, yep, good news is that I have generalized Isovist Bubble 2D to Isovist Bubble 3D; posted an image here: https://sites.google.com/site/pirouznourian/syntactic-design

    next stage is making an Agent-Based Model that requires some time, motivation and peace of mind :)

  • salma samir elesawy

    Hello...in space syntax analysis by spider web or decodingspace  " choice and integration "  these tools donot appear on windows 7 or 8 and can be used only in Mac software only  , is that right or not ?

  • Pirouz Nourian

    Hi Salma, decoding space and spider web have been developed and maintained by my friends, not me. I'm not sure if you have a problem with SYNTACTIC!? If so, could you please take a screen shot of an error message (if any)?

  • David Cruz

    Hello everybody, i'm doing a research on the tools available for Space Syntax analysis. i found this tool very useful for the analysis of architecture, according to integration parameters, a so on. but i have a question. since all the values obtained from the analisis are numeric values, could they be used as a fitness funtion in galapagos? and could galapagos be integrated with the space syntax tool to optimize the configuration of a Building?.
    Thanks for your advice

  • Pirouz Nourian

    Hi David, technically you can; but methodically there is no general way of defining such goals. Space Syntax measures are analytic and neutral, they do not imply goodness. Evaluation is required for optimization and it requires a framework as to which you can associate numerical values of an analysis to qualities sought. This is all to say that there is no generic sound way of saying something like 'the more integrated spaces the better'. I don't see what would be the meaning of such a goal. And yet you should be able to justify such statements and formulate them as goals for any goal-oriented search such as the evolutionary algorithm implemented in Galapagos. For these reasons I am generally very cautious with using the term optimization. Simply put, optimization is about either minimizing or maximizing  a numerical value. That is straightforward; but what is the meaning of doing such a thing is always debatable, at least in the architectural context. Having said all these, I think it might be possible to define sensible syntactic/configurational goals 'specifically' for certain projects. If you are interested in such processes, I would suggest that you ask Richard Schaffranek, the developer of SpiderWeb for guidance, he has a couple of nice examples of such processes. In short, I don't have any generic solutions; Richard might have some specific examples. 

  • David Cruz

    Pirouz, thanks for your answer and advice and congratulations for making this exelent tool available for everybody. 

  • johnnyUtah05

    Thanks for a great tool! 

    Is it possible to control the text size on any of the charts or are they set to a default value? 

    thank you

  • Pirouz Nourian

    Hi Erik, pleased to hear that you like the tools. 

    Yes, I have made text size relational to the sizes of constellations. I can imagine that in some cases you might wanna change it. If you tell me which component is that I might be able to provide an adapted scripted component. As to my current busy schedule I can't promise but I'll try.

  • johnnyUtah05

    Hello Pirouz,

    Thank you for your prompt response. I have been finding great use for them during the diagramming of for my thesis. The component that I am using is the 'nodelinkgraph' which is returning the large text. I understand you must be quite busy so I appreciate any help. It is such a useful tool you have created!

    Best, 

    Erik

  • Pirouz Nourian

    Hi Erik, sorry for late response, really hectic here... I would just turn off its preview and use native text display components of GH such as 3D tag or 2D tax with custom sizes and colors. 

  • zahra msvi

    hi... i have seen video and this plugin was amazing , i tried to do it myself but at first step it shows an error which i dont why is that happend, i ll be geatfull if someone help , i really need it for my thesis.

    undefined

    space%20syntax.gh

    space%20syntax.3dm

  • zahra msvi

    i send screenshot again.

  • Pirouz Nourian

    Hi Zahra, 

    This issue can be resolved by updating your Rhino and Grasshopper. 

    I have checked your file as well. Note that the configuration you are trying to visualize as a coin-graph is not planar; that is you cannot draw the edges on a piece of paper avoiding crossings between them. However, the fact that you cannot draw this graph as a planar graph does not bother Space Syntax calculations. 

  • kimia farahnak

    hi pirooz first of all tnx by your great works,

    second im trying to use automate plan generating methods,in my thesis,i found your plugin usefull for the step1, in ur pdfs i saw an item which was almost near an actual plan drawing,but i couldnt understand how i can get that result.here i point at the one i need to know how to draw it with your plugin

  • Pirouz Nourian

    Hi Kimia, 

    I need to clarify one thing... we did not want to generate plans automatically with these tools. Instead we wanted to 'enumerate and catalogue' topological layout possibilities corresponding to a graph. We made them to make a point that design can be procedural and started from connectivity graphs instead of shapes. It was already very difficult to generate the topological plan layouts at the left side of the image below (the result of the most complicated algorithm in the whole toolkit). After finishing it we kind of lost our interest in generating rectangular drawings and gave up realizing them (the rectangular drawings that you see at the right were made by unstable algorithms). Because they just show 'one of the possible ways' of creating a plan layout topology out of a topological map. I am following a more generic approach that will be much more interesting as it can help one to create free-form shapes as well as rectangular bubbles. This approach is based on 2D and 3D Isovist baubles: 

    https://sites.google.com/site/pirouznourian/syntactic-design

    However, as I am busy with writing my dissertation I cannot promise releasing these tools any time soon. 

    Having said all these, note that the analytic tools work independently from these generative tools. 

    I hope these explanations help. 

  • kimia farahnak

    hi pirouz ,

    now i understand,thank you so much for answering

    hope we will soon see your new components,they seemed to be so cool and usefull in the pics!

    good luck with your phd thesis.

  • Bruno Galvao

    Hi Pirouz,

    I had the same problem with the .gha fila loading as some of the others have asked(alois).

    Intuitively, i went to "Grasshopper Developer Settings" And rechecked the "Memory Load .GHA with Coff byte arrays" box, which i had unchecked for another plugin, and it loaded Syntactic.

    I don't really understand why, though. Maybe somebody can explain.

    Hope it helps the others,

    Bruno

  • Pirouz Nourian

    Hi Bruno, 

    Thank you for sharing your insight into installation problems. I need to inspect this issue more deeply. There might be an issue in my code referencing rhinocommon or grasshopper dlls. 

    Best wishes for 2016!

  • Junghwo Park

    Hi Pirouz Nourian,

    Happy New Year!! Hope you took some rest:)

    I have a problem to install SYNTACTIC_V_2.7

    I have followed the exact steps from the instruction

    Then I have copy and paste "SYNTACTIC Grasshopper Assembly (.GHA)" into my grasshopper components folder.

    Unfortunately, All the components are missing.

    I am using the most current Rhino Version 5 SR12 64-bit with Grasshopper 0.9.0076 

    Could you please help me out?????? Thanks in advance

  • Pirouz Nourian

    Hi Junghwo, 

    Happy new year! I guess it might be because the GHA is blocked by your system. Please right click on it in your components' folder and go to its properties and double check. Otherwise, please read Bruno's comment on another probable cause of this problem below. To open Grasshopper Developer Settings type it in your Rhino command line. 

  • ahmad heidari

    dear  pirouz

    Happy new year!

    I have used the plug in that you give me(Syntactic) in my design process and the result graph is attached.Please comment on that graph.
    thanks in advanced

    بررسی جایگاه نحو فضا در فرآیند طراحی معماری.pdf

  • ahmad heidari

    Faculty of Architecture and Urban Design Art and Shiraz

  • Junghwo Park

    Hi Pirouz,

    Grasshopper Developer Settings solved the issue. Thanks heaps!!!!!!!!!

  • Florino Ita

    Hello, is there some examples about using space syntax with kangoroo?Thank you for your answer

    Great plugin btw I am having fun using it with my projects, but how can I exploit the result... Is there a gap between this plugin and other functionality in grasshopper or maybe i am wrong...

  • Pirouz Nourian

    Hi Florino, I just made two components for baking the disks as colored meshes. You can find them in the attached file. 

    C%23_Disk_PZN.gh

  • Pirouz Nourian

    the other component thickens the edge-lines (only for visualization)...

  • Florino Ita

    Thank you for this fast development of the component... but actually, it is a bit frustrating since, after doing a graph in space syntax, I would like to extract the exact graph made, however, the component you should yesterday does not extract the exact graph, it makes other "disks" maybe with same area (not sure also if I have the same area, since I noticed that the area is different for some disks) but anyhow the other disks dont follow the same graphical representation made with the first simulation of space syntax...

    or maybe I missed something? 

    Thank you again 

  • Florino Ita

    I have another question (sorry for my questions, I hope they are not really stupid since I am really new to grasshopper) I would like to know per example, when I am defining relations between spaces, in your plugin, we have to first define the points and for each point we have a space, after this we will link these points to the space names we have to deal with... so for each point we have an appropriate space name, in the second phase we will draw manually a line between each point to define the relation between the spaces... well here is my question, linking points (or spaces) is done manually, there is not automated method to link these points? (maybe having a list of all the configurations (links ) possible and after this we will choose links we want to keep?

    Thank you again Pirouz

  • Pirouz Nourian

    Florino, re your first question, could you please post your file? In doing so, please remove all components from other plugins and make it as simple as possible. 

    Regarding your second question, I think it is best if the designers themselves specify which spaces should connect to which other. Potential connections between n spaces will be n-squared. Frankly I don't see why removing unnecessary connections could be better than specifying directly what spaces should connect to one another. However, of course you can make connections automatically (I am not so interested in automating decision-making in design). If you need to make connections automatically you can do that with native components from grasshopper such as Proximity tools. Perhaps a better approach would be to use SpiderWeb tools to design a systematic process for doing so.