Make a tileable texture set (colour, normal, roughness) from a recipe
r3_texture_createMake a matching, seamlessly tiling texture SET for a material: a colour map, a normal map and a packed ambient-occlusion / roughness / metalness map, rendered by R3 from a procedural recipe (seeded noise, stones, bricks …). Nothing is uploaded and it is free. The maps are stored as images in the account (the owner sees them in the Images browser as " · albedo.png" …).
Start from a preset (gravel, sand, concrete, bricks, brushedMetal) with optional controls: seed (another variation), scale (an integer: finer pattern), colours (the ramp's "#rrggbb" stops, exactly as many colours as the preset has: gravel 3, sand 2, concrete 3, bricks 3, brushedMetal 3), contrast, bumpiness (normal strength), roughness {min, max} (from the smooth parts to the rough parts), metalness (0 = not metal, 1 = metal; metal looks dark without an environment map in the scene), size (256 / 512 / 1024 / 2048, default 1024), tileWorldSize (metres one tile covers, default 1), height (also store a 16-bit height map). Or pass a full recipe (r3_docs_read("TEXTURE_RECIPES.md") has the format and every preset's recipe). An invalid recipe is refused with the path of the problem.
Pass apply {projectId, material, repeat | worldSize (a number, or {x, y} for a long strip)} to put it on a material in the same call (as r3_texture_apply). You cannot see the texture: the answer gives numbers (mean colour, brightness range, height spread, seam check) and the colour map's url; r3_editor_capture shows it in an open editor. Names are unique per account. Each call makes a NEW set; reuse a set with r3_texture_apply.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | What the owner sees, e.g. "Gravel path". Unique in the account. | |
| size | No | 256, 512, 1024 (default) or 2048 pixels square. | |
| apply | No | Also wire it to a material: {projectId, material, repeat | worldSize}. | |
| preset | No | A preset: gravel, sand, concrete, bricks, brushedMetal. | |
| recipe | No | Or a full recipe (format "r3-texture-recipe", version 1). | |
| controls | No | With a preset: {seed, scale, colours, contrast, bumpiness, roughness: {min, max}, metalness, size, tileWorldSize, height}. colours: exactly the preset's number of "#rrggbb" stops (gravel 3, sand 2, concrete 3, bricks 3, brushedMetal 3). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| maps | Yes | ||
| name | Yes | ||
| size | Yes | ||
| setId | Yes | ||
| stats | Yes | ||
| answer | Yes | This answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance. | |
| applied | Yes | ||
| warnings | Yes | ||
| tileWorldSize | Yes |