Material cases
A material case produces a
tileable PBR material: a set
of maps painted with the
texture and pbr binaries. It
declares a [material] table in place of [canvas] or [voxel], and declares
no [model]. A case authors one material.
Everything on the Manifests overview applies unchanged.
asset_kind = "material"
# The maps the material carries and how they are baked.[material]size = 512 # square map resolution in pixels, a power of two (required)tile = true # seamless authoring: brushes/gradients/filters wrap across # the map edges so it tiles without a seam (default true)maps = ["base-color", "normal", "roughness", "metallic", "ao"] # the channels the material emits; "base-color" is REQUIRED, # the rest optional — a subset of: base-color | normal | # roughness | metallic | ao | emissivebackground = "transparent" # preview clear color only
# `binary` names the PRIMARY painter (`texture`); the companion `pbr` binary (bake# normal/AO, uniforms, assemble, 3D preview) ships in the SAME image and is on PATH.[tool]binary = "texture"preview = "maps/{map}.png" # a {map} template — one preview per declared map
# A SINGLE interleaved record (each op carries --map).[output]actions = "actions.json"The material table
Section titled “The material table”[material] fixes the material’s output and is required for, and only for, a
material case.
sizeis the square map resolution in pixels and must be a power of two greater than zero.tileselects seamless authoring, where every brush, gradient, and filter wraps across the map edges. It defaults totrueand is required for triplanar application.mapslists the channels the material emits. It must be non-empty, must includebase-color, must carry no duplicates, and must otherwise draw fromnormal,roughness,metallic,ao, andemissive. The height channel a case bakes relief from is an authoring aid rather than an emitted map, so it is not declared.backgroundis the preview clear color.
Tool and output paths
Section titled “Tool and output paths”[tool].binary names the primary painter, texture. The companion pbr binary
is baked into the same image and available on PATH.
[tool].preview carries the {map} token, giving one preview per declared map.
[output].actions is a single interleaved operation log and must not carry
{map}, because the two binaries share one recorded stream.
Core emits one PNG per declared map plus the material.json carrying the map
paths, each map’s color space, and the world-space tiling scale. Neither is
manifest-declared. See
the output contract.