A blue rock more than a single mineral — lazurite (the blue), calcite (the white), and pyrite (the gold-flecked iron sulfide). Mined for over 6000 years from a single valley in Badakhshan, Afghanistan, ground into the genuine-ultramarine pigment Vermeer used for the turban in *Girl with a Pearl Earring*, and still cut for jewelry as cabochons and beads. Through the medieval and early-modern period genuine ultramarine was among the most expensive pigments in the European painter's palette.
Metamorphic rock — primary blue mineral lazurite (Na,Ca)₈(AlSiO₄)₆(SO₄,S,Cl)₂, sodalite-group framework silicate, with admixed calcite and pyrite. Mohs 5.5. Specific gravity 2.7–2.9. Color from S₃⁻ chromophore in lazurite cages. Always cut as opaque cabochon or carved object — never faceted. The Sar-e-Sang valley in Badakhshan has been the dominant source since pre-dynastic Egypt.
The pigment travels further than the painter. Ultramarine reached the canvas only by way of camel routes, ledgers, surcharges, the slow patience of a substance valuable enough to be its own reason for travel — and what reaches the painted surface still carries that travel inside it. The blue does not refer to the sky. It refers to the journey.
Principled BSDF defaults derived from the sphere matte finish. Reasonable seed for Blender, Substance, Keyshot, Rhino — tune per material.
# finish: matte albedo #1a3a8a metallic 0.00 roughness 0.75 ior 1.45 transmission 0.00 clearcoat 0.00 sheen 0.00 anisotropic 0.00
{
"albedo": "#1a3a8a",
"metallic": 0.0,
"roughness": 0.75,
"ior": 1.45,
"transmission": 0.0,
"clearcoat": 0.0,
"sheen": 0.0,
"anisotropic": 0.0
}
# Blender 4.x — Principled BSDF
# Lapis Lazuli · finish: matte
import bpy
mat = bpy.data.materials.new(name="mat_gem_lapis_lazuli")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value = (0.0103, 0.0423, 0.2542, 1.0)
bsdf.inputs["Metallic"].default_value = 0.000
bsdf.inputs["Roughness"].default_value = 0.750
bsdf.inputs["IOR"].default_value = 1.450
bsdf.inputs["Transmission Weight"].default_value = 0.000
bsdf.inputs["Coat Weight"].default_value = 0.000
bsdf.inputs["Sheen Weight"].default_value = 0.000
bsdf.inputs["Anisotropic"].default_value = 0.000
# KeyShot 11+ — lux Python API, Generic material
# Lapis Lazuli · finish: matte
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_gem_lapis_lazuli", materialType="Generic")
mat.setProperty("diffuse", (26, 58, 138)) # 8-bit sRGB
mat.setProperty("metallic", 0.000)
mat.setProperty("roughness", 0.750)
mat.setProperty("indexOfRefraction", 1.450)
mat.setProperty("transparency", 0.000)
mat.setProperty("coatingWeight", 0.000)
{
"_format": "Substance Designer / Painter \u2014 pbrMetalRough constants",
"_about": "Lapis Lazuli \u00b7 finish: matte",
"baseColor": {
"r": 0.0103,
"g": 0.0423,
"b": 0.2542
},
"metallic": 0.0,
"roughness": 0.75,
"ior": 1.45,
"opacity": 1.0,
"anisotropyLevel": 0.0,
"_notes": "Channels listed are the standard Substance pbrMetalRough output. Drop into a Uniform Color node per channel, or as the constant input on a layered stack."
}
{
"asset": {
"version": "2.0",
"generator": "ForMatter"
},
"materials": [
{
"name": "mat_gem_lapis_lazuli",
"pbrMetallicRoughness": {
"baseColorFactor": [
0.0103,
0.0423,
0.2542,
1.0
],
"metallicFactor": 0.0,
"roughnessFactor": 0.75
},
"extensions": {
"KHR_materials_ior": {
"ior": 1.45
}
}
}
]
}
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Lapis Lazuli · finish: matte
def Material "mat_gem_lapis_lazuli" {
token outputs:surface.connect = </mat_gem_lapis_lazuli/PreviewSurface.outputs:surface>
def Shader "PreviewSurface" {
uniform token info:id = "UsdPreviewSurface"
color3f inputs:diffuseColor = (0.0103, 0.0423, 0.2542)
float inputs:metallic = 0.000
float inputs:roughness = 0.750
float inputs:ior = 1.450
float inputs:opacity = 1.000
float inputs:clearcoat = 0.000
token outputs:surface
}
}
A working library of materials and processes. Saves to this browser only — no account, no cloud.
Nothing saved yet. Open a material, process, or application and tap + project.
House vocabulary — terms ForMatter uses with intent.
Materials and processes for people who design and make things.
A local-first library of materials, processes, and applications, equal weight, citable everywhere. Part of the renato.design ecosystem — sibling of Plenum, Specimen, Ingenue, gesture, graf, and the Renato Rhino plug-ins. Form and matter, inseparable.
Half of teaching materials is teaching how the material is made into the thing. The standard subscription library was always light on that half. The wedge here isn't better samples or a prettier interface — it's treating Process as a peer entity, not a footnote.
Conway's Material World on raw materials, Lefteri's Making It on processes, Untracht and McCreight on metalsmithing, USDA Forest Products Lab on woods, GIA on gemstones, Schott / CoorsTek / Toray / Owens Corning datasheets, MakeItFrom for verifiable property numbers, ASM Handbook, ISO standards. Voice blocks: Barthes, Yanagi, Benjamin channeled within their philosophy; Lefteri verbatim. All cited.
Local to this browser. No cloud, no account, no telemetry.