Pigment that changes color (or goes invisible) at a chosen temperature — most commonly between two states across a 5–10 °C transition window. Mood rings, the temperature-sensing strip on a baby's bath, the cold-activated print on a beer label, the disappearing-ink demo of a science-museum gift shop. Reversible thousands of times, but UV-sensitive and not suitable for outdoor service without protection.
Microencapsulated leuco-dye / weak-acid / nonpolar-solvent system, encapsulated in 3–5 µm gelatin or polyurethane shells. Below the activation temperature the leuco dye is in its colored form (acid-protonated); above, the solvent melts and the dye reverts to colorless. Activation temperatures can be tuned across -15 °C to 65 °C by solvent selection. UV-degrades over 6–24 months in direct sunlight; service life depends heavily on UV protection and operating-temperature range.
Principled BSDF defaults derived from the sphere iridescent finish. Reasonable seed for Blender, Substance, Keyshot, Rhino — tune per material. Or grab the whole library at once: ForMaterials library →
# finish: iridescent albedo #d8a8a8 metallic 0.30 roughness 0.20 ior 1.45 transmission 0.00 clearcoat 0.60 sheen 0.00 anisotropic 0.00 iridescence 1.00 iridescence_ior 1.30 iridescence_thickness_min 100 iridescence_thickness_max 800 thickness 0.60 attenuation_distance 0.40 emissive_intensity 0.07
{
"albedo": "#d8a8a8",
"metallic": 0.3,
"roughness": 0.2,
"ior": 1.45,
"transmission": 0.0,
"clearcoat": 0.6,
"sheen": 0.0,
"anisotropic": 0.0,
"iridescence": 1.0,
"iridescence_ior": 1.3,
"iridescence_thickness_min": 100,
"iridescence_thickness_max": 800,
"thickness": 0.6,
"attenuation_distance": 0.4,
"emissive_intensity": 0.07
}
# Blender 4.x — Principled BSDF
# Thermochromic Pigment · finish: iridescent
import bpy
mat = bpy.data.materials.new(name="mat_smart_thermochromic_pigment")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value = (0.6867, 0.3916, 0.3916, 1.0)
bsdf.inputs["Metallic"].default_value = 0.300
bsdf.inputs["Roughness"].default_value = 0.200
bsdf.inputs["IOR"].default_value = 1.450
bsdf.inputs["Transmission Weight"].default_value = 0.000
bsdf.inputs["Coat Weight"].default_value = 0.600
bsdf.inputs["Sheen Weight"].default_value = 0.000
bsdf.inputs["Anisotropic"].default_value = 0.000
# KeyShot 11+ — lux Python API, Generic material
# Thermochromic Pigment · finish: iridescent
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_smart_thermochromic_pigment", materialType="Generic")
mat.setProperty("diffuse", (216, 168, 168)) # 8-bit sRGB
mat.setProperty("metallic", 0.300)
mat.setProperty("roughness", 0.200)
mat.setProperty("indexOfRefraction", 1.450)
mat.setProperty("transparency", 0.000)
mat.setProperty("coatingWeight", 0.600)
{
"_format": "Substance Designer / Painter \u2014 pbrMetalRough constants",
"_about": "Thermochromic Pigment \u00b7 finish: iridescent",
"baseColor": {
"r": 0.6867,
"g": 0.3916,
"b": 0.3916
},
"metallic": 0.3,
"roughness": 0.2,
"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_smart_thermochromic_pigment",
"pbrMetallicRoughness": {
"baseColorFactor": [
0.6867,
0.3916,
0.3916,
1.0
],
"metallicFactor": 0.3,
"roughnessFactor": 0.2
},
"extensions": {
"KHR_materials_ior": {
"ior": 1.45
},
"KHR_materials_clearcoat": {
"clearcoatFactor": 0.6
},
"KHR_materials_iridescence": {
"iridescenceFactor": 1.0,
"iridescenceIor": 1.3,
"iridescenceThicknessMinimum": 100,
"iridescenceThicknessMaximum": 800
}
}
}
]
}
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Thermochromic Pigment · finish: iridescent
def Material "mat_smart_thermochromic_pigment" {
token outputs:surface.connect = </mat_smart_thermochromic_pigment/PreviewSurface.outputs:surface>
def Shader "PreviewSurface" {
uniform token info:id = "UsdPreviewSurface"
color3f inputs:diffuseColor = (0.6867, 0.3916, 0.3916)
float inputs:metallic = 0.300
float inputs:roughness = 0.200
float inputs:ior = 1.450
float inputs:opacity = 1.000
float inputs:clearcoat = 0.600
token outputs:surface
}
}
LCR Hallcrest / SFXC thermochromic-pigment technical literature.
House vocabulary — terms ForMatter uses with intent.
Materials and processes for people who design and make things.
A local-first library of materials, processes, applications, and finishes — equal weight, citable everywhere, so a student can move from "what is this" toward "what's actually buildable here, now, by me." 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, Lefteri, Forty, Sparke, ASM, GIA. Every voice: Voices.
Local to this browser. No telemetry.