ForMatter/Materials/polymer/Thermoplastic Polyurethane (TPU)
mat_polyurethane_tpu

Thermoplastic Polyurethane (TPU)

thermoplastic elastomer, segmented urethane, flexible · TPU, thermoplastic polyurethane, elastomeric polyurethane
metallic 0.00
hue shift +0°

A polyurethane that's also a thermoplastic — meltable, moldable, and elastic. The flex case on a phone, the sole of a sneaker, the elastic band on a wearable, the flexible 3D-printing filament that bends with the part rather than cracking. Tunable across a wide range of hardness (Shore 60A to 75D) by tweaking the ratio of soft and hard segments in the polymer.

Block copolymer of alternating soft segments (polyether or polyester polyol) and hard segments (urethane diisocyanate-derived). Density ~1.2 g/cm³. Hardness Shore 60A to 75D depending on hard-segment ratio. Tensile strength 25–60 MPa, elongation 400–600%. Excellent abrasion resistance — the highest of any common elastomer. Solvent and oil resistant in polyester-grade variants; polyether grades hydrolytically stable.

mechanical

  • tensile_strength_mpa40
  • elongation_pct_at_break500
  • shore_a_hardness_typical85
  • tear_strength_kn_m80
  • density_kg_m31200
source: BASF Elastollan datasheet; Lubrizol Estane datasheet

thermal

  • service_max_c80
  • softening_point_c130
source: BASF datasheet

Sustainability

  • embodied carbon kg co2e per kg4.5
  • 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.
  • embodied carbon recycled kg co2e per kg1.4
  • recyclabilitymoderate — closed-loop with brand-owner take-back; mainstream curbside not common
  • biodegradableFalse
  • certificationsFDA 21 CFR 177.2600 (rubber food contact)
visual
natural translucent or pigmented; rubbery semi-gloss surface
tactile
rubbery, grippy, soft enough to deform under finger pressure

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        #3a4858
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": "#3a4858",
  "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
# Thermoplastic Polyurethane (TPU) · finish: matte
import bpy
mat = bpy.data.materials.new(name="mat_polyurethane_tpu")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value         = (0.0423, 0.0648, 0.0976, 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
# Thermoplastic Polyurethane (TPU) · finish: matte
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_polyurethane_tpu", materialType="Generic")
mat.setProperty("diffuse",      (58, 72, 88))   # 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": "Thermoplastic Polyurethane (TPU) \u00b7 finish: matte",
  "baseColor": {
    "r": 0.0423,
    "g": 0.0648,
    "b": 0.0976
  },
  "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_tpu",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.0423,
          0.0648,
          0.0976,
          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
# Thermoplastic Polyurethane (TPU) · finish: matte
def Material "mat_polyurethane_tpu" {
    token outputs:surface.connect = </mat_polyurethane_tpu/PreviewSurface.outputs:surface>

    def Shader "PreviewSurface" {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (0.0423, 0.0648, 0.0976)
        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