Gradient pattern using non-uniform hexagons

Hi, grasshopper newbie question.

I have been playing around with 2D Hexagon and Polygon Patterns.

Is it possible to create a grid of 2D hexagons with each scaling via non uniform vertices? My thinking is that I could then control these via a series of attractor points. See attached image of the kind of thing I’m trying to create parametrically.

Thanks advance for the help!


1 Like

Maybe something like this?

or these two



1 Like

You can also check out Daniel Piker’s Mobius Transformation component in Kangaroo.

Mobius (8.0 KB)


Kangaroo Springs?

Not quite like the original image but fun to play with.



How about updating to Kangaroo 2.0, which was released 4+ years ago? Works great in R5:

My mistake, I thought I was using K2.
K1 still works great
Also, I’ve forgotten how to do springs from lines in K2


Thanks for the great suggestions guys.

Set me off in the right direction.



So have I, could anyone weigh in on updating this to K2?

Trying to create a similar effect as this mushroom, the definition @martynjhogg posted is close but the geometry in K2 would be easier to control.

EDIT: Sorry for the necro post, this seemed more relevant than starting a new thread.

A different way to approach this could be as a mapping challenge -
So generate an isotropic hexagonal pattern, then make a pair of surfaces and adjust the isocurve spacing to the nonlinear one you want (14.8 KB)


Thank you, that is very helpful. Is it possible to change the hierarchal direction on the mapping method? On the mushroom the cells are large in the center and fan out to small. That sort of focal point is what I am after, thought maybe a variation of the Springs would work.

I was trying a Project method but still wrapping my head around the topology needed on both ends.


Regarding the Kangaroo springs, what is the best way to recover/reform the hexagons into closed polylines after Kangaroo deformation? After you’ve removed the duplicate lines that originally joined them? Joint curve has understandably chaotic results.

From memory… isn’t there a Mesh output from the Kangaroo solver? If so then you can just get the FaceBoundary from the mesh.

Ah, bad memory… it was an old K1 definition. Might be possible to do something similar with K2 and a mesh…

Yes - you can keep polylines as polylines in the output by passing them to the solver via a ‘Show’ component, and getting the corresponding branch of the output.
Here a simple example (10.2 KB)
You can also use this to pass through other geometry such as meshes, point collections etc

1 Like

Starting point in K2… you can play about with the forces and strengths but it tends to crease and distort. You might be able to tweak it to get closer to your image target above? (19.9 KB)


Here I thought Show was just something people attached to goals for fun. Thank you, that makes sense to me now.

You can just replace it with graph mapper

A little more to it than that, eh?

  • ReMap values before and after Graph Mapper
  • Which graph type and what shape?
  • I had to reduce the amplitude multiplier quite a bit. (17.4 KB)

1 Like

you’re a capable grasshopperer, I knew you could do it!