ForMatter/Materials/textile/Woven Cotton (Plain Weave)
mat_cotton_woven

Woven Cotton (Plain Weave)

natural cellulose fiber, woven structure · 100% cotton, muslin, plain-weave cotton, calico, duck
metallic 0.00
hue shift +0°

Cotton fiber spun into yarn, then woven into cloth on a loom. The default fabric of T-shirts, denim, bedsheets, canvas, prototype upholstery. Soft, absorbent, breathable, wrinkles. Grown by the millions of tons each year, with a sustainability story that depends heavily on origin and irrigation.

Cellulose fiber from Gossypium spp. seed bolls, ~95% cellulose, 5% other (waxes, pectin, ash). Spun staple-fiber yarn (vs. continuous-filament synthetics). Plain weave is the simplest interlacing — 1-over, 1-under. Mass per area expressed in oz/yd² (US) or g/m² (rest of world). Weights span 1 oz/yd² (voile) to 24 oz/yd² (heavy duck).

mechanical

  • tensile_strength_mpa350
  • elongation_at_break_pct7
  • fiber_diameter_um14
source: Textile Reference Book (Hsu et al.); Textile Institute Handbook

Sustainability

  • embodied carbon kg co2e per kg5.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.
  • recyclabilitymoderate — mechanically shreddable into recycled cotton blend; pure cotton biodegrades; but most cotton garments are blended with polyester, complicating recovery
  • biodegradableTrue
  • certificationsGOTS (organic), OEKO-TEX Standard 100, Better Cotton Initiative, Fair Trade
  • localityChina, India, US, Brazil — water-intensive crop, irrigation choices dominate impact
visual
matte, takes dye unevenly without mercerization, faint slubs in handloom grades
tactile
warm, breathable, absorbent — gets softer with washing
weight perception
moderate (varies dramatically with weight)
acoustic
rustling, no rigid sound

PBR starter values

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

# finish:      fibrous
albedo        #e8e0d0
metallic      0.00
roughness     0.70
ior           1.45
transmission  0.00
clearcoat     0.00
sheen         0.70
anisotropic   0.50
copy as JSON
{
  "albedo": "#e8e0d0",
  "metallic": 0.0,
  "roughness": 0.7,
  "ior": 1.45,
  "transmission": 0.0,
  "clearcoat": 0.0,
  "sheen": 0.7,
  "anisotropic": 0.5
}
Blender 4.x Python
# Blender 4.x — Principled BSDF
# Woven Cotton (Plain Weave) · finish: fibrous
import bpy
mat = bpy.data.materials.new(name="mat_cotton_woven")
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
bsdf.inputs["Base Color"].default_value         = (0.807, 0.7454, 0.6308, 1.0)
bsdf.inputs["Metallic"].default_value           = 0.000
bsdf.inputs["Roughness"].default_value          = 0.700
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.700
bsdf.inputs["Anisotropic"].default_value        = 0.500
KeyShot Python (lux)
# KeyShot 11+ — lux Python API, Generic material
# Woven Cotton (Plain Weave) · finish: fibrous
# Run from Window → Scripting Console
import lux
mat = lux.createMaterial(name="mat_cotton_woven", materialType="Generic")
mat.setProperty("diffuse",      (232, 224, 208))   # 8-bit sRGB
mat.setProperty("metallic",     0.000)
mat.setProperty("roughness",    0.700)
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": "Woven Cotton (Plain Weave) \u00b7 finish: fibrous",
  "baseColor": {
    "r": 0.807,
    "g": 0.7454,
    "b": 0.6308
  },
  "metallic": 0.0,
  "roughness": 0.7,
  "ior": 1.45,
  "opacity": 1.0,
  "anisotropyLevel": 0.5,
  "_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_cotton_woven",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          0.807,
          0.7454,
          0.6308,
          1.0
        ],
        "metallicFactor": 0.0,
        "roughnessFactor": 0.7
      },
      "extensions": {
        "KHR_materials_ior": {
          "ior": 1.45
        },
        "KHR_materials_sheen": {
          "sheenColorFactor": [
            1.0,
            1.0,
            1.0
          ],
          "sheenRoughnessFactor": 0.7
        }
      }
    }
  ]
}
USD Preview Surface
# USD Preview Surface — UsdShade.MaterialLook prim attributes
# Woven Cotton (Plain Weave) · finish: fibrous
def Material "mat_cotton_woven" {
    token outputs:surface.connect = </mat_cotton_woven/PreviewSurface.outputs:surface>

    def Shader "PreviewSurface" {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (0.807, 0.7454, 0.6308)
        float   inputs:metallic     = 0.000
        float   inputs:roughness    = 0.700
        float   inputs:ior          = 1.450
        float   inputs:opacity      = 1.000
        float   inputs:clearcoat    = 0.000
        token   outputs:surface
    }
}
↓ download glTF material

Citations