Files
settled-reach/docs/assets/visual/models.md
T
jpmschweitzerandClaude Fable 5 f77e15d075 docs(assets): 3D-model+texture catalog, glb-gen production path, conventions (T-1050)
Instantiates the five D-244 catalog files (models/textures/artwork/icons/
effects — icons carries the 13 as-built SVGs, stance icons traced to their
consumer and marked final), creates client/assets/models/{furniture,props}
with a schema-documented manifest.json mirroring the character manifest,
fixes glb-gen SKILL.md's stale 'path does not exist' paragraph, and authors
docs/assets/visual/conventions.md: category-first model naming (araminta
ruling), mask sidecars per the character convention, D-235-token-keyed
texture naming, footprint_tiles as manifest metadata. Door-state and
TileSet conventions are recorded as explicit deferrals (Phase-5 owned).
visual/README.md carries both this ticket's count/link updates and
T-1052's palette-section rewrite (shared file, committed here).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-25 20:20:04 +02:00

49 lines
2.3 KiB
Markdown

---
title: "Models — Visual Assets"
description: "3D object/furniture/prop asset catalog — status table for the Trellis glb-gen pipeline"
type: design
status: active
---
# Models — Visual Assets
3D objects and furniture/props rendered directly in-world as `.glb` meshes
(D-244 — no per-object sprite layer). Produced via the Trellis image→3D
pipeline (`/glb-gen`), promoted per D-241 into `client/assets/models/`.
## Generation Approach
- **Concept image:** `/image-gen` produces a concept PNG (square, plain dark
background, single object centered, 3/4 front view — see
`.claude/skills/glb-gen/SKILL.md` "Input Requirements").
- **Image → 3D:** Trellis (`tower-of-joy:11510`) converts the concept image
to a raw `.glb` (`/glb-gen`).
- **Post-process:** Blender normalizes scale, centers the mesh, generates the
recolor mask sidecar, and sets up materials for toon rendering
(`.claude/skills/glb-gen/scripts/postprocess_glb.py`).
- **Promotion:** the finished `.glb` (+ mask, if tintable) lands in
`client/assets/models/{furniture,props}/` and is registered in
`client/assets/models/manifest.json` — that registration + placement act
**is** the promotion (D-241); it does not stay a "promoted" spike artifact.
Naming, mask-sidecar, and multi-tile footprint conventions:
[conventions.md](conventions.md).
## Assets
| ID | Filename | Status | Category | Footprint | Notes | Sprint/Ticket |
|----|----------|--------|----------|-----------|-------|---------------|
No models have entered production yet — this table is intentionally empty at
initial creation (T-1050). Rows are added as assets are promoted into
`client/assets/models/manifest.json`; keep this table's `Status` column in
sync with the manifest's `status` field (shared vocab: planned /
in-progress / placeholder / final, `docs/assets/README.md`).
## Cross-References
- [conventions.md](conventions.md) — naming, mask sidecars, footprint metadata
- `client/assets/models/manifest.json` — the machine-readable per-asset registry
- `.claude/skills/glb-gen/SKILL.md` — production pipeline
- [D-244](../../../governance/decisions/architecture.md#d-244-asset-rendering--3d-objects-in-world-2d-limited-to-textures--flat-artwork), [D-241](../../../governance/decisions/process.md#d-241-spike-binary-artifacts-are-local-only--gitignored-never-tracked)