ill be curves not lines. But it could be fixed if necessary
1 Generation of a torus
2 Generation of Voronoi in 3d and calculation of intersection between cells and torus
3 Cut of the curves with 2 planes
4 Projection of the curves in XY planes between 0 and 2*PI
5 Scale in X of this pattern and array
Main variables are
Little radius of torus
Number of points for Populate 3d component
And the scale in X
It seems quite a simple way to generate a Seamless Voronoi.
Happy ?
For the question about symetry, cut, rotate ... you will have to draw things , seek on internet ... figure it by yourself. …
raries by entering %appdata% into the dialog box and browsing to the Grasshopper Libraries folder to find KangarooSolver.dll.)
Oh wow, because of "physics" there is substantial gap between the surface layer of many particles and the inner truss, so we already have some form of boundary adaptive 3D meshing, albeit only in the surface "XY" direction not the normal "Z" direction. There's less full XYZ directional force on the particles at the surface, so they can cluster more there due to the forces from within having to struggle much more against one another from all directions. Something like that.
Differing surface curvature has not much if any affect on particle packing:
The actual physics of electrons along a conductor says they are all on the surface, where they concentrate at sharp features, but here I imagine if they concentrated more at the finger tip, they would then push more interior particles away, which is not very adaptive after all.
Higher falloff exponents than 3 (actually -3) give much more even distances of surface vs. interior, so my color coding by length doesn't even work and there are visibly a lot more interior particles:
I confirm that exponent -2 drives everything to the surface, but also gives a quite odd artifact that they are not minimizing energy by close packing away from each other but are forming squares that seem to align with the UV directions of the container:
Exponent -4 then and even more -5 maximize the interior population, but beyond -5 it it becomes unstable and bounces around like crazy.
The Kangaroo2 custom goal C# script is simple enough:
I'm still confused how to attenuate the effect according to distance to the surface and also curvature of the surface when you are getting close to it since I don't understand if Kangaroo is running the entire Grasshopper script each iteration or not so I could just do calculations via Grasshopper stuff and feed it into the C# script as needed?
…
Added by Nik Willmore at 7:43pm on August 12, 2015
between internal structural frameworks and non-bearing skin elements, this approach promotes heterogeneity and differentiation of material properties. The project demonstrates the notion of a structural skin using a Voronoi pattern, the density of which corresponds to multi-scalar loading conditions. The distribution of shear-stress lines and surface pressure is embodied in the allocation and relative thickness of the vein-like elements built into the skin. Its innovative 3D printing technology provides for the ability to print parts and assemblies made of multiple materials within a single build, as well as to create composite materials that present preset combinations of mechanical properties.
for registration please contact:
bioskinarc@gmail.com
tel: 09197804306
…
and the degree of your periodic curve is 3, then start picking one point to the left. If the degree is 5, start pickin 2 points to the left, etc.
Every curve has a domain. A domain is a numeric range defined by two numbers (a lower and an upper bound). Within the domain, the curve exists and the equations which govern the geometry of the curve yield decent answers. The lower limit represents the start of the curve, the upper limit the end of the curve. Everywhere in between you can evaluate curve properties (position, tangency, curvature and any other derivatives, tension, torsion etc. etc.).
There is no significance attached to the actual numbers in a domain. All that is required is that the lower limit is smaller than the upper limit. When we create curves in Rhino we tend to pick domains that represent the length of a curve, but if you scale a curve afterwards you change the length, but not the domain.
Curve parameters are numbers inside this domain. Basically, think of all curves as finite line segments which can be bend, kinked and stretched in 3D space. Curve parameters are locations on the 1-dimensional space that is defined by the line. The curve equations are all about converting those one-dimensional parameters into three-dimensional points and vectors.
Like I said, the mathematics are pretty involved and periodic curves are more difficult still.
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 4:23am on September 13, 2013
mber of ways, and how they are represented will dictate the final outcome.
2)If you use rectangles a question for area would be how do you dictate the ratio between the width and length? It may be easier to use circles or rather simple points with a specific charge attached relating to required area, think of the metaball component in 2d or using an isosurface in 3d (I recommend Daniel Piker's Aether plugin). So do you want something orthogonal or more amorphous?
3)Means of creating adjacency: I think for the best results you will want something that operates recursively. Hoopsnake, Octopus, Loop all allow you to create your own recursive loops, however, you might find that using something like circle/sphere packing within kangaroo will give you the desired results. In the case of Kangaroo, the spheres can be given different volumes and the connective network treated as springs to push and pull things together.
4)At this point you will have your basic geometric relationships, start simple and build up. You will want to go back and embed more intelligence into the script pulling in new parameters and inputs to relate to the given context (orientation, sun angles, topo of site, vertical arrangement, circulation). Here you may add new forces to the kangaroo to create a repelling force or attraction to certain areas.
5)Once you have this all in place it is time to flesh out the model, floor plates, partition, aperture, etc. This can be done strictly in GH native. Your primary challenge is establish believable connection between the recursive solver and the forces and output, not an easy task, but very doable.
Good luck, …
ual not tactile. i havnt touched the roof of my house i have been living in since 25 years yet its a part of my space. its still a visual plane between me and sky ( except that it protects me from rain). anyway, the point was to reconstruct huge cathedrals without moving big amount of earth.I came up with Nuun lense ( i had in sketches, it will be shorter form of this ugly cube, probably in mms) which will line the necessary floors and stairs-wells and towers.
During my experiment I realized this can be used for visualizing architectural spaces in real time, specially for arch student, it could be used as a console, that can replace cad and other 3d softwares. you can draw basic grids, orthogonal shapes ( not Zaha hadid stuff ). I still am very enthusiastic about this idea. I want to see it function some day.
Grasshopper was used to drive poor reflectors through firefly, to bend laser.( it failed badly) Its just for idea if anybody likes to follow, i dont have enough resources but it would make me happy if some day i see students working on realtime laser models and building having virtual ornamentation.
Any architecture/ electronics student who wants to further his research in lasers and its application in virtual modeling can contact me.
Pic taken at 30 sec exposure
1 ft acrylic cube , 3 slidable laser panels 1 by 1 ft for each axis. all in separate pieces. (glass table, reflectors not included)…
ive input but I have no clue how to begin doing this. I've read about using Processing and have even tried something with Processing but it didn't work for me.
I haven't had any luck finding step by step tutorials on inputing data with the 'read file' tool either. I have a feeling that just knowing how to import data would help a lot but the only examples I've found didn't work for me.
I'll be honest though, when it comes to programming and code, I'm an idiot and at a very beginner level. However, once I have working code to study and play around with, I pick up pretty quickly. I've done this with some of the GH definitions I've found and had some good results.
Basically, it's been very difficult and frustrating since I've spend literally 4 weeks trying to figure this out. Like I said, I'm not good with code! Fortunately I've had a little bit of help from the GH community and am very thankful. With any luck, maybe some other people on here would be willing to help out a couple students working on a thesis project? We don't have money but could exchange fabrication services for your help with code or definitions. We have access to a 3 axis CNC mill, Laser Cutter and FDM printer.
Thanks for your time (and hopefully your help),
Matt.
…
to problems. If anyone wants to take a look at the attached file "605b-3" and try to help me, that would be awesome.
The way I'm thinking about creating the louvers:
1. Contour the shape (could be any shape, but I attached the one I'm trying to do it to)
2. Divide those contour curves
3. Find the 4 points on those curves that are furthest away from the center of each curve
4. Move those points slightly away from the center of each curve
5. Replace the unmoved points with the moved points
6. Interpolate/NURBS curve through the new list of points
7. Loft the new curves with the original contour curves
I think I'm close, but I'm getting stuck at the end- I thought shifting lists would be the best way to solve my problem, but I'm a little confused as to how grasshopper is organizing the list of new curves and how to match that organization to the original curves.
Attached is an image of where I am stuck. I can only create a surface in the gap that I'm trying to create by the louvers. Either that, or one or two of the curves tends to create a "tornado" looking thing and i can't figure out how to fix it without individually breaking up the list. Is there a way to set all the curve seams to be at the same location in a list?…
ry branches would be an added bonus.)
I had an idea of using contours to find the center point, then connecting these found center points to create my centerline. However, I am facing a few challenges... specifically, I do not know how deal with splits in the tree branch.
I think I have an idea for how to deal with this, but I am not skilled enough (yet) to execute. The whole idea would look like this:
1) create a list of contours through the tree branch
2) connect the center points of the contour lines
3) when a single contour produces two separate polylines (when the tree splits), AND the previous contour produces only a single polyline, divide the list into two new lists starting at that contour.
4)when a single contour produces two separate polylines, AND the previous contour also produces two separate polylines, draw a polyline between the closest pair of centroids.
Has anyone run into this (or something similar) before? And, is this a good way of going about it?
The attached script is incomplete, but has the oak tree branch internalized.
I have been struggling hard with this....Any help would be greatly appreciated!!
Thanks,
Ethan
…
Added by Ethan Davis at 8:55pm on September 4, 2017
step-sizes. It starts out with large jumps, then as it cools the jumps get smaller and smaller as does the likelihood of a retrograde jump being accepted as a valid new state.
Most fitness landscapes have more than one dimension and therefore a 'jump' could include any number between 1 and N, where N is the dimensionality of the landscape. The Drift Rate setting —which may well be poorly named— controls the odds that a jump includes an additional dimension. All jumps must be at least one-dimensional, but 25 percent of them (on average) will include another dimension. 25% of those will include a third dimension and 25 percent of those a fourth and so on and so forth until the dimensionality of the landscape has been reached. Here's a list for 1000 jumps:
Drift Rate: 25%
1D jumps: 750
2D jumps: 187
3D jumps: 47
4D jumps: 12
5D jumps: 3
6D jumps: 1
A good question to ask would be; "Why would you want a jump to include more than one dimension?" and the answer is that the more genes are related, the higher the changes that a multi-dimensional jump will yield an improvement. It's not difficult to imagine that you cannot improve your current state by only modifying a single gene. Sometimes you need to change two in unison in order to reach a better solution. If your genes are highly related (which is bad practice to begin with) then you may need to adjust the Drift Rate to a higher value.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 11:09am on April 17, 2012