Crystal Generator

I created this crystal generator tool in Houdini. I took inspiration from an Entagma tutorial and Simple and Procedural to create this tool. I’m really happy with how the look of the crystals turned out! I might revisit this project and make shaders for the crystals at some point in the future. 

This is one of my favorite Houdini projects I’ve created so far! I’m planning to make more generator tools that could potentially be used to make models to add to other projects of mine. 

A high level walkthrough of how the tool works is detailed below.

Crystal Wireframe

Crystal Smooth Shaded

The crystals are all composed of three main parts, which I call base crystals, long crystals, and baby crystals:

Base crystals: the base crystals are the bottom of the crystal shape. Each base crystal is a cube with more cubes composing its surface.

Long crystals: the long crystals are created by intersecting a rectangular prism with a platonic solid. Each long crystal also has small chips taken out of its edges (easiest to see in the wireframe).

Baby crystals: the baby crystals are small cube shaped crystal growths added on top of both other types of crystal. 

More detailed information on the creation of each element is below.

Random scale and rotation of base crystals. 

Changing surface of base crystals

The base crystals are scattered in a cluster together. They all have random rotation and scale (left). You can also change the randomized cubes that make up their surface (right).

These base crystals also serve as the geometry to scatter points on to create the long crystals. 

Randomized positions of crystals

Controlling size distributions of crystals

Every long crystals has random scale and direction. I make the direction of each crystal point away from the origin and then add a bit of jitter to the direction to make them roughly point out from the center without looking too orderly. 

There are actually two sets of long crystals. One is scattered on the base geometry, and the other is scattered on a scaled down version of the base geometry. This helps me achieve slight clustering of larger crystals towards the center of the object. 

You can randomize the crystals you get for each set (left), and you can also change the distribution of the scale of each group (right). 

Sources for small crystal spread

Small crystal growth simulated with pyro

The tiny crystals are the most fun part of the setup! First, I scatter sources for the small crystals over all the geometry (left). It’s also possible to limit them to only the long crystals or only the base crystals, but I personally like how it looks when they grow everywhere. 

After that, I use a pyro network to have the small crystals spread from the source. You can then play back the animation of the growth and pick the time with the look you like best (right).