โ† All examples

procedural textures

Basket weave brick and concrete pavers

Generate tileable PBR maps of pavers laid in basket weave: two, three or four pavers per square turning in a checkerboard, with sand joints, worn rounded edges, fired flashing, settling and optional moss. Use for patios, garden paths, courtyards and sidewalks.

Recorded render of Basket weave brick and concrete pavers

What this component contains

  • ATTRIBUTION.md
  • LICENSE
  • README.md
  • basketweave_pavers.py
  • blender_material.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
bricks_per_square, repeats, joint_width, joint_fill, edge_wear, flashing, settling, moss and 4 more
Presets
default, charcoal_concrete, weathered_moss, buff_patio
Tileable
yes
Command line
python basketweave_pavers.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

Pavers are rectangles whose length equals the square side, so the layout is the plain basket weave only; half basket and diagonal variants, borders and cut pavers are out of scope. Flashing, chips, settling and moss are noise-driven approximations. Colours are artistic, not measured. Occlusion is a blurred-height estimate, not ray traced.