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
  • 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. 

  • Florino Ita

    Thank you Pirouz for your answer.

    well, I said removing unnecessary connections, but it can have another way of defing the connections automatically

  • Pirouz Nourian

    C_Disk_PZN_Corrected.gh

    The attached component puts out the disks for working with the disk graph drawings. 

    Just noticed there was a small problem with the areas in the earlier version of this. I have fixed that problem in the attached. 

  • Bao Nguyen

    Hello, I had a problem with the RectangulateDual component, it appeared to have many layers. If anyone know why? Thank you.

  • CathyTs

    Hello!! I downloaded Syntactic and i'm running the setup but it doesn't appear anywhere as a plug in in Grasshopper! What should i do?

    Thank you!

  • Pirouz Nourian

    Hi Katerina, after you finish the installation process, the installer will place a folder containing a GHA file and example Rh& GH files in your system. If you didn't notice where it put the folder, please repeat the process and make sure you place it somewhere recognizable. Once done, you can drag and drop the GHA onto your GH canvas and then start with the example files. 

  • Pirouz Nourian

    Hi Bao, 

    Looking at the picture it seems like one of the inputs must be a data tree. Anyhow, as I've mentioned in the example file this Rectangulate Dual is mostly an experimental placebo. If time allows I will propose an alternative method for geometric layout based on Isovist Bubbles: https://sites.google.com/site/pirouznourian/syntactic-design

  • Tim

    Hi Pirouz,

    Hope you are doing well.

    I would like to ask about pie chart component, is there a way to make it show labels or is it a bug?

    Check this discussion, your pie chart will do a nice addition to chart tool set.

  • Pirouz Nourian

    Hi Tim, do you mean with this C# component that I've put below? or the component from the SYNTACTIC plugin?The C# add on below doesn't have the mechanism for representing labels. You can add those using tagging components of GH. In the original component from SYNTACTIC I have put those mechanisms as well. I hoped this component would provide for more options without having the texts.

  • Tim

    Hi Pirouz,

    I meant the component from the syntactic plugin, from utilities tab. You show it in the example images and it has white text labels. Not that I use it a lot, but when I did a quick walk through of the components I noticed that it didn't show any text.

    Maybe something is wrong on my side, but I thought I'd let you know anyway.

    Have a nice day.

  • Pirouz Nourian

    Hi Tim, it might be an issue with GH preview or an issue with my code which pertains to GH preview. Anyhow, I would suggest using the C# component I've posted below in combination with tagging components from GH for the time being. I can more quickly add such snippets if necessary instead of revising the whole package at once. 

  • Tim

    Ok, no worries, I don't plan to use pie chart anyway, just thought I should report this.

    I will use other components to analyse spacial relationships for my care center, I'd like to post some screenshots later.

  • Pirouz Nourian

    Thanks for letting me know. Interesting topic (care centre). Please do post some screenshots :)

  • Tim

    Hey Pirouz,

    Finally got to use Space Syntax.

    Trying to put everything together met this error:

    1. Solution exception:Object reference not set to an instance of an object.

    Happens when I'm trying to connect restaurant, cafe, hair salon and post office with inner yard. What might cause the problem? Do you need the file?

  • Pirouz Nourian

    Hi Tim, I'd say it is probably because the points and lines do not 'exactly' touch each other where you expect them to. Could you please try redrawing them accurately, preferably using the snapping options of Rhino? if the problem persisted, then my next guess would be something pertained to the error tolerance that I have hard coded in the components, that is the document tolerance set once when you initiate a file. An idea to solve this issue would be through raising the tolerance for error through Rhino command line or Rhino options. 

  • Arindra Januari

    Hi Pirouz, thanks for the awesome plugin! I'm new to this Space Syntax thing and now Im having problem when trying to make the triangulation. First I thought it was because I used too many nodes that caused the configuration to be not planar the but then I tested it with simpler one and the problem is still the same. I think I already follow the example and also read your pdf but couldn't really find the solution. The value on the base plan is also xy instead of coordinate, maybe it is the issue but I dont know how to fix it. Following is the screenshot:

    Thanks in advance! :)

  • Pirouz Nourian

    Hi Arindra, thanks for your compliments! From what I see in the image I can guess that the problem is that you have not mentioned links towards the 4 sides (NEWS: North, East, West, and South). You need to provide additional links towards the sides to use the triangulation methods. 

    I hope this helps. 

  • Lea Dietiker

    Hello Everyone! 

    Thanks Pirouz for this amazing tool!  I would love to use it - BUT the Node-Link Graph is constantly telling an error.

    >> Boolean Rhino.geometry.Line.EpsilonEquals (Rhino.Geometry.Line, Double) 

    Anyone knows what is the problem? :) THANK u!! 

  • Pirouz Nourian

    Hi Lea, Happy to hear you find them useful. Regarding the error, as I understand it is complaining that it cannot find the method Line.EpsilonEquals(). Based on what I've seen so far, this problem is usually solved by  updating Rhino. Could you please go to your Rhino options and check if it is up to date? 

  • Lea Dietiker

    Hey Pirouz!

    Thank u so much for your quick answer! Now it is working! Was not thinking about this solution.... Thanks  a LOT!

  • Pirouz Nourian

    Most welcome! Comments and complaints are also welcome :)!

  • Chandan Chaturvedi

    Great tool to analyze and take inferences. However, I have a lot of trouble getting it to create exportable results while using its generative design capabilities. To be very specific, I see no labels and colour when I use the dual graph command and further ahead from there. Any ideas if I am doing something wrong?
    Keep uo the work. Very inspiring.

    Regards
  • Pirouz Nourian

    Hi Chandan, Thanks for your compliments. Could you please describe what you want to get from what component exactly? I might be able to add a code snippet to help you achieve that for the time being. 

  • Francisco Diaz

    Great app Pirouz!, I seem to be having the same problem as a recent post from a couple days ago. Specifically, i dont have a clue on how to add links to the NEWS. 

    Do you reference them by adding additional points?

    Thanks.! 

  • Pirouz Nourian

    Hi Francisco, Thanks! It appears you are missing links towards the 4 sides. Once you provide the nodes and links to the NEWS (North, East, West, South) node-link graph, a sketch-pad with four nominal sides appears. You need to provide additional links from your spaces towards these sides in order to proceed with the rest of those methods. Please check the example file as well.