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 Maryam; Happy Nowruz

    I think it is done in GH by Dr. Tasos Varoudis @UCL. That is all I know. I don't know if their app is available. If you want to do visibility studies I'd suggest using SpiderWeb

  • maryam

    I e-mailed to Dr. Tasos Varoudis and Dr answer to me:

    This examples were done with a custom software, not available in public.

    You need to use your own scripting to do something like this at the moment.

    I think it is an upgraded version of the Depthmap software. Did you notice the two-dimensional to three-dimensional version upgrade it?

  • Richard Schaffranek

    Hello Maryam,

    I don't think it is a depthmap upgrad. If you look up the paper and take a look at figure 4 / 5 you see the standard Rhino3d Isocurve display of cubes. For some reasons people do not want to say, it was done with grasshopper....

    If your up recreating 3D IsoVist analysis I suggest to find a good 3d FOV algorithm - there are some around in GH forum. Once you have determined what voxels are visible form a  voxels you can use spiderweb to run BFS and than compute what kind of integration Value you would like to compute (RA,RAA,I).

    However these things get very pricy (computational wise) as visualGraphs are always very dens.

    I was thinking of implementing BFS on GPU at one point, than things should be a bit faster...

    Best

    Richard

  • Pirouz Nourian

    Hi Richard, thanks for the hints. It's funny why one sometimes feel uncomfortable mentioning GH :)). Could you please point to some of these Field-of-View algorithms implemented in GH? Have you ever tried using this one: http://www.cse.chalmers.se/edu/year/2015/course/TDA361/grid.pdf

  • maryam

    Thanks Rich & Pirooz

    I'll try my best
    Hope to succeed

  • matthew naivasha

    Hi Pirouz,

    I'm having some trouble producing a functional Disk Graph Drawing that uses the NGV output from the Force Directed Drawing component. It appears that the repulsion & attraction forces are not performing correctly. I continue to get an error message from the Disk Graph Drawing component that reads:1. Solution exception:Object reference not set to an instance of an object. See posted files Norwst_02.ghNorwest_02.3dm

  • Pirouz Nourian

    Hi Matthew, just tried to open your Rhino file, but it is not saved properly as a Rhino file. Can't open it. Anyhow, I am familiar with this question. The thing is, a coin graph like the one you expect from a Force-Directed Graph Drawing algorithm might not be possible to draw given the list of areas, imagine fitting a 2 Euros coin in the middle of four 5 cents coins. It does not fit. A force-directed drawing algorithm is a heuristic algorithm; meaning it is not guaranteed to work; but it often does. It is theoretically not guaranteed to converge to a solution. If you would like to see something sensible you can lower attraction and repulsion to get a better picture of the situation. You can also use the 'Spectral Graph Drawing' tools of Cheetah (only the new version available on the forum) or Spider Web for getting a picture of your spatial network.  

    more info on the force directed algorithm and the whole process:

    http://abe.tudelft.nl/index.php/faculty-architecture/issue/view/474

  • matthew naivasha

    Hi Pirouz,

    really appreciate your help. I am currently installing the new version of cheetah and will have a look into the Spectral Graph Drawing tool. I have read through a couple of the chapters in your phd and now have a better understanding of the Force -Directed Drawings and why I was not achieving a good result. The list of areas, spaces and connections I was using for input were a bit complicated. I will simplify and have another go. Love your work : )  

  • Pirouz Nourian

    Hi Matthew, thanks for your kind words! happy to hear you find the tools useful. Perhaps you can follow the instructions/pseudocode in my PhD and make a 3D version of this algorithm with the help of Kangaroo. I can then translate it to C# and include it. 

  • Romero Barro

    Hi Pirouz,

    I am trying to install syntactics on my desktop but can't seem to get it to work. I've tried using the installer and copying the gha file to the libraries folder, made sure it isn't blocked or anything, but still it never shows up after i open grasshopper. I've tried this several times, running as administrator and not, but still it never works. Any idea you have as to what might be causing this?

    Thanks!

  • Pirouz Nourian

    Hi Romero, sometimes you have to restart your machine to get to see the new plugin running in your GH; I guess you have done this already though... Have you checked if your Rhinoceros is up to date? Rhino/tools/options/update

  • Karlo54

    Hi Pirouz,

    I am working for construction company  under design department, i would like to ask if its allowed to install and use your plugin together with galapagos to study space planning ideas? e.g. study  possibility of building core planning iterations. Thank you.

  • Pirouz Nourian

    Hi Karlo, Thanks for your message. Yes you are free to use the tools for commercial purposes. The only condition is to mention the software in your publications or cite our papers and kindly post some results here on the forum. 

  • Pirouz Nourian

    BTW, if you wish to have additional tools currently missing in the toolkit you can send me a mail p.nourian@tudelft.nl 

  • Karlo54

    Thank you very much for your permission. I will definitely indicate your software and credits to you once i prepare a presentation to top management on the use of this plugin.  will post on this forum any progress i have made. Thank you again if you allow me to add additional tools. 

  • Pirouz Nourian

    The first 3D molecule of Space Syntax and the beginning of a new season ;)

    141 iterations in 11 milliseconds

    Stay tuned...

  • Sz_tju

    Hi Pirouz,

    Thank you for your SYNTACTIC tool, I am using it to make the axial analysis. And now I have a problem. If I have a city plan or building plan to make the axial analysis for it, I want to know how to use grasshopper to generate the axis graph first?

  • Pirouz Nourian

    The story and the [3D] future of SYNTACTIC: Space Syntax 4 Generative Design

    https://www.slideshare.net/secret/yhBdV0QwFG0GsG

  • Theodoros Galanos

    Hi Pirouz,

    The presentation is indeed private (no access)! Not sure if that was intended :)

    Regards,

    Theodore.

  • 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

  • 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

  • Pirouz Nourian

    Hi Theodoros Galanos, thanks for pointing out! It was a mistake indeed. Meant to be public :)

    Cheers, 

    Pirouz

  • Samane

    @ Sz_tju,

    Attached, you can find two components which calculate the intelligibility and connectivity.

    Connectivity%26Intelligibility.gh

  • Sz_tju

    @Samane 

    Thank you very much for your components.

  • Samane

    @ Sz_tju,

    You are welcome!

    Sama

  • 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

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

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

  • 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

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

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

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

    Thank you!
  • 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. 

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

  • Vyara Kuneva

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

  • Pirouz Nourian

  • Pirouz Nourian

  • Pirouz Nourian

  • Clement Loyer

    Wow, that's sounds promising Pirouz !

  • Pirouz Nourian

    Hi, yep, 2D & 3D Spectral Graph Drawing and a lot of new things are coming...

  • Richard Schaffranek

    Hi Pirouz what are you planning with spectral drawing?

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

  • 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 

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

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

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

  • Esteban Agüero

    Hi Pirouz, I have the same problem mentioned by Francesco. I followed the installation procedure step by step with no success.

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

  • 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

    Rhino file

    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

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