finalizzato a fornire i fondamenti della modellazione parametrica e generativa attraverso Grasshopper, plug-in di programmazione visuale per Rhinoceros.
“Tools are extension of our minds and our nervous systems. Through devices we are able to capture more invisible data to make it visible and readable. Self monitoring triggers selfknowledge and self awareness. This new and enormous potential about aquiring data can drive better our design explorations and customized solutions.”Lo spazio in cui viviamo è in ogni suo aspetto monitorabile e risulta essere un gradiente di dati in continua evoluzione e cambiamento. Uno dei maggiori vantaggi degli strumenti parametrici è quello di poter informare i processi progettuali con flussi di dati accurati, specifici e variabili nel tempo e nello spazio. “Data Fields” è un workshop dedicato al plug-in Grasshopper di Rhino3D che si focalizzerà sulla sua principale natura di processore di informazioni. Il workshop delineerà anche in che modo Grasshopper può essere usato per acquisire e manipolare flussi di dati provenienti da varie fonti, e come tali dati, a loro volta, possono essere utilizzati per informare sia i processi logici che le geometrie, dalle più semplici fino a quelle più complesse.L’obiettivo è quello di fornire una comprensione del valore delle informazioni e dell’articolazione dei dati, e di come siano già di per sè un’operazione progettuale, spaziale e architettonica. I risultati potranno quindi variare da puri protocolli di comunicazione dati, dataViz o geometrie “data-driven”.…
io Arturo Degni
Il workshop introdurrà le nozioni base di Grasshopper approfondendo le metodologie della progettazione parametrica e le tecniche di modellazione algoritmica per la generazione di forme complesse. La didattica è organizzata secondo moduli che coprono gli aspetti più importanti del software e prevede lezioni frontali ed esercitazioni guidate.
Il corso è rivolto a studenti e professionisti con esperienza minima nella modellazione 3D e si articolerà in lezioni teoriche ed esercitazioni. Sarà rilasciato un attestato finale.
La nostra attività formativa nasce dalla volontà di promuovere le nuove tecnologie digitali di supporto alla progettazione e condividere il know-how maturato attraverso ricerca, realizzazioni, pubblicazioni, collaborazioni con le più importanti realta professionali ed accademiche a livello internazionale.
A>T è Authorized Rhino Trainer.
http://www.arturotedeschi.com/wordpress/?project=plug-it_grasshopper-livello-base…
of curved surfaces, its fabrication methods are still a challenge especially on the level of complex surfaces and large scale assemblies. Mathematical surfaces in general and hyperbolic paraboloids (Hypars) in particular embed neverending opportunities for planar construction techniques. The ancient surface of Hypars is one of the most interesting mathematical forms for architects from quantitative structural optimization to qualitative ornaments. Hypars have been used extensively in the works of avant-garde architects including: Gaudi, the Philips pavilion of le Corbusier, Shell structures of Felix Candela and Frei Otto tensile structures, as well as, many contemporary architects. Hypars workshop aims to develop the computational design techniques of complex organizations of hyperbolic surfaces from the structural to the ornamental scale in respect to the planar fabrication methods. The mathematical and geometrical qualities of ruled surfaces will be explored in parallel to material and assembly logic of planar elements for 1:1 prototype of an outdoor canopy in Alexandria. Geometrical properties of Hypars will be coded on the platform of Rhino and Grasshopper while the physical prototypes will be in wood and paper which offer an integrated and intuitive understanding of complex geometries and physical relationships. The workshop objective is to reconsider materials and fabrication as a design tool for architects. /// Application To apply, please follow this link to fill the application form https://docs.google.com/forms/d/1S2-7YNifUing8SVX3Iz9ArrgQgjIk77w9jzG70sIHv0/viewform /// Fees* 1700 EGP for students / 2000 EGP for graduates and young professionals * 20 % discount for early registration and payment before 22 nd of August 2014 more info on the workshop webpage: http://www.encodestudio.net/#!hypar/co9p…
NURBS using Rhinoceros. Content includes: Basic terminology, user interface, workflow strategies, using reference material and creating drawings from modeled geometry.
Workshop 2: Introduction to Parametric Design
Instructor: Rajaa Issa
(12:30 PM-3:30 PM)
This workshop will introduce the general framework of parametric thinking with a series of hands-on tutorials using Grasshopper for Rhinoceros. It is meant for beginners who have little to no idea about parametric modeling. The workshop will introduce the general components of an algorithm, design workflow, Grasshopper interface and visualization techniques. The students are expected to have basic knowledge of the Rhino modeling environment. Workshop 1 should fulfill this requirement.
Registration: Computers and software will be provided. Space is limited to 20 seats per workshop. The fee for each workshop is $60 (plus a $4.29 fee). There is a special rate of $30 (plus a $2.64 fee) for students and teachers provided they request a discount here with their school email address before registering. Register now……
her than number, where length was the fixed diameter of my prototype sphere.
That way, I thought, as the length of the ISOcurves changes along the height of my dome/shape the number of spheres along the line would change to fit. This works pretty well. The problem was shifting the alternate ISOcurve seams to get a psuedo staggered effect. I don't mind some overlap if the result is aesthetically pleasing (wink).
This only worked along the ISOcurves until the length started to change appreciably. Then the stagger factor varied. This was okay for my purposes since I was working with a fixed size sphere and could expect this.
I suppose that one could very slightly change the diameter of the spheres to make them fit more closely. If this variance stayed very low (maybe in the 1 or 2% range) then this would give the effect of a consistent tessellation.
Igor's Idea of using a hexagonal grid and placing spheres at the centroids is an excellent one as well.
The problem is that once you begin to vary the curvature of the target surface, as in my dome, the hex cells compress because he's using a rectangular array and projecting it onto a domed surface. If there was some way to reduce the cell count as the ISO curve length decreased then this might work better as well.
Another solution might be, as hinted at by Igor, using a geodesic dome with regular cells approximating the dome structure. Since my proto sphere diameter is typically 1 unit and the dimensions are typically around 40 x 18 x 20 units this result in a density of 14400 per dome. The faceted nature of the Geodesic would be smoothed out by the sheer number of cells. Another way to look at this would be to populate the vertices of a polyhedron which approximates the dome.
Unfortunately I have no idea how to do this. But I'm really eager to see what you folks come up with. Meanwhile I'm playing with both sets of definitions to understand them.…
u isolate specific mesh lines then along the intersections, without having to bake the whole thing first?
wbEdges, and then sort them out of the list.. how? By trial & error? I wouldn't know how to identify the ones I'd need to feed to the Kangaroo Engine with a different stiffness...
That's a picture of my original attempt. The relaxed KGRO Mesh (red) being turned into brep, sliced with multiple planes at once to gain a new series of breps (someones neat python script), and as a patch-surface via Mesh UV fed back to KGRO again, resulting in further relaxed meshes (green).
Doesn't look proper since the last meshes via Mesh UV ether overlap from the patch surface or are to short (as above), but the basic principle worked.
Maybe the last resulting mesh would fit if I get it to work via surface from 4 curves instead of the patching solution? I have the breps borders duped to generate a surface from them , but when exploded I get more than 20 little line-like curves and not 4 curves for the 4 surface edges ( I just made a patch surface instead,... I think I should solve this sooner or later though).
Best would be to slice a mesh with multiple planes and get a series of meshes(thereby avoiding going from mesh to brep to mesh), but I couldn't figure out how or if that is possible.
In any case, thanks a lot..... .. and I remain curious about the new release of KGRO! :)
…
. Truth is that in 99.9999% of cases is just a couple of code lines specifically written for ...er ... a specific case (meaning that is useless for other cases). Making a Jack for all trades capable to manage ANY situation ... means quite a few hours of brain(?) storming ... and anyway this is not the way that I approach things because I have absolutely no interest to do GH "plug-in" type of stuff.
See the left vertical bar and imagine doing business with the small S: There's 2 "clash" situations occurring: the upper has meaning (where cat VS dog and dog VS cat yields a valid "split") but the lower yields an invalid solid since that "portion" of the S can't split the bar (it only just "penetrates" into the solid).
In order to fix things we need to gather information about things called BrepTrims ("indexed" Curves per BrepFace - so to speak) that (in this case anyway) are either Mated or Boundary ... or ... hmm ... Seam (but should not be any Seam in fact).
This C# for instance gets the invalid breps (per recursive split) and samples these mysterious BrepTrims in an object type of Data Tree: the main dimension is the Brep face index, the equivalent second dim 0 contains the BrepTrim curve and the other has booleans for an 1:1 "rating" of the trim based on a simple question: are you a Seam? (== bad boy)).
Thus "reconstructing" an invalid brep is rather easy based on what that Tree tells us :
What all the above ultra freaky and.or confusing and/or off-topic things mean? Well ... I have about 20 C# that do any imaginable Brep "opp"/query ... but are all classified as internal > thus > as I said, one of these days I'll try to remove "some" lines of code and post something that can do a thing or two more on that matter.…
Added by peter fotiadis at 12:35am on September 13, 2016
he original epw file. The next one contains your dataset. The dataset to be replaced needs to be contained in a csv file as attached. You can replace more data from the original file by addiing additional columns in that CSV and assiging the correct column number in the grasshopper file. The ordering of columns in an EPW file is shown in the last image. For example, Direct-Normal rad is column -21 and Diff-Horz rad is -20. All of this will be clearer once you check the attached gh file.:
By the way, that theory about diffuse radiation being 10-40% of direct does not really hold. In a place like Seattle, one can expect to go without seeing the sun for extended periods of time and only see visible radiation from the sky.
(PS: I am sure there are probably more elegant ways to do this..I just wrote it this way to check if it was at all possible to do this with grasshopper).
…
ny Agents are within it after each iteration and their centroid attract Agents). So, I basically came up with a small .dll where I wrote classes for Agent, ZOne, Cell and SystemSetting. I reference this .dll into my VB component but then the majority of the functions and subs that describe this system interaction are written directly in this VB component.
The system works fine, but I cannot achieve the effect of having the system to redraw after each iteration. For example :
'''////////////////////////////////////'''
Call InitializeEverything()
For i=0 to 19 'say, Iwant to run my system for 20 times
Call UpdateZones() 'updates attractor values of Zones
Call RelocateAgents() 'say, code that does all the evolutionary job
Dim agentSrf As New List (Of OnNurbsSurface) 'want to collect the surface_
representation of all agents and visualize it
For j= 0 to agents.count-1
agentSrf.Add(agents(i).MySurface() 'collect the Agent representations
Next
A=agentSrf
Next
'''////////////////////////////////////'''
So, in this case I will only see the surfaces of the agents after this last iteration. I was trying to use timer and target my VB component but I have my initialization function there as well so it just reruns everything from the very beginning. Or I tried to:
A=agentSrf
System.Threading.Thread.Sleep(5000)
but this didn't give me much either.
I'm sure that there is a relatively simple solution to that but I cannot find it.
Would you please give me your thoughts on that?
Thanks A lot,
Dima…
tList2) End Sub '<Custom additional code> Function Network(ptList1 As list(Of On3dPoint), ptList2 As List(Of On3dPoint)) As OnLine Dim line2 As New OnLine Dim dist As Double 'variable to store distance between points Dim maxDist As Double Dim minDist As Double maxDist = 20 minDist = 10 Dim count1 As Integer count1 = ptList1.Count()'set length of list for loop Dim count2 As Integer count2 = ptList2.Count() Dim newPtList1 As List(Of On3dPoint) Dim newPtList2 As List(Of On3dPoint) newPtList1 = ptList1 newPtList2 = ptList2 ptList1.RemoveAll ptList2.RemoveAll For i As Integer =0 To count2 - 1 For j As Integer = 0 To count1 - 1 Dim pt2 As On3dPoint pt2 = newPtList2(i) Dim pt1 As On3dPoint pt1 = newPtList1(i) dist = pt2.DistanceTo(pt1) If (dist < maxDist & dist > minDist) Then line2 = New OnLine(pt2, pt1) ptList2.Add(pt1) Else ptList1.Add(pt1) End If Next Next Dim count As Integer count = ptList1.Count() If (count > 0) Then Call Network(ptList1, ptList2, lineNet) End If End FunctionWhat i have as input are two lists of points (the first one having n-items inside while the other one has only one starting point). It s supposed to work as a recursive function always returning one or more lines in the end.The error i m getting is because of the ptList1/ptList2.RemoveAll command.Does anyone have a clue why i can t remove the items from the lists? What i'm basically trying to do is just clean them of all content.I've attached the def with the code as well.Thank you in advance,Tudor…