background preloader

Articles of interest

Facebook Twitter

Cross Reference; what is it, how does it work, why would I need it? As of Grasshopper 0.9 components no longer offer a Cross Reference option in their pop-up menus.

Cross Reference; what is it, how does it work, why would I need it?

This feature was removed because I felt it was not flexible enough. Now, you can achieve Cross Reference matching with a dedicated component which creates combinations of items. You can find the [Cross Reference] component in the Sets.List panel. When Grasshopper iterates over lists of items, it will match the first item in list A with the first item in list B. Min & max on grafted list. Collecting outside points. Incremental 3d Convex Hull. Thanks to some theory on I managed to script an incremental 3d convex hull algorithm.

Incremental 3d Convex Hull

This is a part of "in-progress" script for k-means rationalization. It's quite fast (1000 points in cloud = 1.1 sec, amd x6), accepts multiple branches/hulls, most complex math operation is sqrt(2) :) , and its really simple to use (one input, one output) ;) Tags: 3d, convex, hull, incremental. Relative tree item. ● !!

relative tree item

This release is build against .NET 3.5 instead of 2.0 !! ● Added conditional If(condition, A, B) method to the Grasshopper expression language. ● Added Rectangle geometric primitive. ● Added Rectangle3d to the Script type hints. ● Added a FilePath parameter. Multiple attractor points in a circles grid. How can I sort in two dimensions? 2d-sort.ghx This file shows the basic idea of 2D sorting.

How can I sort in two dimensions?

Unevenly divided surface. Path Mapper Help. As a result of a request please find a series of examples for using the Path Mapper component.

Path Mapper Help

The First installment of this is showing the Path Mapper imitating some already existing components. Flatten, 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.

Display full numbers. List components with levels. Hi everyone I have thought a little about this and I don't see why not, so here it is.

List components with levels

A while ago I had this configuration: 0;0;0 {a,b,c,d} 0;0;1 {e,f,g,h} 0;0;2 {i,j,k,l} 0;1;0 {m,n,o,p} 0;1;1 {q,r,s,t} 0;1;2 {v,w,x,y} and needed this instead. A beta plug-in for rhino. MeshMash! As regular readers of this blog will know, I’m passionate about the use of relaxation and force-based methods for optimizing geometry in a very interactive way.


There is a great variety of form-finding that can be done by assigning physical forces as interactions between sets of particles. However, in my investigations so far, the topology of these interactions has usually remained fixed. So the overall shape changes dramatically, but the number of points -and the underlying network of which point interacts with which- remains the same throughout the simulation. SR22. Wb-like mesh faces offset with attractors. Mesh dynamic relaxation + attraction with Hoopsnake. Drainage Direction Script. I made a python script that estimates the direction of drainage paths on a surface.

Drainage Direction Script

It does not deal with puddling or accumulation, and if you have any suggestions on how to make it faster or to improve it in any way, let me know -- this is a first draft. you can see the python code in this github gist: Tags: Attachments: drainScript.ghx, 218 KB. Template:Grasshopper Data Tree editing. Introduction Data Tree Grasshopper uses, in contrast to a programming environment, no object names to define an object.

Template:Grasshopper Data Tree editing

This may sound trivial but it one of the most fundamental differences from a traditional modelling environment. In Grasshopper the object or objects are placed in a list. Shrink Wrap with Kangaroo. This definition approximates a shrink wrap for generic brep geometry.

Shrink Wrap with Kangaroo

There are two steps: The first step creates a mesh from a bounding box and drags each vertex to the closest point on the brep. Closed Curves / Cells from arbitrary grid of Lines / Curves. Looping Problem. Hello, I am working on a project regarding the composition of tetrahedron at their adjacent faces to grow into a larger overall composite. My plan of action was originally for the geometry to mirror itself and grow to the set outcome (distance to point in Galapagos). Form. Skeletal mesh. In response to this discussion: I am posting my definition for generating an open foam mesh. (I didn't post back at the time because there were some troubles with weaverbird back then and I was having to use some ugly workarounds, but now that is all fixed) To sum up the approach - take a random cloud of points generate the 3d voronoi scale the edges of the cells towards their centres, and also towards the centres of the faces. Triangular morphing/mapping. Hi all, I've been playing around with something - trying to map an object from one triangular "space" to another - that is to do a sort of triangular cage edit...

Pretty much all of the morphing methods are based on rectangular structures (NURBS/UV), so it's somewhat difficult to find ways this can be done (without using mathematics that are above my grade-school level... :) ) I did mock up a way with a planar curve object and the MapToSurface module using base and target triangular surfaces made with either Edge Surface or 4Point Surface, but it doesn't seem to be extremely accurate - the more points the original has, the better it gets, but it's never really good. Mapping a shape between two triangles. Hi, I've been trying to solve this by several approaches but couldn't fnd a way.

I have a number of triangles with different proportions, and I'd like to map onto each one a reference shape I've drawn around a reference triangle. The problem seems to be that the target triangles are generated by the three vertices as trimmed surfaces, and so if I use a bbox, the resulting box is not what I'd expect.

Please see images attached. All the examples I've found use four-sided cells. Tags: Controlling longest list behaviour. Random Linear Growth – Hoopsnake « Inside voronoi cells selection (test for duplicate points) Hello i would like to select "skin cells" from voronoi body.