st one bakes each mesh chunk into the document, the middle one calculates the isosurface values and has the following code:
Private Sub RunScript(ByVal x As List(Of Vector3d), ByVal y As Object, ByRef A As Object)
Dim nums As New list(Of Double)
For Each v As point3d In x
nums.add(mandelbulb(v))
Next
a = nums
End Sub
' custom additional code
Dim z As vector3d
Dim Iterations As Integer = 6
Dim Power As Integer = 8
Function mandelbulb(pos As vector3d) As Double
z = pos
Dim dr As Double = 1.0
Dim r As Double = 0.0
Dim int As Integer = 0
For i As Integer = 0 To iterations - 1r = z.Length
Dim theta As Double = Math.acos(z.Z / r)
Dim phi As Double = Math.atan2(z.Y, z.X)
dr = Math.pow(r, Power - 1.0) * Power * dr + 1.0
Dim zr As Double = Math.pow(r, Power)
theta = theta * Power
phi = phi * Power
Dim sintheta As Double = Math.sin(theta)
z.X = sintheta * Math.cos(phi)
z.Y = Math.sin(phi) * sintheta
z.Z = Math.cos(theta)
z = vector3d.Multiply(z, zr)
z = vector3d.Add(z, pos)
If r > 1.5 Then Exit For
Next
Return 0.5 * Math.log(r) * r / dr
End Function
I mainly got it from here: https://github.com/royvanrijn/mandelbulb.js, but I've seen almost the same code on several places.…
Added by Vicente Soler at 9:38am on December 19, 2012
Ruby, [9] R, [10] PHP ,[11] MATLAB [12]
Maybe it can find it's way into GH somehow..
when using the default GH random number generator i mostly use much higher seed values.…
Added by Robert Vier at 10:08am on December 27, 2012
an example, it is transcendental and there simply aren't enough particles in this universe to encode all the unique decimals that make up Pi.
Matters are of course much worse in your average computer on Earth, different types of digital numbers are allotted fixed amounts of memory space. Bytes (0 to 255) are allowed 8 bits. Standard integers are allowed 32 bits. Standard double-precision floating point numbers are allowed 64 bits. There's only so many unique numbers you can make if all you have to work with are 64 on-off switches (2 to the power 64 to be precise). It stands to reason that one of these possible numbers is the lowest one and another the highest one.
Double.MaxValue returns the highest of all possible double-precision floating point numbers. There is no number higher than Double.MaxValue (unless you count Double.PositiveInfinity which isn't so much an actual number as a convention).
The most common reason for using Double.MaxValue in code is when you are looking for the lowest number in a list. What you do is iterate over the all the numbers in that list and remember the lowest one you found so far. By starting out with Double.MaxValue as 'the best answer so far' you guarantee that every other number will be either equal to or smaller than your starting value.
Put another way, Double.MaxValue isn't about getting the highest number in some collection of numbers, it's about getting the highest ever possible number.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 9:47am on February 4, 2013
where all of the windows of the zone have the same transmissivity to see the effect of the building's overall window SHGC on comfort, then your current file looks like it should be correct. However, if you are trying to analyze a single simulation where each window has a different transmissivity, the Ladybug_Solar Adjusted MRT component is not going to be able to help you since its windowTransmissivity input is not built to understand the relative contribution from elements with different transparencies.
If you are interested in this latter case, you can model it using the microclimate map workflow that I developed for my thesis, which will look at the relative contribution of each surface and window element on local MRT. Here is an example of a simple test box that is using this micro-climate map:
http://hydrashare.github.io/hydra/viewer?owner=chriswmackey&fork=hydra_2&id=Microclimate_Map_-_Simple
If you are only interested in Radiant Temperature, you can use the radTempMtx output from the Microclimate Map component and, if you would like the operative temperature or adaptive comfort, you can replace the UTCI recipe in the example above with the "Honeybee_Adaptive Comfort Recipe".
The micro-climate map workflow will compute a starting MRT from the view factor and temperatures of your zone's surfaces and will pull the SHGCs of your windows from the EP constructions of your HBZones when it computes solar-adjusted MRT. So all that you have to do is assign the SHGCs correctly to your HBZones and the component will take care of the rest.
Let me know if you have any questions and more information on the comfort maps can be found in my thesis document:
https://www.dropbox.com/s/k4r4rd279y4td9n/Mackey_Thesis.pdf?dl=0
-Chris…
ot optimal to the various criteria I am trying to satisfy. I think of a potential design like the wave function, or like the quantum superposition, but instead of a single electron and an orbit, it's 15+ rooms and a building perimeter.
So in a part-time/spare-time way, I started to put together an algorithm that can begin to explore different floor plan arrangements. It compares the sizes (with ranges) and positions of different spaces within some (as of now) pre-defined perimeter.
My focus is currently on single-family houses, because that is what I have most experience in. The current checkpoint I hope to cross is that I can take an existing house plan (single storey), plug in the list of rooms with respective size ranges, and define the perimeter as it is drawn, and that the algorithm would be able to more-or-less recreate the plan, but hopefully also provide various alternatives.
I think the applications are ridiculously vast, including floor plan generation, and design in general, given that there are sufficient constraints. The simplicity of orthogonal geometry helps too. Applications in new construction, but also rehab projects where the building is just a shell would revolutionize the process, pushing things toward optimization and variation rather than shots in the dark.
Sorry for the long message. I haven't felt very confident in my algorithm to share it, and I don't have too many people to have worthwhile discussions on this in person, since most accuse me of trying to make their jobs obsolete. I think its just a new era where we have to embrace algorithmic methodologies, especially since 'the way it's done' seems to be producing derivative crap where profit maximization is the only consideration.
Here's a screen shot of my past 8 months:
…
Added by Joseph Freund at 7:06am on February 18, 2016
decided to also port some of the example files.
The GH definitions work very similar to Kangaroo. The boolean toggle must be set to false and the timer component must be enabled to run the animation. To reset the animation disable the timer and switch the boolean toggle to true.
Most of the code is ported as it is, but in some cases I added more functionality, like making the algorithm work in 3D.
EDIT: By request I also added the definition for this video:
http://www.grasshopper3d.com/video/testing-exploding-words
Files
Bounce.gh
Conway.gh
Flocks.gh
Reach.gh
Softbody.gh
Springs.gh
Exploding text.gh
…
Added by Vicente Soler at 12:08pm on August 15, 2011
ten, Graft, Simplify and Flip Matrix. There is also an additional example showing Integer Divide to which there is no existing component.
For those uninitiated in the dark arts of pathmapper the component can be found on the Sets Tab> Tree Section with the icon of a red cube. Section 8: The Garden of the Forking Path of the Grasshopper Primer 2nd Edition is dedicated to the Tree Structure implemented in GH v0.6. There is an extensive Help file accessed from the 'right click' Context Menu.
UPDATED to correct an error in the Flip Matrix demonstration path_count should be item_count. Plus reflecting the change of the Simplify Component and Additional demonstration of grouping without the Path Mapper
Updated: 2011-04-20
Replace Branches
Not sure if it's right to include this here as its actually encouraging you not to use the Path Mapper, but sometimes there are benefits to being able to keep the definition free from restrictions like the Path Mapper. When a data structure changes the Path Mapper is unable to adapt without user intervention. This is demonstrated in the two Grouping examples above. The Path Mapper method would need the user to manually change the Integer 6 if they ever increased the V Divide, where as the Replace Branches Component will simply update based on its inputs.
I hope to follow this up with some more..... …
o: http://github.com/HeinzBenjamin/FlexCLI/issues
Download
You can find FlexHopper here:
http://www.food4rhino.com/app/flexhopper
and here:
https://github.com/HeinzBenjamin/FlexCLI
Info
FlexHopper offers physics computation in Grasshopper. It is GPU-based and therefor very fast. Currently supported modes of simulation are: free particles, fluids, rigid bodies, soft bodies, tensile structures and cloth, custom constraints.
FlexHopper is a Grasshopper plugin built on top of FlexCLI - Flex Common Language Interface. FlexCLI is built against NVidia Flex release 1.1.0. NVidia Flex is patented property of NVidia. FlexCLI and FlexHopper are openly accessible under the GNU License through my Github account. (Link above)
For more information on NVidia Flex go here: https://developer.nvidia.com/flex and https://developer.nvidia.com/nvidia-flex-110-released
FlexCLI runs on x64 architectures only. It was built against .Net 4.5.2
FlexHopper was tested with Rhino5 64bit and Grasshopper 0.9.0076 WIP
Requirements
Windows 7, 8, 8.1 or 10 64bit
NVidia or AMD Graphics Card
NVIDIA: GeForce Game Ready Driver 372.90 or above
AMD: Radeon Software Version 16.9.1 or above…
e2) Dim plane3 As New Plane(ap, dp, ep)
planeList.Add(plane3) Dim plane4 As New Plane(ap, ep, bp)
planeList.Add(plane4) Dim plane5 As New Plane(fp, cp, bp)
planeList.Add(plane5) Dim plane6 As New Plane(fp, dp, cp)
planeList.Add(plane6) Dim plane7 As New Plane(fp, ep, dp)
planeList.Add(plane7) Dim plane8 As New Plane(fp, bp, ep)
planeList.Add(plane8)
For i As Integer = 0 To planeList.Count - 1 Step 1
Dim transf As New transform()
transf = transform.ChangeBasis(planeList.item(0), planeList.item(i))
Dim newmesh As New mesh
newmesh = oldMesh
newmesh.Transform(transf)
meshList.Add(newmesh)
Next
================================
So why it doesnt want to work ?
I obtain 8 meshes all in the same place as mesh based on plane1
rhino4, grasshopper 0.8.0050
…
y anyway ;))
Since 2014 i begun to get back into the construction biz for some dozen main reasons, one of them being the highly increased availability of this kind of software "power", and robotics.
first project ended by 1stQ 2015 was focused on the development of a parametric block for construction. (almost sure the first parametric product designed in Uruguay, and probably one of the few first of this kind globally...)
Far from being a complicated model. In fact the standard model is extremely simple, key thing is that is fully parametric...
dimensions, materials, textures, colors... and so on
second key thing is that the main common component of the blocks (an EPS core) is robotically machined...
the blocks are the base of a construction system (oriented mainly - though not restricted only - to residential buildings) that
- is based on digital models, tendentially to be used in parametric models of buidings
- lab tested to prove to be 1.5 times as compression resistant than traditional bricks and blocks. (autoportability up to two stories buildings)
- has recently proved (due to size) to be 300% more efficient than the classic and 200% more efficient than steel frame in (our country official figures)
check it out here
--
https://drive.google.com/file/d/0B1TRxxgF_sEnQnZrTkZGbUx3cmM/view
--
- and it's aimed to be mass produced and handled by robots...
this project ended on 1H 2016
and i filed 4 patents in the process.
3 of them of mechanical devices designed as extensions for a cnc machine i own
and the fourth (
the patent related specifically with the blocks ) included a dozen of innovations (believe me...i have almost 15 yrs in the biz, and are coool stuff...)
along the project I've been working with inventor, even knowing in advance it will lack the kind of features I wanted to program many things... (lisp, VB, etc.... all same species of -prehistoric - animals) to leverage the tool to the sky - and far beyond... -
but was an alternative valid by that time because it allows the implementation of some form of parametric models, had a local representative and some supposedly skilled guys in the neibourhood....
but life is hard... and none of the latter two rendered me any significant help
so I had to take the tour myself...
- mind i never regret to do things that others cant -
and finish what i start
this one was a great project for many figures... and ended with more results than the ones commited to accomplish...
... some more history here ....
then because of a customer who brought a ZHA project ! to quote..., I crossed with rhino, and then met GH again to notice to my great joy and pleasure, in what kind of animal it had developed...
since money talks I'm investing hard on getting up to the expectations, and beyond as i usually do...
and thats how we met..
2017-2018 it's the time frame to build two robots. first one is a prototype to handle the k-nano blocks in the production process, delivery AND at the construction site ( a "smart crane" we nicknamed...)
the other one is the first prototype of robot to assist in the fabrication (smart blocker we called it to be creative ! ;))
then by 2018-2019 i'll be making a "kinda contour crafter" machine to complete the pie :) (you'll be interested on this..)
i guess you already know what all this has to do with GH...
i already have all the components i can imagine to do almost all i ever wanted to do in relation to this set of projects
but in almost a single tool !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
i can design, animate, render, optimize, simulate and even robotic simulate..
so, i have to ask...
is there a chance you might be interested in helping us in some projects we are starting on march and june 2017 (8 and no more than 18 months of duration respectively) ?
sent you a friend request, for the case you might be interested to continue by e-mail...
in any case many thanks for your help and inspiration !
best regards !
long happy marriage, and large figures bank account !
…