ForMatter/Materials/polymer/Polyurethane Foam (flexible, upholstery)
mat_polyurethane_foam_flexible

Polyurethane Foam (flexible, upholstery)

thermoset foam — open-cell, elastic · PU foam, flexible polyurethane foam, FPF, upholstery foam, couch foam
metallic 0.00
hue shift +0°

Spongy block, cut to shape, glued or upholstered into the seat of every couch, mattress, and office chair. Compresses, recovers, and over years gets noticeably less responsive — the sag in any chair you've sat in too long. Yellow when fresh; ambers with age and UV.

Reaction product of a polyol and a diisocyanate (TDI or MDI), foamed during reaction by water-CO2 generation or physical blowing agents. Open-cell structure (95%+ interconnected pores) gives breathability and reversible compression. Density 16–80 kg/m³ depending on grade — softer on the low end, more durable on the high. Compression deflection (ILD) is the upholstery-trade hardness metric. Limited UV/oxidation life; foam loses elasticity over years.

physical

  • density_kg_m332
  • ild_25_pct_n130
source: Wikipedia — Flexible polyurethane foam

Sustainability

  • recyclabilitylow — chemically crosslinked, hard to depolymerize at scale; rebond foam (chopped + glued scrap) is the principal recovery route
  • biodegradableFalse
  • certificationsCertiPUR-US (consumer grades)
visual
uniform pale yellow when fresh, ambering to honey within a year of use
tactile
the canonical 'sponge' feel — gives, recovers, slightly tacky to a clean palm
weight perception
very light
acoustic
soft compression sound — almost silent

PBR starter values

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

# finish:      matte
albedo        #e8d088
metallic      0.00
roughness     0.75
ior           1.45
transmission  0.00
clearcoat     0.00
sheen         0.00
anisotropic   0.00
copy as JSON
{
  "albedo": "#e8d088",
  "metallic": 0.0,
  "roughness": 0.75,
  "ior": 1.45,
  "transmission": 0.0,
  "clearcoat": 0.0,
  "sheen": 0.0,
  "anisotropic": 0.0
}
Blender 4.x Python
# Blender 4.x — Principled BSDF
# Polyurethane Foam (flexible, upholstery) · finish: matte
import bpy
mat = bpy.data.materials.new(name="mat_polyurethane_foam_flexible")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value         = (0.807, 0.6308, 0.2462, 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 Python (lux)
# KeyShot 11+ — lux Python API, Generic material
# Polyurethane Foam (flexible, upholstery) · finish: matte
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_polyurethane_foam_flexible", materialType="Generic")
mat.setProperty("diffuse",      (232, 208, 136))   # 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)
Substance pbrMetalRough
{
  "_format": "Substance Designer / Painter \u2014 pbrMetalRough constants",
  "_about": "Polyurethane Foam (flexible, upholstery) \u00b7 finish: matte",
  "baseColor": {
    "r": 0.807,
    "g": 0.6308,
    "b": 0.2462
  },
  "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."
}
glTF 2.0 Metallic-Roughness
{
  "asset": {
    "version": "2.0",
    "generator": "ForMatter"
  },
  "materials": [
    {
      "name": "mat_polyurethane_foam_flexible",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.807,
          0.6308,
          0.2462,
          1.0
        ],
        "metallicFactor": 0.0,
        "roughnessFactor": 0.75
      },
      "extensions": {
        "KHR_materials_ior": {
          "ior": 1.45
        }
      }
    }
  ]
}
USD Preview Surface
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Polyurethane Foam (flexible, upholstery) · finish: matte
def Material "mat_polyurethane_foam_flexible" {
    token outputs:surface.connect = </mat_polyurethane_foam_flexible/PreviewSurface.outputs:surface>

    def Shader "PreviewSurface" {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (0.807, 0.6308, 0.2462)
        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
    }
}
↓ download glTF material