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
  • Richard Schaffranek

    Hello Leonard,

    Ain't nothing to do with the lines being planar, please read the postet articles.

  • Leonardo Roli

    ok.. I read the two links.. but I still cannot figure out if I'm wrong and where.. for ex, about the planarity, I think that it's just impossibile for me to avoid the edges intersection.

  • Richard Schaffranek

    Well as said explained in the article about force directed graph drawing, it is an iterative process so one thing you can do is to increase the number of iterations (It_#). Also you can play with the strength of Attraction / Repulsion (St_Atr / St_Rep).

    However if the graph is not planar than there is a conflict, since an edge means attraction... . 

  • Pirouz Nourian

    @ Richard: Many thanks for your explanations Richard! 

    @ Leonardo: As Richard says, if the graph is non-planar then you cannot expect a kissing-disk drawing to be created without crossings. If you want to get a result that is acceptable, you can lower the strength of the springs (ST-Atr) as Richard has suggested. Note that this words of yours "it's just impossible for me to avoid the edges intersection" mean exactly that the graph is non-planar. 

  • Leonardo Roli

    Tank you very much Pirouz and Richard.. now everything seems more clear!!

  • Pirouz Nourian

    Hi, you need to drag the GHA file from the folder installed by the installer and drop it on your GH canvas. Note that the installer asks for the location of this folder during installation. If you don't specify a location it puts the folder in a default location. Please read the notes in the folder. 

  • Arrow Morphow

    very nice work thank you so much ! stay blessed:)

  • dalec

    Hello, is there a way to establish the configuration in the built environment and the correspondence between different spaces but in the case of more than one layer... In other words, if we want to show the relations not only one planar point of view but also in more than one level... I would like to try this component in a research project where i can optimise the spaces not only on one plan level but also the relations between upper level per exemple..
  • Waldemar Felipe

    Hi Pirouz! Your job is amazing! I'm starting to work with grasshopper in university and i`m really interested in a possible application of space syntax in social housing. So your work is all i ever dreamed. hahaha I downloaded your latest release(2.7) but couldn't understand why the graphs that look like rooms (step 3-b and 4 in your paper) do not actualize when i change the value in the Gene Pool. Is still in development? Thank you anyway! Greetings from Brazil!
  • dalec

    Hello, 

    I am really enjoying working with this component, and I am wondering if it is possible to add some parameters and constraints related to energetic and climate contexts.... like p.e. parameters related to sun path (so i will be sure that my graph and relations will be associated to the site conditions...).. so in other words, the functions will be in the right place...

    Thank you very much for this work also 

  • Pirouz Nourian

    Hi, 

    Arrow Morphow: thanks for your kind message!

     dalec: I have not found a generic stable way of doing that in 3D yet. Let me clarify something: the tools for plan layout do not perform any optimization whatsoever. The dual graph component can reveal possible 'topological embedding's for a planar graph that describes desired spatial connectivity links. It does that by introducing adjacency links that were not mentioned in the initial graph. Simply put, it shows multiple ways in which rooms can be laid out on a plane so as to allow for the mentioned spatial connections.If the input graph is non-planar (i.e. you cannot draw it on a piece of paper without edges crossing one another) then this process fails. Speaking of optimization; you need to have a notion of goodness interpreted as a measurable 'objective function' that you can seek to maximize (or minimize). There is no such thing in the toolkit at the moment. As for performance measures, the idea is that the designer initially puts in the desired adjacency such as "kitchen facing northeast"  having in mind lighting conditions and alike. I can imagine that such performance criteria can be integrated but have no idea how generic they can be. As for a toolkit we only focus on tools that are generic-purpose. But of course I would be happy to hear your ideas on this subject; perhaps we can find a way...

  • Pirouz Nourian

    Hi Waldemar Felipe

    Happy to hear that the tools can be useful in social housing design! 

    As I have written below, the 'dual graphs' that look like rooms are only showing the possibilities for laying out rooms on a plane such that they allow for the desired spatial connections put in by the user. There are ways to draw a rectangular dissection with the same topological properties. We did not manage to make such drawings; that is why I have marked these tools as funny/dummy/place holder:

    I would like to develop these further; but unfortunately I don't have the time for that. Please read the message in the example file. If anybody can develop these tools as I have explained, I will include them in the next release. Right now, I am thinking of an alternative way to grow spaces into each other, a completely different story that starts from the dual graph of rooms...

  • dalec

    Hello Pirouz, and thank you for your answer. 

    I know how your toolkit function, and I know that it doesn't provide an optimization, but I think if we find a way to let him provide an optimization by adding multicriteria constraints It would be great...,

    I am using this process of generic and parametric modeling in a research project for my thesis. 

    It seems that architecture programming is being discussed more and more. Optimization of the connectivity between spaces of an architectural projects is needed specially for big projects. 

    Therefor, I wanted to to test the connectivity between spaces not only in 2D level, but with more than one level, (referring to the different stories that we can in the building). Since some of the spaces connected to each other in a graph (2D level) might have to be connected with other spaces in the next level.. I would appreciate also if we can discuss this issue, and having a feedback from you of what you think and what can you propose as a method of solutions.

     

  • Pirouz Nourian

    Hi dalec, speaking of 3D configurations, there is nothing limiting the node-link graph to model a 3D configuration as a graph (to begin with). Once you have your configuration modeled as a graph you can of course do all the analyses of Space Syntax too. The graph is however different from its embedding (drawing). How you put a bunch of points in space referring to the nodes (representing spaces) is a matter of graph drawing. I can do something similar to disk drawing with spheres but I don't see how useful it could be. An approach similar to Tutte drawing (as in the new components) is already quite complicated in 2D; I do not have a clear idea as to how that process can be generalized to 3D; but I have not given up. I am thinking of alternatives. Might show some alternative ways in future here. I would also welcome ideas from everyone in the group. 

    Regarding optimization; we need to define objective functions. What kind of objective functions do you have in mind? 

  • Pirouz Nourian

    Re 3D: Richard Schaffranek has some very interesting 3D configuration experiments, I recommend that you try his toolkit SpiderWeb and have a look at this workshop notes: http://www.gbl.tuwien.ac.at/Archiv/digital.html?name=AAG2014

  • dalec

    Hello and thank you for your replies. 

    I will take a look of these links and get back to you.

  • dalec

    Re, can I find other examples or tutorial for Space Syntax using other components? 

    Thank you 

  • Pirouz Nourian

    Hi dalec, you can do Space Syntax analyses with SpiderWeb tools as well, tutorials by Richard Schaffranek can be found here:

    http://www.gbl.tuwien.ac.at/Archiv/digital.html?name=SpiderWeb

    http://www.gbl.tuwien.ac.at/_docs/GrasshopperScriptum/GrasshopperSc...

    You can have a look at this thread for further instructions on how to use Spider Web for Space Syntax analyses:

    http://www.grasshopper3d.com/group/spiderweb/forum/topics/gamma-ana...       

    FYI, There is also a toolkit called Decoding Spaces:

    http://www.decodingspaces.de/content/decoding-spaces-components-gra...

     

    In addition, our papers on the subject are accessible through the links below: 

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

    http://cumincad.architexturez.net/doc/oai-cumincadworks.id-ecaade20...

     

    The original Space Syntax software was DepthMap developed by late Alasdair Turner (the hero who made a great difference in the history of spatial analysis and unfortunately died very early) is of course the original software for Space Syntax ‘analysis’. An open source version of this software with a new interface is now developed and maintained as DepthMapX by Tasos Varoudis at University College London. http://www.spacesyntax.net/software/ucl-depthmap/    

     

    For Space Syntax or network analyses on urban scale, DepthMap can be used, we are also developing and furthering the plugin CONFIGURBANIST for this line of work:

     

    http://www.grasshopper3d.com/group/cheetah          

  • Richard Turner

    Hi there, firstly fantastic plug in! second im completely new to grasshopper and currently stumbling my way through tutorials trying to get up to speed. Would somebody please be able to explain how to use the weighted voronoi component in this plug in, apologies if it is very basic

    thank you

  • Pirouz Nourian

    Hi Richard Turner, the weighted Voronoi component works like the native Voronoi component of GH with the difference that it can accept multiple radii corresponding to the points as their weight. In that sense, it creates some sort of a bubble packing. 

  • Pirouz Nourian

    So, given a boundary, a set of points inside that boundary and a set of corresponding radii, you should be able to play with this component to make bubble packing. Disclaimer: I do not support bubbly designs necessarily : ). 

  • Agneesh

    Hello Pirouz,

    I'm sure you must be tired of listening to 'Thank you' for the plug-in...nonetheless thank you again.

    Is there a way to include anchor points such as North / South / East / West / Views etc in this algorithm? Can we do it in its (space syntax's) current version?

    Thanks

    AB

  • Pirouz Nourian

    Hi Agneesh, it always feel good to see people find your work useful! :) my pleasure. Have you tried the new version (2.7)? I have not updated the video yet, but those operations with NEWS have been added. Or did you mean something else?

  • Nicholas Rawitscher

    Hey Pirouz, thank you for your quick reply on the youtube channel. Attached is the rhino file and the GH file PIROUZ.3dm PIROUZ.gh

    Thank you for your tiem and help,I will be waiting for your response

    Nicolas

  • Agneesh

    Hi Priouz,

    Sure it is, i have downloaded the new version and i could see NEWS. Now i have to figure out how to use it :-). i will get in touch if i can not...once again thank you and your are very generous and kind.

  • Agneesh

    Hi Pirouz,

    I tried using the new version. i connected the points (spaces) to the relevant NEWS (suitable to NZ). In the final output NEWS also moves like any other space. Is that correct? Generally, NEWS is supposed to be anchor points and they do not move, whereas only spacial discs move depending upon the interconnections.

    Is it possible to add an input - 'anchor points' to Nodes & Links components ? in that case we could also add more parameters such as scenic views etc?

    Moreover is it also possible to connect points with Repulsive Spring Force, for instances where 2 spaces can not be next to each other for logistic reasons?

    I know i'm being greedy here :-D...

    Kind regards,

    AB

  • 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)?