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.
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
Jan 26, 2012
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
Jan 26, 2012
Steve Lewis
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?
Jan 26, 2012
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.
Jan 26, 2012
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
Jul 13, 2012
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?
Jul 13, 2012
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!
Jul 22, 2012
Pieter H.
What does the neighbourhood filter component do? It isn't mentioned in the overview of the components.
Aug 31, 2012
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...
Aug 31, 2012
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).
Aug 31, 2012
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
Aug 31, 2012
Pieter H.
Ok, thanks.
I will post something when I'm done, still working out some issues and details.
Aug 31, 2012
Danny Boyes
Nice new Icon!
Sep 20, 2012
Richard Schaffranek
More than a new Icon!
Sep 20, 2012
Danny Boyes
Rutten's 3rd Law of Grasshopper
It's a big complement :)
Sep 20, 2012
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
Feb 11, 2013
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.
Feb 11, 2013
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.
Feb 12, 2013
Richard Schaffranek
Yes that's true, but the graph coloring also determines what side (up, down) the boolean operation is preformed on.
Feb 12, 2013
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...
Feb 13, 2013
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
Feb 13, 2013
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!
Feb 13, 2013
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.
Feb 26, 2013
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
Nov 30, 2013
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
Nov 30, 2013
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
Nov 30, 2013