I have been intrigued with crystals for a while, so I decided to make a script which would create accurate crystal geometry. It uses mesh points as face normal and location vectors, and then generates a proper convex solid from them. You can download the script for Blender here: Blender Crystal Tools
I used this tool extensively in creating the Elseinct crystal cave.
If you have comments or feedback, feel free to leave it here. If you'd like to commission a custom 3D model, I can help you with that.
I revisited the crystal script, making it more versatile and easier to use. Here are a few of the types of crystaline solids the script can make. For whatever reason, I especially appreciate the long thin crystals. They grab my imagination.
Trying to make a Biface, though it didn't turn out as well as I had hoped.
Procedural crystal subdivision test. I think this one went down 23 levels.
Procedural crystal subdivision test. 17 levels of recursion.
Procedural crystal subdivision test. I think this was 5 levels of recursive crystal generation.
Procedural crystal subdivision test. 10 levels IIRC.
View from inside one of the 2 or 3 level subdivision tests.
This is a result of some random cube sizing tests I did while generating the crystal script. I wanted to preserve the neat result. You could get identical results these days using Geometry Nodes. Might fit better in the cube pictures gallery now that I think about it.
The XKCD rgb.txt named color space converted into voronoi volumes.
Download the full RGB space blender file if you'd like to explore this space.
I reverse gamma corrected the colors so they import correctly to Blender. This means they are darker, as below. I also clipped the color zones to the bounds and did some non-uniform scaling that looks a bit better. If you want the non-clipped version, use this file.
A crossection of the XKCD rgb.txt named color space converted into voronoi volumes.
Download the full RGB space blender file if you'd like to explore this space.
This particular plane caught my eye as it shows up as a high-density zone of named colors. Looks like it includes the teal and orange axis!
Easy error reproduction. Insert a default Icosphere and then, with it selected, run the script. (turns out it was because I was trying to create less than 3 point faces (2, 1, or 0 point faces). This error state should be handled more elegantly.)
The error doesn't occur when I use my own n-gon parsing code, though I still don't get faces. (turns out it was because my code has error checking to prevent creation of faces with less than three points)
An odd error I encountered while playing with the script. (turns out it was because I was trying to create faces with less than three points. This error state should be handled more elegantly.)
I've been wanting to make this update for a while now. The script now supports crystaline fractures! So... there you go. It can automatically break the solid in half along set plane surfaces.
A quick cluster of tetragonal crystals. Note a few small corners clipped off from secondary growth faces.
With scripted generation, it's easy to make crystals which would otherwise never be found in nature. Here is a large clump of seven sided (septagonal) rotationally symmetric crystals.
The whole scene took a few seconds to generate. Very fun to play with.