algorithmic modeling for Rhino

After reading “Sculpt and detail realistic rocks” from 3DArtist n°91 (February 2016 ?) here is an attempt to replicate the beginning.

First I began with a sphere mesh with a script which generates a sphere with the maximum number of triangles but not much than a defined threshold.

I scaled that mesh just to fit Rhino grid, but it is not mandatory. What is useful, is to scale not uniformly the mesh (Scale NU). It could be done after cellular modifier applied or before or before and after. The 3 options are possible in the script. If you don’t need them just put 1 in scale sliders.

Ellipsoid mesh is the populated with points, I put 2 independents populations to randomize a bit further. For each vertices of the mesh the closest distance from the populated points is calculated.

Here is an illustration in color of this distance.


This distance is then used to calculate a bump. If domain for bump is beginning with negatives values to 0, it carves the mesh. Instead it bumps/inflates it.


Some images to illustrate the difference with populating 100 points with one or two populations.

Here some images to illustrate the application of scale before carving or after.




Next phase apply noise. At the moment I don't find it good.

Views: 20164


Replies to This Discussion

Hi Laurent:

I have also thought about this subject. I don't mean to interfere with your approach.
With my limited knowledge of GH I was looking at using a short random array of curves that
can become a rock, and if offset, rotated, and arrayed, could become a cluster of rocks.

Presently I have simply 3 short curves which attempt to make a crude rock.


Hi Kim, 

there are surely many methods to generate rocks, gravel, pebble ...

David Rutten did a beautiful script for gems/crystals :

I just wanted to replicate an example I saw in a magazine, just to illustrate how to do it in Grasshopper. I added here some noise. Here are the effects compared to without noise :

With a "big" scale noise : 

A "small" scale noise : 

The 2 noises : 

The next step could be nice material added. 


A litte update with Worley Noise or Cell Noise or Voronoi 1 2 or 3 in Cinema4d

I don't know if there is a Rhino Texture like that ?

I used 81920 triangles sphere. Graph mapper is also used to change the slopes.

Reference : A Cellular Texture Basis Function

Steven Worley

Cinema 4D textures

Laurent Delrieu
August 2016


Hi Laurent,

Always enjoy your work. In the mineralogy world, there are six major crystal systems. Two of the easiest to model are cubic, and hexagonal. Many minerals form in these two systems, gold, lead sulfide, pyrite (cubic) and quartz (hexagonal). Natural crystals will show various interesting defects that make them interesting, skeletal growth, twinning, negative crystals; when the crystals arrange themselves along a sinusoidal base, or increase in size/color/transparency/compostion/crystal system morphing as they get near or far away from a color or chemical source, then the results start to look very organic. So, a slight tweak to your approach might yield some interesting results. But beware, it can be a lifelong fascination.

Mark, at the moment I am more interested to learn procedural textures than rocks. 

If you seek crystal/gemstone David Rutten has done a beautiful script :

Thank you Laurent, forgive me if I was unclear, I was suggesting, as a basis for a procedural textures, one or two of the more common crystal system geometries. The crystal system geometry can be used as a procedural basis for meshing. Food for thought. Some examples of mineral and crystal photography, for some real life examples of crystal structure, can be found on Jeff Scovils' website. Forgive me if I am getting too far off topic, it was just an idea I thought you might find useful. Anyway, great work, please keep up the great work, I have learned alot from your examples and scripts.

No problem, I like to learn new things and understand what is behind. So thanks for ideas.

I discovered Worley cellular texture 2 days ago during a reading with  Grasshopper Closest Points it was easy to implement it. Now I will try to replicate Cranal Texture of C4D. 

Single octave Cell Noise looks a bit artificial IMO for rocks.

Try adding several "octaves" together by duplicating the noise for each octave, making it half the size (scale) and half the strength (height) each time (could also be a loop).

In Lightwave the result is called "Crumple" and it's quite nice at around 3-7 octaves. Can also work for wavy water.

For rocks, I find Perlin Turbulence often better than cell noise based textures and it's faster too.

This is pretty much the bible of procedurals if you want to dive deeper:



Cool Daniel

Very nice Daniel, I wont show that to my wife, she will want to decorate it with diamonds.

Thank you again for sharing your work in such detail, really a gift to all of us. Can't wait to play with this when I get a chance!






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2023   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service