nitions prior to Karamba are to allow the genes to manipulate the form of the shell and then kangaroo to relax the form to its "equilibrium" state.
The definition, as attached, runs fine over one iteration. However, when I run the Galapagos solver, rhino slowly uses up my computers memory and then ultimately crashes (around 80 Galapagos iterations). I don't think that the surface patch, or kangaroo are the issue, as I have run other iterative definitions through them without issue.
I believe Karamba may be occupying memory each iteration that is not released when a new iteration begins. This problem is exasperated by the fact that I am running 11 load cases, 9 of which are point loads defined over each vertex of the mesh. I ran a definition with only one load case, and it reached 170 generations (with a population of 50 for each generation). However, at this point it had occupied 90% of my computer's available memory.
Do you know of a way to ensure that Karamba purges its memory after an iteration, or is this a possible memory leak bug?
Thanks again, any help you can provide is much appreciated.
Sean
…
ay how many valid permutations exist.
But allow me to guesstimate a number for 20 components (no more, no less). Here are my starting assumptions:
Let's say the average input and output parameter count of any component is 2. So we have 20 components, each with 2 inputs and 2 outputs.
There are roughly 35 types of parameter, so the odds of connecting two parameters at random that have the same type are roughly 3%. However there are many conversions defined and often you want a parameter of type A to seed a parameter of type B. So let's say that 10% of random connections are in fact valid. (This assumption ignores the obvious fact that certain parameters (number, point, vector) are far more common than others, so the odds of connecting identical types are actually much higher than 3%)
Now even when data can be shared between two parameters, that doesn't mean that hooking them up will result in a valid operation (let's ignore for the time being that the far majority of combinations that are valid are also bullshit). So let's say that even when we manage to pick two parameters that can communicate, the odds of us ending up with a valid component combo are still only 1 in 2.
We will limit ourselves to only single connections between parameters. At no point will a single parameter seed more than one recipient and at no point will any parameter have more than one source. We do allow for parameters which do not share or receive data.
So let's start by creating the total number of permutations that are possible simply by positioning all 20 components from left to right. This is important because we're not allowed to make wires go from right to left. The left most component can be any one of 20. So we have 20 possible permutations for the first one. Then for each of those we have 19 options to fill the second-left-most slot. 20×19×18×17×...×3×2×1 = 20! ~2.5×1018.
We can now start drawing wires from the output of component #1 to the inputs of any of the other components. We can choose to share no outputs, output #1, output #2 or both with any of the downstream components (19 of them, with two inputs each). That's 2×(19×2) + (19×2)×(19×2-1) ~ 1500 possible connections we can make for the outputs of the first component. The second component is very similar, but it only has 18 possible targets and some of the inputs will already have been used. So now we have 2×(18×2-1) + (18×2-1)×(18×2-1) ~1300. If we very roughly (not to mention very incorrectly, but I'm too tired to do the math properly) extrapolate to the other 18 components where the number of possible connections decreases in a similar fashion thoughout, we end up with a total number of 1500×1300×1140×1007×891×789×697×...×83×51×24×1 which is roughly 6.5×1050. However note that only 10% of these wires connect compatible parameters and only 50% of those will connect compatible components. So the number of valid connections we can make is roughly 3×1049.
All we have to do now is multiply the total number of valid connection per permutation with the total number of possible permutations; 20! × 3×1049 which comes to 7×1067 or 72 unvigintillion as Wolfram|Alpha tells me.
Impressive as these numbers sound, remember that by far the most of these permutations result in utter nonsense. Nonsense that produces a result, but not a meaningful one.
EDIT: This computation is way off, see this response for an improved estimate.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 12:06pm on March 15, 2013
t it i used a definition i wrote for a 3d mandelbulb (the Mandelbrot fractal in 3d) see HERE
so in the test you will see the sample set to 80. that means 80^3, so its generating 512,000 points
…
and Ronnie of StudioMode and David Fano of DesignReform will also be attending.
RSVP has been closed on this event. Space is limited to 50 people. Please attend if you do RSVP.
Agenda -
12:00-1:00 Arrival, informal discussion
1:00 - 1:15 Introductions
1:15 - 2:00 Project presentation 1 (30 minutes + 15 min QA) - David Lee - Clemson - 3D pattern environments using volumetric proxies.
2:00 - 2:45 Project Presentation 2 (30 minutes + 15 min QA) - P. Casey Mahon - Organic Abstractions (30 minutes + 15 min QA)
2:45 - 3:45 David Rutten - New work in GH (30 min QA)
3:45 - 4:30 Sameer Kumar AIA - KPF - Project presentation 3 (30 minutes + 15 min QA)
4:30 - 5:15 Chris Wilkins - Clemson - Urban Renewal and parametric urban development studies in Grasshopper.
5:15 - 6:00 David Rutten - Scripting in GH (15 min QA)
After 6:00 conversations may move down the street for more discussion.
If you would like to present your project at the Cloud please email: scottd@mcneel.com…
square units. Then you have an integral number of fragments on each side. This means that if all fragments need to have the same surface area, you can only have the following possibilities for side A:
1 fragment = 100 square units
2 fragments = 50 square units each
3 fragments = 33⅓ square units each
4 fragments = 25 square units each
5 fragments = 20 " "
6 fragments = 16⅔ " "
etc.
For side B, the numbers are mostly different
1 fragment = 300 unit²
2 fragments = 150 unit²
3 fragments = 100 unit²
4 fragments = 75 unit²
For side C they are different still. Unless you join fragments across on both sides of the edges of the box, I very much doubt you'll be able to pull this off.
The solution I attached will create fragments as identical as possible, but it's a very boring outcome...
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
the pattern which is overlaid, just works a a certain zoom-level, a change in colour (maybe white) or transparency (50%) would work better...
2. then it would also be really cool, to be able to turn off certain parts of a definition, like an on/off button per component or so. sometimes that would really help, like when you would have to unplug 40 wires to change sth...
3. maybe tricky, but also cool: when you select multiple items, then right-click and change values for all of them (like preview, list-mode, flatten, name, ...)
4. the thing gabe meant with the align tool is basically: if you copy-paste an item, then that item comes pasted with an offset to the right and down, better would be if it just would be offsetted down, cos then you just can drag it away holding shift and it's aligned right away...
still angry sky, i'll go play with my definition,
p…
erything else is on hold.
2) Generating solution data. Creating BReps, performing boolean operations, computing closest points etc. is not trivial, might take a long time. As in meshing this only utilizes a single core.
3) Drawing preview geometry. This takes far too much time at present, we need to speed it up.
4) Drawing the grasshopper canvas. If you have a massive definition, the refresh rate might drop down to just a few frames per second. I'm working on optimizing this, but it's a slow process.
As Danny pointed out, 50% processor use most likely means one of your cores is maxed out. If you're low on physical memory, then Windows will start paging memory to the disk. If this happens, everything slows down to a crawl.
I don't understand what you mean by "GH processing". You cannot funnel computations through OGL, OGL is an SDK for hardware accelerated drawing. Grasshopper performs all computations on the CPU, not the GPU.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 2:52am on November 23, 2009
of options
3. However I am not sure that in my example was not better to use Annealing Solver
4. I have in my results 1048567 line most of them are Record: Genome was mutated to avoid collision this mean that it run so many iterations?
…
5.5 hours to 1.1 minutes. Given that, I'll take the ugly code
Same technique worked to fix the "region union" bug, on a long (700) list of curves to merge; dividing the list into chunk of 5 curves to merge, then merging them, then merging 50 of those results, and so, kept "region union" from getting indigestion, and completing the operation. In a short (3 minutes) amount of time.
Hope it helps others; use some of the time saved on a run to laugh at how ugly the code is
…
Added by mark zirinsky at 5:12pm on October 22, 2017
he Summer in the City program, part of the Portland School of Architecture and Allied Arts (an extension to University of Oregon).
Using both Grasshopper and the Firefly plug-in, this workshop will focus on the design of innovative facade prototypes that are configurable, sensate, and active. Students will become familiar with the terminology used in interactive facade design including an overview of hardware (ie.sensors, actuators, and programmable microcontrollers) as well as software interfaces terminology. We'll learn new prototyping techniques and develop digital and physical models which can respond to a plurality of environmental and user driven forces. This workshop will take a hands-on approach, and you will walk away with the ability to build your own custom electronic circuits (using the Arduino), as well as create interactive simulations and models.
This course will primarily focus on physical computing techniques. Unfortunately, given the time constraints of the workshop, I will not be able to provide an extensive overview of the Grasshopper interface (it is suggested that participants have some familiarity with the Rhino/Grasshopper environment). There are many great online resources to get you up to speed relatively quickly if you are new to this software. This is a good place to start.
The course will be held at the School of Architecture and Allied Arts in Portland, OR. The date/times of the workshop are as follows:
Friday July 19, 5:00-7:50 P.M.
Saturday July 20, 9:00 A.M.-3:50 P.M.
Sunday July 21, 1:00-3:50 P.M.
If you are a designer, architect, or anyone who is interested in learning about the digital tools and technology trends that are revolutionizing design today, this workshop is for you. Make sure to click here to find out more about registration and enrollment in this exciting new workshop.…