npx skills add ...
npx skills add drawcall-ai/skills --skill materials
Give surfaces real materials and textures (PBR base-color/normal/roughness sets) in Three.js, with correct color space and tiling. Use when surfaces look flat, plastic, or gray, or when applying Market texture assets to terrain, walls, and props.
npx skills add drawcall-ai/skills --skill materials
A MeshStandardMaterial with only a color reads as flat, plastic, "untextured gray" — the fastest tell of an unfinished scene. A finished surface has texture maps. A surface left as a solid color is a fit-gap, not a material.
Market texture assets ship a PBR set (base color + normal + roughness/metalness/ao). Load and assign the maps together:
SRGBColorSpace. Forgetting this makes everything look washed-out and grayish.In current Three.js an aoMap shares the primary uv set by default — you do not need to build a second uv2 attribute (that requirement is from older versions).
Ground and walls must repeat the texture, not stretch one copy across the whole mesh:
Match each surface to a fitting texture — grass/ground for terrain, stone for cliffs, planks/metal for floors and walls. Pick textures from the asset survey; if none fits a surface, name the gap rather than shipping a flat color.
for (const t of [base, normal, rough]) {
t.wrapS = t.wrapT = RepeatWrapping
t.repeat.set(surfaceMeters / tileMeters, surfaceMeters / tileMeters) // ~1 tile per few meters
}