will work slightly different from before. Sorry about breaking this, but it proved impossible to improve the selection logic with the fairly ambiguous notation that was implemented already.
Not every change is breaking though and I hope that most simple matching rules will work as before. There will be a McNeel webinar on Wednesday the 6th of November where I discuss the new selection rules (as well as path mapping syntax and relative offsets within one or more data trees). This will be a pretty hard-core webinar aimed at expert users. The event will be recorded so you can always go and watch it later. I figured I'd briefly explain the new selection rules on Ning before I release the update though.
-------------------------------------------------------------------------------
Imagine we have the following data tree, containing a bunch of textual characters:
{0;0} = [a,e,i,o,u,y] {0;1} = [ä,ë,ê,ï,î,ö,ô,õ,ü,û,ÿ,ý] {1;0} = [b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z] {1;1} = [ç,ĉ,č,ĝ,ř,š,ş,ž]
There are a total of four branches {0;0}, {0;1}, {1;0} and {1;1}. The first branch contains all the vowels that are part of the standard English alphabet. The second branch contains all non-standard vowels and branches three and four contain the standard and non-standard consonants respectively.
So what if we want to select from this tree only the standard vowels? Basically include everything in the first branch and disregard everything else. We can use the [Tree Split] component with a selection rule to achieve this:
{0;0}
This selection rule hard-codes the number zero in both tree path locations. It doesn't define an item index rule, so all items in {0;0} will be selected.
If we want all the vowels (both standard and non-standard), then we have several options:
{0;?} = select all branches that start with 0
{0;(0,1)} = select all branches that start with 0 and end in either 0 or 1
{0;(0 to 1)} = ......................................... and end in the range 0 to 1.
Conversely, selecting all standard vowels and consonants while disregarding all non-standard character can be achieved with rules as follows:
{?;0}
{(0,1);0}
{(0 to 1);0}
It is also possible to select items from each branch in addition to limiting the selection to specific branches. In this case another rule stated in square brackets needs to be appended:
{0;?}[0 to 2]
The above rule will select the first three vowels from the standard and the non-standard lists.
Basically, rules work in a very consistent way, but there are some syntax conventions you need to know. The first thing to realize is that every individual piece of data in a data-tree can be uniquely and unambiguously identified by a collection of integers. One integer describes its index within the branch and the others are used to identify the branch within the tree. As a result a rule for selection items always looks the same:
{A;B;C;...;Z}[i] where A, B, C, Z and i represent rules.
It's very similar to the Path Mapper syntax except it uses square brackets instead of parenthesis for the index (the Path Mapper will follow suit soon, but that won't be a breaking change). You always have to define the path selector rule in between curly brackets. You can supply any number of rules as long as you separate them with semi-colons.
The index rule is optional, but -when provided- it has to be encased in square brackets after the path selection rule(s).
The following rule notations are allowed:
* Any number of integers in a path
? Any single integer
6 Any specific integer
!6 Anything except a specific integer
(2,6,7) Any one of the specific integers in this group.
!(2,6,7) Anything except one of the integers in this group.
(2 to 20) Any integer in this range (including both 2 and 20).
!(2 to 20) Any integer outside this range.
(0,2,...) Any integer part of this infinite sequence. Sequences have to be at least two integers long, and every subsequent integer has to be bigger than the previous one (sorry, that may be a temporary limitation, don't know yet).
(0,2,...,48) Any integer part of this finite sequence. You can optionally provide a single sequence limit after the three dots.
!(3,5,...) Any integer not part of this infinite sequence. The sequence doesn't extend to the left, only towards the right. So this rule would select the numbers 0, 1, 2, 4, 6, 8, 10, 12 and all remaining even numbers.
!(7,10,21,...,425) Any integer not part of this finite sequence.
Furthermore, it is possible to combine two or more rules using the boolean and/or operators. If you want to select the first five items in every list of a datatree and also the items 7, 12 and 42, then the selection rule would look as follows:
{*}[(0 to 4) or (6,11,41)]
The asterisk allows you to include all branches, no matter what their paths looks like.
It is at present not possible to use the parenthesis to define rule precedence, rules are always evaluated from left to right. It is at present also not possible to use negative integers to identify items from the end of a list.
If you want to know more, join the Webinar on Wednesday!
--
David Rutten
david@mcneel.com
Seattle, WA…
Added by David Rutten at 8:57pm on November 3, 2013
of the new challenges presented to the society and architecture in Portugal. With technological developments, tools once limited to not creative areas begin to be part of the everyday life of students in University Architecture Laboratories and change its design processes. The architecture design methods are changing rapidly with the introduction of CAD-CAM software’s. In recent years, new software’s have been available for 3D representation and digital fabrication, which have allowed creating new ways of interacting with the computer and architecture. Contemporary architecture in its various scales, seeks greater flexibility, adaptability and interactivity taking into account both the means and goals of kinetic systems. Thus, it is essential to the creative industry players to acquire new knowledge about the latest technological innovations and how they can solve some of the problems and challenges of today’s society.
The workshop will explore the use of Grasshopper, Firefly and Arduino as creative and technical tools in all the design process, to simulation and prototype 3D interactive architecture solutions.
The theoretical and practical workshop (64 hours) taught in English and Portuguese, will be composed of two modules: (1) LS_01: Firefly +Grasshopper + Arduino and Scale Model Fabrication; (2) LS_02: Design Studio – Discursive Wall.
This workshop is intended for students and professionals from different areas of knowledge, (architecture, design, fine arts, engineering, music and programming) who are interested in the process of design: from ideation to prototyping. The participants will generate scale models.
Registration is limited to 20 participants with or without software knowledge. Participants will work individually and in group. Participants must take their own laptops to the workshop. Registrants should complete the form by 28 February 2012. Once registered, you will receive an email confirming your acceptance.
Questions or doubts contact us:
alivingsystem@gmail.com
…
Added by Brimet Silva at 7:07pm on January 16, 2012
rendo posizioni lavorative fino a qualche tempo fa impensabili. Questo nuovo approccio ha infatti la caratteristica di avvicinarsi alla programmazione informatica, ma con un approccio facilitato grazie ai componenti visuali.Hai bisogno di un motivo in più per usare Grasshopper? Eccolo! Trattandosi di uno strumento ancora in fase di testing (anche se perfettamente funzionante) l’applicativo è completamente gratuitoScarica la tua versione e inizia subito ad usarlo!Corsi certificatiLe lezioni sono tenute da Antoni(n)o Marsala, docente certicato McNeel, con alle spalle oltre 5 anni di esperienza nell’insegnamento di Rhinoceros. Negli ultimi anni abbiamo tenuto in grande considerazione l’evolversi di questo plugin e abbiamo deciso di investire sulle sue potenzialità.Nel Febbraio del 2011, grazie ad Antoni(n)o Marsala, è uscito Algoritmi Generativi, edizione italiana del libro di Zubin Khabazi Generative Algorithms with Grasshopper. Entrami sono scaricabili gratuitamente e rappresentano dei validi strumenti per capire il mondo di Grasshopper.Da diversi mesi inoltre, il Mandarino BLU, ha attivato una collaborazione con La Bottega di Galileo di Pisa, officina del libero scambio di idee, presentando dei progetti formativi post universitari, per coloro che vogliono entrare nel mondo della progettazione di nuova generazione.Dalla collaborazione con Multiverso, nasce invece un progetto formativo più ampio sviluppato a Firenze in via Campo d’Arrigo 40rLeggi il nostro programma didattico o scarica la versione in pdf…
2:
-Developing the winning design into a working application -Testing -Beers and BBQ
Details:
-Tutors: Gregory Epps, RoboFold founder, Florent Michel RoboFold software developer. -See previous workshops here. -Download Poster here.
-Please install Rhino5 and Grasshopper and Godzilla before this event.
-No previous experience with Grasshopper necessary. -Hours: 10am-6pm. -Location details: here.
***COMPETITION: THE BEST USE OF GODZILLA GETS A FREE PLACE***
Judged on creativity and practicality. Submit your name, association and a link to your video to robots@robofold.com We add an additional place for the winner. Flights, accommodation etc are not free...
Join us for the first Godzilla robot workshop - experiment with the easiest robot software on the Grasshopper platform.
More details and resources on: http://www.grasshopper3d.com/group/godzilla
Workshop Fee:
Student: £ 399
Professional: £ 599…
dellatore nurbs, Rhinoceros. Attraverso una serie di esercizi che si svolgeranno durante il corso, si spiegheranno i temi fondamentali che stanno alla base della modellazione generativa e del design parametrico.
Il corso è rivolto a chi ha già una familiarità minima con la modellazione attraverso Rhinoceros e vuole ampliare le proprie competenze verso il campo della modellazione parametrica e generativa, e si terrà da martedì 22.10.2016 a giovedì 24.10.2016 – dalle 10:00 alle 17:00.
Potete scaricare qui il PROGRAMMA DEL CORSO.
Il calendario dei corsi è consultabile qui.
VEGA Parco Scientifico TecnologicoVia della Libertà 12 – VeneziaEdificio Porta dell’Innovazione – Piano Terra
Per iscriversi al corso è necessario essere registrati al sito.Per tesserarvi al Fablab Venezia, diventare maker, usufruire dei vantaggi, clicca qui.
Le iscrizioni chiuderanno giovedì 17.11.2016.
Il corso ha un costo di 270,00 euro + iva (329.40) per i tesserati e convenzionati,per i non tesserati il costo sarà di 330,00 + iva (402.60) euro.
Vuoi risparmiare? Iscriviti entro tre settimane dalla data di inizio corso, usufruirai automaticamente dell’offerta “early bird” ovvero uno sconto del 20% sul costo a te dedicato.
Per iscriversi:
http://www.fablabvenezia.org/parametric-design-with-grasshopper/…
it could look like this:
Once you're told it's to do with flattening data structures called 'trees' it becomes obvious what it means and very easy to remember. If you had to guess what it meant before you were told about trees I'm not sure what you'd make of it. Perhaps something to do with downloading? Downward pointing arrows are often associated with downloading things.
If I compress the tree image the arrow can be above it, but now the tree doesn't look like a tree any more:
Unless you've seen it before on another icon and you know that shape represents a data tree in Grasshopper.
I in fact did use a downward pointing arrow to represent flatten in the parameter post-processes:
These icons only have 10x10 pixels so anything beyond a single, simple shape cannot be represented so I couldn't go with the stump.
I'm not particularly hesitant to change the UI from version to version. I know it annoys some people and I know that some tutorials and course materials will become outdated because of it. But while GH is in alpha mode I think it is more important to try and figure out what interface works best. I'm not particularly impressed by the improvement of the tree+arrow icon, because even if it immediately conjures up the words "Flatten Tree" in your mind, you still don't know what to make of it unless you already know about data trees and what it means to flatten them.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
laxation have been around much longer than any of the tools you mention, or indeed Rhino itself. A particularly well known one is Ken Brakke's Surface Evolver from over 20 years ago. Of the examples listed, some of them were inspirations when starting Kangaroo in 2009, and I've always tried to acknowledge those. (of course, surface relaxation is only one part of what Kangaroo is about)
I also was helped by conversations with many people, including Moritz as you mention, and especially yourself with the coding. Indeed the .Net class you ran back then for McNeel, as well as the other correspondence in your own time was really useful in getting started - thanks again!
As for mesh relaxation not being 'not so difficult', well - for sure there are many implementations of these things out there. Similarly there are dozens of examples of subdivision implementations (Andrew Heumann even showed you don't need to code anything, but can do it with standard grasshopper components), but let's not start being too dismissive of each other's work, hey ? Of course there's a lot more to making a flexible and useful tool than individual algorithms - making them part of a larger framework or system of tools makes a big difference.
Being the first to implement a particular existing algorithm on a particular platform maybe isn't as big a deal as inventing a new algorithm or technique. When other implementations of the same technique come along, we should just assess them on their merits. If the new tool owes something to previous contributions, then that needs to be acknowledged, and then if it improves in some way on what is already available then great. Even if it doesn't then it may still be useful as an exercise for the author or as an example of a different approach - though of course too much duplication of effort tackling already solved problems is a waste, and if there is no significant new contribution then it doesn't deserve to replace what is there.
If a new tool comes along that improves in some way on what we've done already (such as some of the topology tools available in Starling compared to what is in WeaverBird, or the material properties in Karamba compared to Kangaroo), then let's just learn from that and let it spur us on to greater things and improve even further!
So I'll look forward to using this and future versions of WeaverBird in conjunction with Kangaroo, as I think their feature sets complement each other very nicely.…
nt should stand up to reasonable, Socratic interrogation with logical and descriptive rigor. For example, I find entirely credible an architect who suggests that he placed his buildings 20 meters apart because he thought that it would make people more comfortable in light of his reading of the space relative to its environment, materiality, expected time of habitation/circulation, etc. His "thinking" such things is, for the most part intuitive, and backed by deductive logic. (Of course integration of wind analysis and other harder readings is obviously desirable) But I interpret the active denial of intuition's crucial role in design as at the heart of its current deplorable trending toward misuse of terminology, application of pseudo-science and intellectual over-reach. Architects wade out of their waters precisely when they invoke such things as human psychology or perception.
Furthermore, I believe that architects - student and professionals alike - regularly make formal decisions according to their aesthetic judgement. To suggest that students aren't qualified to make a design decision during their studies because they think it's formally successful seems exceedingly stingy; likewise, suggesting that a professional architect shouldn't rely on it is puzzling to me. I find architects' attempts to justify what are obviously decisions based on formal taste using other means often taking the same form of obfuscation that makes architects appear to be intellectual charlatans to specialists in other fields. Taste is taste. I would agree that it can't be taught. But good architectural design certainly remains at least somewhat grounded in artistic sensibility.
3) I'm by no means advocating that all architects must master every detail in their work. Rather, that architects have at least a generalist's working knowledge of materials and construction systems. Floors don't levitate, and windows require depth; rules of thumb count as vital knowledge.
4) I would say that consideration of performance-driven properties falls under basic understanding of how a building will operate in its given environment. For example, if you've designed a glass house in Arizona, ur doing it wrong. The more simulation and science you have, the better. Indeed, I think that such elements - wind analysis, solar gain analysis, structural performance - represent the most solid opportunities today for architects to assert the harder lines of defense in their design decision making...say for example, being able to demonstrate using basic geometry that your shade keeps the sun out in summer, but lets it in when it's cold.…
nome there will be one of those little [+] symbols. Also, when it finds a new best-answer-yet the I'm-giving-up counter is reset to zero.
B is the average fitness of the entire population over time. It is not a particularly interesting statistic.
C represents the portion of the population that is fitter than a single standard deviation away from the average, and E represents the portion that is unfitter than one standard deviation. In a similar fashion, D represents that part of the population that is within one standard deviation of the average. None of these are particularly interesting from the user's point of view, but it does give you a sense about the general fitness variability within a population. I.e. "all genomes are quite fit but there are one or two slackers" vs. "all genomes are absolutely terrible save for a rare few" vs. "genomes are pretty well distributed along the fitness spectrum"
The vertical blue bar indicates that you currently have generation 17 selected. A 'population' of genomes evolves over time and every time-step is called a 'generation'. If all goes well, the fittest individuals in any specific generation are fitter than the fittest individuals from the previous generation. If this doesn't happen -say- 20 generations in a row, the solver will abort the search.
A single generation contains a fixed number of genomes or individuals. When you select a generation, those individuals will be displayed in the bottom three graphs. On the left you see a 'similarity representation' of this generation. The closer two dots are the more similar their genetic make-up. Black dots represent genomes with offspring, red crosses represent genomes that did not contribute to the next generation.
In the middle you see a multi-dimensional-point-graph. Each slider that is being manipulated by Galapagos is represented by a vertical line. Each genome is then drawn as a polyline connecting these vertical lines at the percentage of the slider value they all have. This representation shows not just clusters of similar genomes, it also shows you which slider layout they roughly have. You can select genomes in this graph.
On the right is a list of genomes (sorted from fittest to least fit) with the fitness value written next to it. The green bands are once again indicative of the slider layout of each genome, so if two capsules look alike, they have a similar slider layout.
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 3:00pm on November 18, 2013
used of 180 being for the northern hemisphere and 0 for the southern hemisphere.For the optimal tilt, to my knowledge, they are mostly based on correcting location's latitude through a single formula.TOF component is more sophisticated. It essentially replicates the Solmetric's Annual Insolation Lookup tool.What it does is that it creates a grid of points. Each point represents the calculated annual insolation on the surface (PV module, SWH collector, facade, any kind of surface) for a single tilt and azimuth angle.Each point is then elevated according to the annual insolation values. The mesh is created from that grid of points. The portion of the mesh which is the highest, represents the optimal tilt and azimuth angles. So the higher your "precision_" input is, the more points in a mesh you'll have - thus the more precise final optimal tilt and azimuth will be.For the diffuse component of the annual incident solar radiation for each point the Perez 1990 modified model is used. Direct is from classical cosine law, and Ground reflected component from Liu and Jordan (1963).So TOF component calculates the optimal tilt and azimuth based on annual incident solar radiation, not AC energy....…