ForMatter/Materials/stone/Portland Cement Concrete
mat_portland_concrete

Portland Cement Concrete

hydraulic-cement composite · concrete, portland concrete, PCC, structural concrete
metallic 0.00
hue shift +0°

Sand and gravel held together by portland cement. Wet, it pours; cured, it carries buildings. The most-used manufactured material on earth — more, by mass, than every other thing humans make combined. Strong in compression, weak in tension, which is why rebar exists. Heavy. Permanent enough to outlive the architect.

Aggregate (sand + gravel or crushed stone) bound by hydrated portland cement paste. Cement chemistry is calcium silicates that hydrate to calcium-silicate-hydrate (C-S-H) gel — strength climbs for years, not days. Compressive strength 20–40 MPa for residential, 30–80 MPa for structural; tensile strength roughly one-tenth of compressive — the reason structural concrete is reinforced with steel. Embodied carbon dominated by clinker production at ~0.9 kg CO2e per kg of cement.

mechanical

  • compressive_strength_mpa30
  • tensile_strength_mpa3
  • elastic_modulus_gpa30
source: Wikipedia — Concrete; ACI 318

physical

  • density_kg_m32400
source: Wikipedia

Sustainability

  • embodied carbon kg co2e per kg0.13
  • sourceEditorial estimate from ICE / Granta CES EduPack class databases — industry mean, with cradle-to-gate boundary unless otherwise noted. Embodied carbon for any specific product depends on supplier mix, recycled content, and energy grid; verify against a primary source before using these numbers in a sustainability claim.
  • recyclabilitymoderate — crushed concrete is recovered as road base aggregate; full closed-loop is rare
  • biodegradableFalse
  • certificationsEPD (Environmental Product Declaration) common, LEED MR credits via SCM cement replacements
visual
cool gray, aggregate visible at any cut surface; pigments shift the gray subtly, never dominantly
tactile
cold, dense, slightly dusty even when sealed
weight perception
very heavy
acoustic
thud — solid, brief, no ring

PBR starter values

Principled BSDF defaults derived from the sphere granular finish. Reasonable seed for Blender, Substance, Keyshot, Rhino — tune per material.

# finish:      granular
albedo        #b0aca4
metallic      0.00
roughness     0.85
ior           1.45
transmission  0.00
clearcoat     0.00
sheen         0.00
anisotropic   0.00
copy as JSON
{
  "albedo": "#b0aca4",
  "metallic": 0.0,
  "roughness": 0.85,
  "ior": 1.45,
  "transmission": 0.0,
  "clearcoat": 0.0,
  "sheen": 0.0,
  "anisotropic": 0.0
}
Blender 4.x Python
# Blender 4.x — Principled BSDF
# Portland Cement Concrete · finish: granular
import bpy
mat = bpy.data.materials.new(name="mat_portland_concrete")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value         = (0.4342, 0.4125, 0.3712, 1.0)
bsdf.inputs["Metallic"].default_value           = 0.000
bsdf.inputs["Roughness"].default_value          = 0.850
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 Python (lux)
# KeyShot 11+ — lux Python API, Generic material
# Portland Cement Concrete · finish: granular
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_portland_concrete", materialType="Generic")
mat.setProperty("diffuse",      (176, 172, 164))   # 8-bit sRGB
mat.setProperty("metallic",     0.000)
mat.setProperty("roughness",    0.850)
mat.setProperty("indexOfRefraction", 1.450)
mat.setProperty("transparency", 0.000)
mat.setProperty("coatingWeight", 0.000)
Substance pbrMetalRough
{
  "_format": "Substance Designer / Painter \u2014 pbrMetalRough constants",
  "_about": "Portland Cement Concrete \u00b7 finish: granular",
  "baseColor": {
    "r": 0.4342,
    "g": 0.4125,
    "b": 0.3712
  },
  "metallic": 0.0,
  "roughness": 0.85,
  "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."
}
glTF 2.0 Metallic-Roughness
{
  "asset": {
    "version": "2.0",
    "generator": "ForMatter"
  },
  "materials": [
    {
      "name": "mat_portland_concrete",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.4342,
          0.4125,
          0.3712,
          1.0
        ],
        "metallicFactor": 0.0,
        "roughnessFactor": 0.85
      },
      "extensions": {
        "KHR_materials_ior": {
          "ior": 1.45
        }
      }
    }
  ]
}
USD Preview Surface
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Portland Cement Concrete · finish: granular
def Material "mat_portland_concrete" {
    token outputs:surface.connect = </mat_portland_concrete/PreviewSurface.outputs:surface>

    def Shader "PreviewSurface" {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (0.4342, 0.4125, 0.3712)
        float   inputs:metallic     = 0.000
        float   inputs:roughness    = 0.850
        float   inputs:ior          = 1.450
        float   inputs:opacity      = 1.000
        float   inputs:clearcoat    = 0.000
        token   outputs:surface
    }
}
↓ download glTF material
Substitutes