Speckled granite
In your harnessProcedural textureMIT
Generate tileable PBR maps of granite and similar crystalline stone: interlocking feldspar, quartz and dark mineral grains, optional large crystals, from polished to flamed. Use for counters, paving, cladding and monuments.

What it takes and gives
- Entry point
- generate
- Maps
- albedo, normal, roughness, height, ao
- Parameters
- grains_across, feldspar, dark_minerals, phenocrysts, finish, hue_shift, saturation, brightness
- Presets
- default, rose, black_galaxy, flamed_grey, blue_larvikite
- Tileable
- yes
- Command line
- python granite_speckled.py --size 1024 --seed 7 --preset NAME --out DIR [--width W --height H] [--set NAME=VALUE] [--directx-normal] [--orm]
- Godot material
- material.tres
- Blender builder
- blender_material.build_material(folder)
Limits. Grains are Voronoi cells with one colour each, an approximation of crystal fabric; there is no twinning beyond a single line, no reflective flake and no real mineral optics. Colours are artistic, not matched to named quarries. Occlusion is a blurred-height estimate.
Details
- Kind
- Procedural texture
- Engine
- Python 3.10 or later
- Files
- 12 files, 254.3 KB
- Licence
- MIT
- Declared effects
- runs commands, writes files
- Checked with
- Godot 4.7.2, gl_compatibility
- Checks
- command line generates declared maps, maps decode, maps have declared size and channels, maps tile without a seam, normal vectors unit length facing out, maps carry detail, godot imports the maps, godot material template loads every map, godot compatibility render, capture shows the textured surface, blender builds the material
- Techniques
- Worley noise cells as mineral grains, Weighted per-cell hashing for mineral choice, Rotated rectangle stamps with clipped corners for phenocrysts, Finish-dependent relief and roughness per mineral, Height to tangent-space normal by central differences
- Tags
- texture, pbr, tileable, granite, stone, speckled, polished, procedural
- Identity
library.supply.creative_originals.2be5c9c08bad21ecb0acbcb5.3f48987993d3a9e8- Version
3f48987993d3a9e8335128ef14192487f07828a663aca146d2d944f20aa0ef6f
The version is the SHA-256 of the item your harness downloads; every file in it names its own checksum.
Something wrong with this item, its rights or its safety? Report it on the support page, or from your harness after a download.

