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

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

finish · matte — open for table, JSON, host snippets, downloads

Principled BSDF defaults derived from the sphere matte finish. Reasonable seed for Blender, Substance, Keyshot, Rhino — tune per material. Or grab the whole library at once: ForMaterials library →

# 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

Second life

repairabilitymoderate — flexible PU foam patches with adhesive; cushion-replacement standard for upholstery.
recyclabilitymoderate — flexible PU foam is the largest single recyclable foam stream (rebonded carpet underlayment, the dominant secondary market).
disposal pathindustrial rebonding for carpet underlayment; landfill.
typical longevity15 years (typical)
failure modes
  • compression-set after years of loaded service (the canonical sofa-cushion failure — foam goes flat)
  • UV yellowing of exposed foam
  • isocyanate decomposition releasing TDI / MDI under heat

Polyurethane Foam Association (PFA) technical literature; ASTM D3574 flexible-foam test standards.