Grasshopper

algorithmic modeling for Rhino

(How) can complex voronoi patterns be done in Grasshopper?

Hi, I am new to grasshopper and Rhino and I am studying if it's worth integrating them into my pipeline. I am interested in voronoi patterns to create complex and natural looking floor patterns, as you can see in this real example. I am interested in voronoi patterns with different regions of stones and where they are larger and sitting thighter and areas where they are smaller and more widely spread.


Can this be done in Rihno and or grasshopper? Can I get happy, buying the software? What about the large scale using the voronoi pattern? C4d can handle a broken floor voronoi pattern with tens of thousands of stones. Can Rhino and Grasshopper handel this to?

At this moment I am makeing voronoi patterns with Cinema 4D, where I create particle clouds on a plane with different spots with higher density of particles. Then I use a external voronoi plugin (I have cd4 r15) to generate a voronoi pattern. This results in a complex nurbs pattern consisting only straight lines. 

Shooting 20.000 particles for a voronoi pattern generating tens of thousands of stones is quite well possible in C4d, without running into speed problems. But from there I only have straight lines of the same thickness.

I tried to curl deform the lines and create variable thickness, with somewhat good results. Unfortunately the possibilities are limited, which means I go from there importing a straight black and white render (rendering nurbs with hairmaterial) of the straight line vornonoi pattern in Substance Designer and get the results I want through genius 2d node based pixel manipulation. But I want more control earlier in the pipeline.

The problem is that the nurbs-system of c4d goes not deep enough to manipulate the nurbs in a way that get similar results with the photo above. And not of the colors of course, but nurbs similar to the contours of the stones (not necessarily the tiny small debris) mimicking the black cracks.

Would be great if I can make a voronoi pattern with a natural look (e.g. variable thickness, curly bends) already integrated in the nurbs.

 
So is grasshopper going to make me very happy?

Views: 3764

Replies to This Discussion

The reference image certainly doesn't show a pure and simple voronoi pattern. Voronoi diagrams can be a cheap stand-in for 2 and 3 dimensional cracking, but it's not the same at all. Have a look at a detail:

There's no way to position the red dots inside their respective shapes in such a way they they are mirrored with the neighbouring dots along the shape boundaries. Whatever algorithm describes geometry like this, it's not voronoi. Or at least it's not entirely voronoi, it is possible that you can start out with a voronoi diagram and then apply one or more post-process steps to (heavily) deform the shapes.

There's also a lot of additional detail to these shapes beyond their first order boundary surfaces. Rhino in general is not particularly good at making natural chaos like this, our toolset is aimed primarily at CAD.

I do not think Grasshopper is going to make you very happy, it sounds like there would be a lot of programs out there that are way better at this sort of stuff than Rhino+GH. Cinema4D is certainly one of them, ZBrush springs to mind, as does Blender.

That said, here's a way to do voronoi with some control over local density and tile scaling. But you have a long way to go from here to a believable 3D model of cracked cement.

Attachments:

And what a nice example in Grashopper, I already saw some video tutorials on the voronoi diagram, which orginated my interest in the beginnning :-)

What I am wondering myself: can you make much larger voronoi patterns, without coming in to speed troubles? Does it grasshopper/Rhino run smooth with larger voronoi area's?

The voronoi algorithm in GH is not the fastest one known (that is I think Fortune's Sweep Line algorithm which outputs edges), but it is pretty fast nevertheless. Several thousand tiles should be well within 30 fps. Of course if those tiles then go on to play a major role in other operations such as extrusions or meshing, the speed will come crashing down.

I think the only way to keep it reasonably spiffy is to convert the polylines directly into meshes, but that is very difficult using the native set of components.

Thank very much for your effort, I appreciate it very much.

Maybe I do not understand you correctly, or I did not make myself clear enough, because english is not my native language.

You are right that it is not a voronoi exactly, but partly. Also in broken floors, nature has it's habit to break floors in a kind of voronoi way together with cracks caused by human handling. And you are also right that rhino is not the program to rebuild the broken floor to all of its details. But that's not what I want. I want nurb contours, if I can achieve that, I am already happy.

I have made 2 renders of a quick example I made by hand to show you what I mean.

 


So can Rhino and/or grashopper make nurbs/geometry like the second example, starting from a voronoi pattern made in Grasshopper?

If yes, I am looking forward in learning to know grasshopper better :-)

 

Thick and thin lines combined is not necessary if this is not possible or to difficult to make. There can also be more copies of the same voronoi pattern, each with it's own overall same thickness and deformation. The purpose is to create masks like this and combine them in Substance Designer/Painter. And if I have them, I can create results that look like the picture.

It is ok if the end result is a pure voronoi pattern. I have already good results with different densities in the voronoi pattern (which I can recreate in Grasshopper by importing the pointcloud), looks much more real than voronoi planes that all have the same size.

Creating a randomized wavy curve on the inside of a voronoi cell is pretty doable, the problem is that you want the wavy curves of two adjacent cells to have roughly the same average distance from the boundary between them. This requires a relationship between cell/edge adjacency that does not exist in the voronoi output (although you could maybe use the Delaunay output, since it's the dual of the voronoi diagram).

Another thing to try would be to use recursive voronoi diagrams. Split your floor up into 300 large chunks, then split each chunk up into 2~20 smaller chunks. Repeat if necessary. The [Voronoi Groups] component does this, but it's more complicated to use.

Do you mean that is difficult to make a bendy/wavy curving of one side, because it has to be mirrored to the other side of the line, so that the outer sides look the same?
It would be better if each curviness of each side of the line looks different and randomized.

Ok, so it can be done. At this moment your suggestions do not make much sense, I have to know grasshopper better for that. I also saw something on internet about deformation scripts in Rhino, randomly deforming geometry. I do not know if this also can be done with nurbs and don't think Rhino works with falloffs and/or saving selections.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service