โ† All examples

procedural textures

Carpet pile seen from above

Generate tileable PBR maps of carpet: cut-pile tuft tips with twisted plies, loop pile in rows, flecked berber loops or long shag strands, with pile shading. Use for floors, rugs, stair runners, car interiors and office carpet in interiors and archviz.

Recorded render of Carpet pile seen from above

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • blender_material.py
  • carpet_pile.py
  • component.json
  • material.tres
  • pngio.py
  • preview.png
  • test_package.py
  • texkit.py
  • verification/native.json

How it works

Entry point
generate
Maps
albedo, normal, roughness, height, ao
Parameters
pile, tufts, tuft_size, twist, flecks, shading, shag_length, hue_shift and 2 more
Presets
default, grey_loop, berber_oat, shag_cream, red_plush
Tileable
yes
Command line
python carpet_pile.py --size 1024 --seed 7 --preset NAME --out DIR [--width W --height H] [--set NAME=VALUE] [--directx-normal] [--orm]
Godot material
material.tres
Blender builder
blender_material.build_material(folder)

Recorded checks

godot 4.7.2.stable.official.ed1daf0bf

  • command_line_generates_declared_maps
  • maps_decode
  • maps_have_declared_size_and_channels
  • maps_tile_without_a_seam
  • normal_vectors_unit_length_facing_out
  • maps_carry_detail
  • godot_imports_the_maps
  • godot_material_template_loads_every_map
  • godot_compatibility_render
  • capture_shows_the_textured_surface
  • blender_builds_the_material

Limits to consider

Seen from straight above: tufts are domes and loops are capsules on a jittered square grid, not modelled yarn; pile depth shows only through height, normals and occlusion. Shag strands are bent two-segment strokes painted with a z-buffer, so very long strands look stiff. Pile shading is noise, not a record of footprints or a vacuum pattern. Patterned rugs, borders and fringes are out of scope. Occlusion is a blurred-height estimate, not ray traced. Colours are artistic.