# Original procedural runtime texture generators All patterns are original analytic functions written for this task. No photographs, commercial assets, downloaded imagery or generated AI images were used. The editable authority is `author_textures.py`; it uses only Python standard-library math/zlib. Regenerate with `python author_textures.py`. The script locates its scene requests in the parent folder and writes portable repository-relative resource paths. Run rendering commands from the repository root. The PNG/RGBE output bytes are generated locally into ignored paths and are not committed to source. `../author_showcase.py` generates all five image files before rendering; it downloads nothing. The manifests retain reproducible output hashes, not image payloads. Rendered evidence may be kept on the results branch. All four generated PNGs are RGBA8 256x256 without ICC/orientation metadata. Base images are sRGB-encoded near-white modulation, preserving the scene's existing brown/linen/ ochre/taupe hues; mean linear multipliers are walnut0.8376 and linen0.8600. They do not multiply a brown texture into an already brown body. Normal maps are linear OpenGL RGB from derivatives of the same original periodic height functions. Walnut U/V repeat is900/90mm, along the table's X grain. Linen repeats24mm with eight threads per tile, giving3mm thread spacing. Planar mapping stretches side/end faces; this is not triplanar upholstery and is not claimed as such. The two actual render requests retain the scene author's camera, lens, material and light values, adding thirteen opaque body maps. `tumblers-textures-render.json` pairs with examples/studio/tumblers.json; `tumblers-sun-textures-render.json` pairs with examples/studio/tumblers-sun.json. Both use the existing tumblers-materials.json base materials. They intentionally keep glass maps absent. Repository-relative resource paths point to this folder; source bytes are captured once at request admission. Final requests use 2048 samples and explicitly enable straight shadow transmission on both closed tumblers; separate blocked-shadow controls are generated by `../author_showcase.py`. Thirteen pairs occupy27262976 normalized bytes (26MiB), below32MiB aggregate; encoded files total less than140KiB counting each binding copy. Runtime body metadata and frame coordinates came from the scene author, not commercial reference geometry. No final render or GPU verification is claimed by these asset files alone. ## Generator and generated-output provenance | File | Source / author | License | Use | | --- | --- | --- | --- | | `author_textures.py` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `linen-base-srgb.png` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `linen-normal-opengl.png` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `manifest.json` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `tumblers-sun-textures-render.json` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `tumblers-textures-render.json` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `walnut-base-srgb.png` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | | `walnut-normal-opengl.png` | Original SolidCraft contributors, this task | MIT OR Apache-2.0 | Runtime texture authoring/evidence | `original-gradient.hdr` is generated by `../author_showcase.py` from its original analytic sky-gradient formula, under MIT OR Apache-2.0. It contains no sampled photograph or scan. `environment-manifest.json` records the formula parameters and reproducible output hash; the HDR bytes themselves remain ignored.