Fully procedural mineral 01 / Iron pyrite

Making a series of mineral studies to step up my procedural skills.
First one is Iron Pyrite => Done in sidefx houdini, Arnold render.

Technically the main challenge was breaking up the cube shape to get nice bevel variations, broad breakups while maintaining the base of UVs that would drive the strike pattern in shader.
Attaching some houdini graph to show how I solved that if this interests anyone.

Fully procedural mineral 01 : Iron Pyrite 
Houdini modelling / Arnold renders

Fully procedural mineral 01 : Iron Pyrite
Houdini modelling / Arnold renders

Fully procedural mineral / pyrite vimeo breakdown

Lightrig 01 : Outdoor

Lightrig 01 : Outdoor

Lightrig 02 : Indoor

Lightrig 02 : Indoor

Lightrig 03 : Sutdio

Lightrig 03 : Sutdio

Lightrig 04 : Red studio

Lightrig 04 : Red studio

Houdini node graph of the project. I like to keep things as organized as possible so the graph looks like a clear representation of my train of thoughts. Also very helpful for debug.

Houdini node graph of the project. I like to keep things as organized as possible so the graph looks like a clear representation of my train of thoughts. Also very helpful for debug.

After generating the main rock . I am creating attributes to drive density and pscale of crystals : A dot product (generate a mask on polygons facing up), Mask World Y position (higher = bigger ! ), Mask from centroid (crystal get smaller to the border)

After generating the main rock . I am creating attributes to drive density and pscale of crystals : A dot product (generate a mask on polygons facing up), Mask World Y position (higher = bigger ! ), Mask from centroid (crystal get smaller to the border)

Low Resolution stage of crystals (before beveling)

Low Resolution stage of crystals (before beveling)

Close up to the crystal generation mixing. In here I'm basically mixing scattered cubes with different bevel strength (all have same amount of polygons) with turbulence noise as a mask to get desired edge breakups.

Close up to the crystal generation mixing. In here I'm basically mixing scattered cubes with different bevel strength (all have same amount of polygons) with turbulence noise as a mask to get desired edge breakups.

Result of bevel mixing

Result of bevel mixing

Scattering noisy geometries on crystal curvature.

Scattering noisy geometries on crystal curvature.

Mineral after noisy geos boolean subtraction

Mineral after noisy geos boolean subtraction

Final mineral model with base rock.

Final mineral model with base rock.