Files
settled-reach/spikes/quaternius-aesthetic/VERDICT.md
T
jpmschweitzerandClaude Opus 4.6 c380ef8a84 feat(assets): add Quaternius aesthetic validation spike
Complete character pipeline spike validating the Quaternius rig as
foundation for The Settled Reach's 3D character system.

Validated:
- 65-bone skeleton + Universal Animation Library as rig foundation
- Body segmentation into 15 bone-group regions with 1-ring vertex overlap
- Trellis-generated heads via BoneAttachment3D
- Skin tone texture generation pipeline (9 variants from source)
- Toon shader + inverted hull outline at gameplay zoom
- CharacterVisual class as compositor prototype

Failed (documented):
- Trellis clothing auto-rigging (sculptures, not garments)
- Bone scaling for body type variants (catastrophic joint deformation)
- Runtime per-segment clothing scaling (same failure as Blender-side)

Includes: Blender pipeline scripts (segmentation, auto-rigging, Surface
Deform fitting), Godot showcase with interactive controls, automated
screenshot cycle, smoke tests, team reviews, and VERDICT.md.

D-158 through D-164 locked. Q-060 through Q-062 opened.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 13:29:22 +01:00

14 KiB

title, author, contributor, date, status
title author contributor date status
Spike Verdict — Quaternius Aesthetic Validation ARAMINTA TYRE 2026-03-19 final

Spike Verdict: Quaternius Aesthetic Validation

Authors: ARAMINTA (design verdict), TYRE (technical observations) Reviewed against: D-146, D-153, D-154, D-158, D-159

This document supersedes the Pipeline Tension Report. All findings are final. Read this before writing any production compositor code.


The Three Questions

1. Does the Quaternius rig work as a character foundation?

SPLIT: Skeleton VALIDATED. Body meshes REJECTED.

The 65-bone skeleton and Universal Animation Library are the correct foundation. Keep them. The skeleton is proven compatible with the animation library (January 2026 bone naming update), deforms correctly at gameplay zoom, and provides a shared rig that all body types can inherit. CC0 license means the fork is clean.

The body meshes are rejected. Superhero proportions are not an aesthetic problem — they are a design contradiction. Flat toon shading emphasizes silhouette. A crowd of Superhero V-taper bodies communicates "game about special people." That directly contradicts D-153 (player character not visually distinct from NPCs) and the life-sim intent. Regular proportions are closer but the gap between Regular and the heavy body types we need is too large to bridge with any scaling approach. Bone scaling was tested. It failed.

What to keep: The 65-bone skeleton. The Universal Animation Library.

What to replace: Every body mesh. Fork from Quaternius and hand-author body types on the shared 65-bone rig. D-159 locks this at 4 adult types x 2 genders + 1 child = 9 base meshes. All 9 use the same skeleton. All animations work on all body types.

Body meshes must be segmented, not monolithic. See the body segmentation finding below.

2. Does Trellis clothing attach to the Quaternius rig?

Clothing: FAILED. Heads: VALIDATED. Accessories: VIABLE (untested).

Clothing — FAILED. Auto-rigging Trellis clothing outputs via Data Transfer modifier (Blender built-in) produced 4-22% vertex match rates. Both the tunic and pauldron outputs produced catastrophic fragment geometry — no usable deformation. Robust Laplacian inpainting was tested as the more sophisticated fallback and failed at the same rate.

The failure is not algorithmic. The problem is geometric: a garment wraps a body and sits close to the body surface. A Trellis mesh is a closed sculpture of an object. Those are topologically incompatible inputs for weight transfer. No algorithm resolves that, because the input data contains no usable signal about bone proximity or influence falloff.

The Trellis generative clothing pipeline is closed. It failed clearly and for a structural reason that does not change with better tooling.

Heads — VALIDATED. Trellis generates clean low-poly head meshes at appropriate polygon density for toon rendering, at correct scale relative to a character body. Heads attach via BoneAttachment3D to the Head bone — single-bone attachment, no skinning required. The Trellis head sits on the Quaternius neck correctly at gameplay zoom. Skin tone mismatch is visible at editor zoom but is solvable via toon shader tinting (data problem, not architecture problem).

This is the structural reason heads work while clothing fails: a head follows one bone. Clothing must follow thirty bones with correct influence falloff. Trellis cannot encode bone influence, and no auto-rig algorithm can infer it from a sculpture.

Accessories (hats, held items) — VIABLE, untested. Single-bone attachment via BoneAttachment3D, same logic as heads. Architecturally sound. Test when needed.

3. Are the two pipelines visually consistent?

YES at gameplay zoom. Skin tone mismatch at editor zoom is fixable.

A Trellis head on a Quaternius body through the toon shader reads as a coherent character at gameplay zoom. The toon pipeline suppresses texture heterogeneity — what renders is shape and color, not surface origin. The two sources do not fight aesthetically at the zoom level that matters.

The skin tone mismatch between Trellis texture and Quaternius body texture is visible at editor zoom (mugshot context, D-146/D-158). This is not a structural problem. The toon_masked shader supports tint_color per material. Matching skin tone tints on head and body materials resolves it. Data problem, not architecture problem.

The baked ambient occlusion in Quaternius body textures fights the shader's clean shadow step at mugshot zoom. Flat toon mode is the correct default for editor context. shadow_strength at 0.2 suppresses most of this at gameplay zoom. Verify textured mode at heavy zoom before committing it to the character editor.


Evidence Table

Phase Item Result
Phase 1 Quaternius 65-bone skeleton + animation library import VALIDATED — clean, library naming compatible post-Jan 2026 update
Phase 1 Toon shader (flat mode) on Quaternius mesh VALIDATED — works unmodified
Phase 1 Toon shader (textured mode) on Quaternius mesh VALIDATED at gameplay zoom — verify at mugshot zoom
Phase 1 Outline via inverted hull, duplicate + material override VALIDATED at 0.006 width for gameplay zoom
Phase 1 Outline at mugshot/editor zoom OPEN — 0.010-0.012 recommended, unverified
Phase 1 Outline color (0.08, 0.08, 0.12) VALIDATED — correct register
Phase 1 Character legibility at gameplay zoom VALIDATED — silhouette dominant, readable as human
Phase 1 Character legibility at crowd scale VALIDATED — shape reads at distance
Phase 2 Outfit mesh attachment to skeleton VALIDATED — attaches and deforms with animation
Phase 2 Outfit body-type lock CONFIRMED — Superhero clothing clips on Regular and vice versa
Phase 2 Head mesh availability in outfit files CONFIRMED ABSENT — head baked into body mesh, not in outfit files
Phase 2 Quaternius outfit pack scope CONFIRMED — one pack only (Fantasy, 62 parts). No Sci-Fi, Modern, Casual.
Phase 3 Trellis clothing auto-rigging FAILED — 4-22% vertex match, catastrophic deformation on both test items
Phase 3 Robust Laplacian inpainting as fallback FAILED — same match rate, same deformation
Phase 3 Trellis clothing mesh (any approach) FAILED — topology incompatible with weight transfer by design
Phase 3 Trellis head attachment via BoneAttachment3D VALIDATED — clean single-bone follow, correct scale and position
Phase 3 Bone scaling for body type variants (Blender) FAILED — catastrophic mesh deformation at joints across all 9 variant attempts
Phase 3 Runtime per-segment bone scaling (Godot) FAILED — same mesh collapse as Blender-side; skinned meshes cannot be runtime-scaled via bone pose
Phase 3 Body segmentation into 15 bone-group regions VALIDATED — seamless rendering with 1-ring vertex overlap
Phase 3 Per-segment visibility control VALIDATED — can hide torso segment when clothed; segment boundaries invisible
Phase 3 Surface Deform batch pipeline for clothing fitting PARTIALLY VALIDATED — script runs and produces fits; visual quality at extreme body types (heavy) unverified
Visual Trellis head + Quaternius body through toon shader VALIDATED at gameplay zoom — reads as coherent character
Visual Skin tone mismatch CONFIRMED VISIBLE at editor zoom — solvable via shader tinting
Visual Textured mode at mugshot zoom OPEN — baked AO contamination risk unverified
Visual Superhero proportions vs life-sim intent REJECTED — communicates hero archetype, contradicts D-153

Body Segmentation: Key Finding

The body mesh must be segmented into regions, not built as a monolithic mesh.

Phase 3 validated a segmentation into 15 bone-group regions with 1-ring vertex overlap at each boundary. Overlap is what makes this work: each segment shares a ring of vertices with its neighbor, so there is no visible seam or gap during animation. Without overlap, animation deformation opens cracks at segment boundaries.

Why segmentation matters:

Per-segment visibility control is the architectural win. When a character is clothed, the torso body segment is hidden and the clothing mesh takes its place. Without segmentation, hiding the body to show clothing removes the head and limbs simultaneously. With segmentation, each region is independently addressable.

Head separation enables: Trellis-generated unique faces per character, idle look-around animation (head bone drives head mesh independently of body), helmet and hood equipment as head-slot swaps, hair as a separate mesh on the Head bone (enables hairdresser mechanic).

The 15 bone-group regions are the runtime slot architecture. The compositor selects and attaches per slot. Segmentation is not optional on the new body meshes — it is the prerequisite for everything else.


What the Compositor Actually Is

The compositor brief based on pre-spike assumptions is stale. Rewrite it before TYRE writes production compositor code.

What the compositor is not:

  • It is not a clothing generator.
  • It does not scale clothing at runtime. Runtime bone scaling was tested. It failed.
  • It does not procedurally generate body type variants. Bone scaling was tested. It failed.

What the compositor is: A runtime assembler. It selects pre-authored meshes and attaches them. All generation and fitting happens offline. The compositor does not scale, deform, or generate anything.

Slot architecture:

Slot Source Attachment
Body 9 hand-authored meshes (D-159) on shared 65-bone skeleton Skinned to skeleton
Head Trellis-generated, unique per character BoneAttachment3D to Head bone
Hair Separate mesh per hairstyle BoneAttachment3D to Head bone, scale-adjusted per cranium
Clothing Authored on reference body, pre-baked per body type via Blender Surface Deform Skinned to skeleton, replaces body segment
Accessories Single-mesh rigid items BoneAttachment3D to appropriate bone

Clothing pipeline (offline, not runtime): Author one clothing mesh on the reference body type. Run the Blender Surface Deform batch pipeline to generate a fitted variant for each of the 9 body types. Export all variants. At runtime, the compositor loads the variant matching the character's body type. Color variation via toon shader tinting and multi-region recolor masks.

The CharacterVisualDescriptor that TYRE specced (body type, head ID, hair ID, per-slot clothing ID, tint values) is the correct interface. Write that before writing any production compositor code.


Architectural Decisions Confirmed

D-158: Frontal camera angle (-5 degrees) for editor/mugshot context. Dramatic angle (-30 degrees) for gameplay. Confirmed. The dramatic angle is the production gameplay angle.

D-159: 4 adult body types x 2 genders + 1 child = 9 base meshes. Confirmed. These must be hand-authored. No procedural shortcut exists — bone scaling failed, mesh stretching is not viable at the body type deltas we need. Each mesh is its own authored asset on the shared skeleton.

Body meshes must be segmented. This follows from Phase 3. Monolithic body meshes block the compositor architecture. All 9 body meshes must be authored with the 15-region segmentation from the start.

Head is always separate. Heads are never baked into body or clothing meshes. The Quaternius Fantasy pack outfit files bake the head into the body — this is a known problem with those files, not a pattern to follow.

Clothing is pre-baked per body type. The Surface Deform batch pipeline is the mechanism. Runtime fitting was tested and does not exist as a viable path.

Source tier acquisition: $5/month Quaternius Patreon when clothing work begins. One month is sufficient to download source Blender files. The CC0 license means you own the files after cancelling. FBX/GLB standard-tier imports lose the named vertex groups that batch scripts require. Source tier is the prerequisite for the batch pipeline.


Open Questions

Q: Can Surface Deform produce visually acceptable clothing at extreme body types? The batch pipeline script runs and produces output. Visual quality at heavy/stocky body types has not been verified at gameplay or mugshot zoom. This must be answered before committing to Surface Deform as the production pipeline.

Q: What does the Quaternius Source tier actually include for body type coverage? The standard tier provides Superhero, Regular, and Tiny. Whether Source tier includes additional undocumented body types (including Regular and Tiny bodies in full Source format) needs verification when subscribing.

Q: How many base clothing meshes are needed for v0.2 proof-of-life? The fantasy pack's 62 parts are genre-incompatible with an industrial sci-fi life-sim. Minimum viable clothing catalogue for v0.2 is undefined. Needs a scope decision before clothing work begins.

Q: Can the batch pipeline headlessly process shape key variations on purchased clothing packs? The scripting research documents the approach and reliability estimates. Headless Surface Deform bind requires careful context setup and has not been end-to-end tested. Surface Deform in headless mode is marked MEDIUM reliability in the research — this needs a practical test before the pipeline is treated as production-ready.


Failed Approaches — Do Not Revisit

These were tested. They failed for structural reasons. Do not investigate them further.

Trellis clothing auto-rigging. Trellis outputs are closed sculptures. They are not garments. Weight transfer requires geometric proximity between the clothing mesh and the skeleton. Trellis geometry has no such proximity. No algorithm resolves this.

Bone scaling for body type variants (Blender-side). Scaling bones to change body proportions causes catastrophic mesh deformation at joints. The skinned mesh cannot accommodate non-uniform bone scaling without breaking weight painting assumptions. All 9 variant attempts failed.

Runtime per-segment bone scaling (Godot-side). Same failure mode as Blender-side. Skinned meshes in Godot cannot be runtime-scaled via bone pose modifications. The mesh collapses at joints identically to the Blender result. This was tested independently and failed independently.

Trellis-generated clothing meshes as a general path. Both the mesh generation approach and the auto-rigging approach are closed. The combination was the original hypothesis. Both legs of it failed.