SpiderWeb

SpiderWeb is a .NET library providing functionality for preforming calculations on graphs. The library is created with a special focuse on the integration of graphs and graph related theroies (e.g. SpaceSyntax) in parametric design envoirnments. Therefore special Versions are avalible for:

Grasshopper
DesignScript (planned)

Any feedback, questions or critic is welcomed.

Documents

General introduction into graph theory

Documentation and samples

.NET documentation for SpiderWebLibrary.dll and GH_SpiderWebLibrary.dll

  • Steve Lewis

    can you explain more about how your plug-in was used to derive a drainage pattern?

     

    cheers

  • Richard Schaffranek

    If you download the latest version from the homepage, the script is included.

    From a point grid on the surface you create a simple graph where every vertex point has eight neighbours. Then you choose, for every vertex point, the neighbour with the largest negative z - difference and delete the rest.

    The minimum values are those vertex points without a neighbour.

    Of course this is not so nice and for example it would need some adaptation to take overlaps into account.

    RICHARD

  • Steve Lewis

    Ok I'll check it out.

    Two more questions.

    What do u mean by a graph? I presume it's not just a 2d plot of values

    Where would I use spider web?

    Can u apply the drainage pattern definition to a fee form surface or must it be faceted?
  • Richard Schaffranek

    There are more samples of how to use spiderWeb with the download.

    You can apply it to freeform surfaces but as mentioned before overlaps are not taken into account. You would need to adapt the definition.

    Graph as in Graph theory....

    Basically a simple tree representation. For each vertex point there is a branch, each number in the branch reveres to a vertex point it shares an edge with.

  • Jonah Hawk

    I have a simple grid of cells using a rectangular grid component. When I remove some of the cells before feeding them into the Graph From Cells component, the distances contain mistakes. I'm sure it is a simple issue somewhere. But I can't figure it out.

    LongestAverage.gh

  • Jonah Hawk

    Here the graph is created from rhino rectangles placed using array. Are the diagonal lines created by the Graph From Cells component because of rounding errors in rhino?

  • Richard Schaffranek

    The diagonals are due to the rounding erros in Rhino. But if you download the newest releas this is taken care of. For the other problem there seams to be some strange error in the code, which I will fix after my hollydays, sorry!

  • Pieter H.

    What does the neighbourhood filter component do? It isn't mentioned in the overview of the components.

  • Richard Schaffranek

    It simply takes the Values of the Neighbours of a Vertex and the Value of the Vertex itself and the calculates the median Value or the average Value depending which one you pick.

    So lets assume we have a Vertex [V] connected to four other Vertexs [N1-N4].

    Each of the has a Value: 

    V ... 1

    N1 ... 5

    N2 ... 3

    N3 ... 8

    N4 ... 11

    The Average Filter would set the Value of [V] to

    (1+5+3+8+11)/5 = 5,6

    The Median Filter would Sort Values and pick the middle one

    1,3, [5], 8, 11

    Hope that helped...

  • Pieter H.

    Ok, thanks! Could you give an example of what you use it for?

    BTW, kudos for spiderweb! I'm using it for justified plan graph analysis (with the aim of creating an adaptability assessment tool for buildings).

  • Richard Schaffranek

    Hmm sounds fun, could you post something in the gallery?

    I create Spideweb with the idea to be able to use measurements proposed i.e. by SpaceSyntax as a generative input,... 

    So the problem if you don't just analyse geometry but create geometry you have to make some simplifications.
    Possibilities of movement on surface can be representation through a orthogonal grid of lines. This abstraction doesn't take into account that you could walk diagonal. So the filters are used in order to even the values.

    See:

    http://www.gbl.tuwien.ac.at/Archiv/digital.html 

    -> longest average path

  • Pieter H.

    Ok, thanks.

    I will post something when I'm done, still working out some issues and details.

  • Danny Boyes

    Nice new Icon!

  • Richard Schaffranek

    More than a new Icon!

  • Danny Boyes

    Rutten's 3rd Law of Grasshopper

    "Never release something with ugly icons."

     

    It's a big complement :)

  • Nick Tyrer

    Hey Richard, 

    I've just downloaded spiderweb, i must admit it was for the Duplicate line tool. But looking through the example files this looks really impressive and i'm gonna have to do some research.

    In particular the woodworking joint has caught my eye. Could you perhaps give me a little information of this model? What the logic is. I cant quite follow the graph related parts of the script. Does the graph maintain the relationship to each beams members to simplify Boolean operations? What does the color coding represent?

    Thanks in advance man

  • Richard Schaffranek

    Hi Nick,

    Good to hear that people get interested by the files I added.

    The woodworking joints is a sample that should demonstrate that the graph tool can be used for other things than just shortest path,...

    Yes the graph helps to maintain the relationships. This has two virtues: 

    1. Faster/simpler boolean operation since it is only preformed on those of interest.

    2. It also allows to define kind of different classes (colours) of beams:

    1: intersection only up,

    2: intersections only down,

    others: intersections up and down 

    At one point I will add a few more notes to the definition. At the moment I am working on a basic scriptum which will give some introduction to graphs. As soon as it is finished I will add a link.

  • Nick Tyrer

    That sounds helpful Richard, i will look out for it!

    Do you mean those classes of intersections are possible, or are that it is the logic in the current script? At the moment it looks like the colours are determined by the random sequential graph component.

    On a different note, it would be interesting to optimise the extrusion orientation of each member to maximise 'perpendicularity' of each join.

  • Richard Schaffranek

    Yes that's true, but the graph coloring also determines what side (up, down) the boolean operation is preformed on.

  • Nick Tyrer

    I was having a look through the script in finer detail yesterday, I'm getting the hang of the graph idea, its a really interesting script. I've attached the file i was working through, i just have a few questions, if you have a few minutes spare. (i put them in the definition)

    I'm still struggling with the up/down classes. The classes get split 'randomly?' into three classes, (with no intersections within each class). Then those classes determine the orientation of joint. But in the final results, every class has joints on all sides, top/bottom/left/right. The joints all work, but there isn't any classes as you define that i can see.

    https://www.wetransfer.com/downloads/55bdeb07b68b65e7f4a8dc050e5271...

  • Richard Schaffranek

    You are right, the file doesn't apply the separation between up and down, that was a newer file I was working on ...

    WoodworkingJoint3D%20-%20NT.gh

  • Nick Tyrer

    Thanks for the answers man, greatly appreciate the help. I've already started implementing spiderweb into our current stadium project. Supposedly you learn something new everyday, yesterday i think i filled my quota for a month!

  • Richard Schaffranek

    Graph Introduction

    Some basic information about graphs and other related topics can be found here. Just type in "graph" into the search field.

  • Claudia

    Hi !

    Can you please tell me how to install spider web into grasshopper, because i go to special folders  - componentes and then drag the file into the components files, and restar rhino and grasshopper and when i go to grasshopper i can't find the controll spider web...

    Can someone please help me?

    Thanks ~Best, Claudia

  • Richard Schaffranek

    The SpiderWeb files should be in the "Extra" Ribbon.

    Further it is possible that you have to "unblock" the gha file. Simply rightclick the file and open the properties, there it might say something about that the file was downloaded from the net and therefore it is blocked. There should be a button saying unblock ... 

    What version of Grasshopper are you using?

    Richard

  • Claudia

    Thanks for the quick response 

    I am using Grasshopper 5 , when i do the rightclick it doesnt appears a button to unblock ... i don't know what i am doing wrong 

    sorry for the inconvenience

    Best - Claudia