te value.
So abs(a-b) finds how much (always positive) each cell's area differs from its target area.
I then took the negative of that (-abs(a-b)) because Galapagos always tries to maximize the Fitness, and used Mass Addition so it minimizes the total difference from ideal areas.
I was first assuming that you were trying to tackle Kelvin's problem with Galapagos - and wondering if it would end up with the Weaire-Phelan structure. I think this would be a very interesting one to try (especially as it is not proven that W-P is optimal, so there is a chance it might find something better!), but a little tricky to set up. You'd need to simultaneously ensure equal volumes and minimize total surface area, and for all of space, not just some finite volume. If you do pursue this, then Ruggero Gabbrielli would probably be a good person to talk to.
But from the image you posted it looks like the regular Weaire-Phelan packing, just with some cells removed. I don't really see how a genetic algorithm would be very useful in this particular case.…
Added by Daniel Piker at 6:13am on September 4, 2010
ued obelisk": where cross-sect structural members are extruded along lines, using 'Perpendicular Frame' & 'Orient'. At certain junctions, the planes flip (or I assume they do as the structural members flip out-of-alignment).
I tried generating the structure 2-ways to see if it was just me --using curves w/ endpoints (left) and culled-subSurface-edges (right). The location of the "flip" seems to be dependent upon the rotation of the generative squares (3 arrayed vertically & rotated @ 0, 30, & 60 dgrs) as well as the derivation method, but I can't seem to negate it all together.
Surface orientation as well as curve direction all seem to be uniform...
>GG *might* be a workaround...
RH 6.15.19141.8361, 05/21/2019
GH 1.0.0007, 2019-05-21
Win7x64 Pro
Thx in advance,
-dt…
I'm now trying to take a 2d piece of geometry and morph it into each box on the surface.
Before doing this, I was using an extruded version of the above geometry, but I need it flat so I can later do smash in rhino, and with the extruded geometry, it wont work. I need it essentially to be a baked surface with holes in it.
Here's the result from when i get to the SBox stage:
Now, when I use box morph in the same way I did with the extruded geometry, box morph throws up an error "Cannot morph from degenerate box" which is no good. I think there's a way I can do it with Surface Morph, but I'm not sure what to plug in for the various parameters of Surface Morph. Here's what I'm guessing it is:
G(eometry): The 2d geometry I want to morph, currently a Brep.
R(eference Box): A bounding box for the above 2d geometry/Brep
S(urface to map to): I'm assuming the loft component which represents the curved surface.
U(Surface Space U Extents): Not sure, is it the U Domain, or from the Domain^2 Components?
V(Surface Space V Extents): Same issue above for U
W(Surface Space W Extents): Same as U and V
I need this to just be flat morphed geometry on the surface. And I'm very confused!
Any help is greatly appreciated!…
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
Angeles, which has 12% of the year made comfortable, and Shiraz, Iran, which also has 12% comfortable (assuming default parameters).
Jerusalem also makes sense to me. There is only a maximum possible 9% of the year that is inside the polygon (you'll see this if you set the timeConstant to a very high number). The default strategyPar makes 6% of these hours comfortable and 3% without cool enough temperatures in the previous hours. This seems reasonable to me.
I could be convinced to change the default time constant to 12 hours (instead of 8) as I know that 12 is the default of climate consultant but that seemed really idealized in my opinion. You'll need really high exposed mass and insulation without much internal heat gain to make conditions stable for more than 8 hours in my opinion.
As for the solarHeatCapacity, I get changes when I drop it down to 10 W/m2 or boost it up to 100 W/m2. It's definitely a parameter that operates on an "order of magnitude" scale and little tweaks to it won't change it too much. You can think of this number as representative of a lot of other physical properties: most notably the depth of the space being passively heated and the thermal mass of that space's materials that participate in heat exchange over the time constant. Climate consultant uses a default assumption of 30 W/m2 but, from my calculations, this is likely assuming a space that has a facade to floor area ratio that is greater than 1. If we say that we need to raise the temperature of 10 cm of an exposed concrete floor for passive heating purposes, and we have a facade-to-floor area ratio of 1:
Required solar flux = ((1 facade-to-floor ratio) x (0.1 m3 of concrete) x (2400 kg/m3 concrete density) x (880 J/kg-K concrete specific heat capacity)) / 3600 seconds/hour
This lands you with a required solar flux of 58 W, which is almost twice the 30 W climate consultant default. While me might say that not all 10 cm of concrete participates over the course of a default 8-hour time constant (most of the action is probably within the first 5 cm), we also have to account for things like transmittance of solar though the window, which, for triple pane, is probably only half of the incident solar. So 50 W seemed to be a more reasonable rule of thumb from my perspective, essentially assuming a facade-to-floor ratio of roughly 1 with 5 cm of concrete participating in an 8 hour heat exchange and a little more than half of solar heat getting through a fully glazed window.
Let me know if that makes sense or if you have any suggestions,
-Chris…
ne) graphs, makes a classic VV (vertex to vertex connectivity) Adjacency Matrix based on what Sandbox has to say (the Matrix is not actually required if someone wants to stay 100% in the GH world) and then ...er ... hmm ... attempts to find closed circuits as Microsoft suggests (forgot/lost the link but who cares? not me anyway [see VS stuff attached]).
It's quite faulty (like Windows) ... but is an indication on some things. Try to understand the recursion (critical in most AEC stuff). Recursion means that Matteo calls Matteo who calls Matteo ... until Matteo calls Maria and the loop is over. Notify if you need other recursion C# examples on other things (dozens available).
The working(?) chopped (minus sensitive stuff) real thing next week: just realized that this w/e there's the Malaysian MotoGP (Valentino lost the championship) AND a critical Formula 1 race in Mexico (forza Lewis).
Attached as well the original VS stuff from Microsoft (requires VS 2017)…
(i.e. a surface/mesh made out of the distorted points).
This outlines this approach PRIOR Kangaroo.
But ... BEFORE I'll provide a similar Kangaroo solution ... and speaking as Engineer I would strongly suggest to forget equal stuff/puzzles (your concern numero uno is NOT equality but planarity) in similar cases and go for a classic truss (with W depth) that can handle big overhangs with easy (say a MERO KK ball system). The nodes and the struts for similar stuff come at no extra charge since Germans (MERO) do these things via CNC and thus it makes absolutely no difference.
Here's one out of a million solutions using similar systems (W is due to a variable option: less at perimeter, more at "center" (a Math.Sin distortion is applied) > that yields a very airy appearance). Other freaky options also available (random this, random that) resulting ... er ... freaky stuff.
Here's a semi freaky option (random "bottom" W distances):
And here's a full freaky thing (both "layers" random):
Shown an abstract visual solution (no balls and no composite struts [i.e. sleeve + cone + rod]).
So ... what you want to do? Decide and a solution could arrive soon.…
its way into parametric design on 24th February – 2nd March 2014. The workshop is designed to fulfill students' as well as professionals' requirements. The exceptional 30 seat workshop is part of the regular series of events called Parametric Bratislava, which is itself a unique activity in the central-european space. One week long workshop focused on architectural form-making, usage of digital techniques of parametric design is going to lead participants to the new approaches in both, design and architecture. ECOTYPE workshop is going to take place on 24th February – 2nd March 2014 (1 day optional Crash course + 6 days main course) at the Faculty of architecture, Slovak University of Technology. Renowned Serbian experts from Grupa Arhitekata Jelica Jovanović and Dragana Petrović are going to join forces with Italian Noumena architects Aldo Sollazzo and Iker Mugarra Flores to bring together the natural and the digital. The workshop is going to look into digital sensing structure subsystems, constituted by associative simulations of the relations between tectonics and the environment in which human activities take place according to specific programs. It is going to provide and control a constant flow of information about the changing internal and external conditions which is processed by a computational subsystem articulated by Rhinoceros 5 ( NURBS-based 3D modeling software) + Grasshopper 3D & Sub-Plugins (generative computation tools). Through these means new design opportunities are going to be explored. The resulting proposal challenges conventions and the way that design is conceived, stepping away from linear process and embracing holistic approaches. ECOTYPE workshop is meant for intermediate Grasshopper users. For the newcomers there is going to be available an optional one day Rhinoceros 3D + Grasshopper Crash course with Ján Pernecký (rese arch) and Fabio Palvelli (3D-Dreaming.com). The beginners are going to learn basic NURBS modelling, import/export techniques, best drafting practices and basic Grasshopper scripting – workflow, parameters, components, data structures, attractors, surface subdivision, mathematical and logical operations. - Aldo Sollazzo focuses on exploring critical issues in architecture, design, and urbanism through parametric design, scripting, and fabrication strategies.
- Iker Mugarra Flores is mainly specialized in advanced geometries and logics, prototyping and fabrication, environmental morphologies and holistic approaches to large and small scale strategic design ecologies.
- Jelica Jovanović is within Docomomo working on proposals for the protection and sustainable preservation policies of the modern movement architecture in Serbia.
- Dragana Petrović specializes on Bioclimatic design in Architecture.
- Ján Pernecký - Architect, researcher, curator, programmer, organizer.
- Fabio Palvelli - Architect, designer, researcher and publisher of architectural projects, workshop organizer. ECOTYPE's approach is focused on the architectural view of the geometry. The participants are going to get acquainted with a vital tools for producing algorithm-driven shapes with a strong sustainable concept. More info at: www.parametricbratislava.sk FB event: https://www.facebook.com/events/1432557286975440/?source=1 …
ials dealing w/ similar cases etc) on achieving the following.1. Recreate this shape below, let's call it a circle with hooks (it's a set of curves I assume?)2. By modifying the shape of one 'hook', all of them should change in the same way.
I made several attempts, but I can't get it to work and looks like I am nowhere in the vicinity of what needs to be done... .gh file attached.Sorry if I am missing any info/attachments needed to answer my question. Will add, just lmk.Thanks much for your advice.…
Added by Nataliya S at 4:01pm on February 11, 2017
magine a lattice tower with approx 600 members, but let say we are grouping them in sections (usually 5-6m height sections), so we will still have at least 40 different dimension.
I am not sure how to get the exact member sizes after Cross Section optimisation.
About the shielding, the design code (TIA-222-G) for the towers manages well fortunately, otherwise it would become a very complex model. In case the mast cross section is triangular or rectangular, then there are formulas what w can use for force coefficient calc.
Pls see attached a definition, I made it earlier from the design standard. (written in MathCad) ...actually now this I am implementing into a Python script, so later be able to feed a liner load component of Karamba.
On page 3. you can see the "epsilon" as solidity ratio which plays an important role for the shape factor of the structure. These formulas are coming from wind tunnel test, so we, engineers we can implement it to our real structures.
…