← back to Quadrille Showroom
AGE-VIEWS-SPEC: apply /contrarian plan-gate fixes (opaque HUD backing for senior APCA-over-WebGL, gate the slider at 85, upperRig sub-group for stoop, differentiate bands 21/28, per-band env FPS profiling)
3048f9733d51a59bd99d6752d49e96fe20900f8a · 2026-06-29 07:10:30 -0700 · Steve
Files touched
Diff
commit 3048f9733d51a59bd99d6752d49e96fe20900f8a
Author: Steve <steve@designerwallcoverings.com>
Date: Mon Jun 29 07:10:30 2026 -0700
AGE-VIEWS-SPEC: apply /contrarian plan-gate fixes (opaque HUD backing for senior APCA-over-WebGL, gate the slider at 85, upperRig sub-group for stoop, differentiate bands 21/28, per-band env FPS profiling)
---
AGE-VIEWS-SPEC.md | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/AGE-VIEWS-SPEC.md b/AGE-VIEWS-SPEC.md
index 8a2da43..7fa0cbd 100644
--- a/AGE-VIEWS-SPEC.md
+++ b/AGE-VIEWS-SPEC.md
@@ -279,3 +279,14 @@ abramstasks, one proto each, using §2/§3/§4 as the per-file spec.)
- `public/js/versions.js` — add ONE "Age View" entry/mode flag (default off); `VERSION_ORDER` append.
- HUD/CSS — consume `~/.claude/skills/age-adaptive-theme/bands.json` + `lib/apca.js` (reference, don't fork).
- No new geometry, no GLTF, no model-gen, no stock images, no deploy.
+
+---
+
+## CONTRARIAN GATE — REVISIONS APPLIED (2026-06-29, verdict APPROVE-PLAN)
+The /contrarian plan-gate approved this plan with the following BINDING fixes. They override any conflicting text above.
+
+1. **APCA-over-WebGL (HARD).** Every HUD panel/element at age **65+** MUST have a SOLID 100%-opaque background colour BEFORE the APCA check runs — NO semi-transparent chrome over the live WebGL scene at the senior bands. APCA is measured on the actually-rendered opaque hex pair, not assumed against a static-page background. (Without this the senior gate passes on a tool check but fails visually over the moving 3D scene — the single biggest hole.)
+2. **The age-slider control itself is gated at the elder band.** Its thumb/track/label must clear APCA Lc≥75 + ≥56px hit target + ≥28px label AT AGE 85 — it's persistent on-screen, so it's verified like any senior element in the Phase-5 85-band a11y check.
+3. **Avatar stoop → named `upperRig` sub-group.** The current rig has NO neck group (neck is a direct child of `rig`). Phase 2 build CREATES a named `upperRig` sub-group (torso + neck + shoulders + arms parented to it) so the kyphotic forward-lean at 75/85 is ONE coherent rotation. Invariant preserved: `buildAvatar()` zero-arg == today's age-28 rig byte-for-byte (`upperRig` at 0° rotation = unchanged).
+4. **Bands 21 & 28 differentiated** (were ~80% identical — a 10mm shoulder diff is not a band). 21 Emerging Adult = first-apartment / budget-conscious → energetic, higher-saturation, denser discovery, casual copy, relaxed posture. 28 Young Pro = first real design budget → refined-modern, calmer, spec-forward, professional copy, more upright posture + sharper clothing read. (If still indistinct at build time, MERGE them and add a band at **age 40** to fill the real 35→45 gap.)
+5. **Per-band env tweaks profiled individually.** Any per-band environment change that alters GEOMETRY/LAYOUT (e.g. "extra board spacing" at age 12) is NOT a free scalar — it must be FPS-profiled AT THAT BAND (the Phase-5 FPS≥55 gate runs at EACH band, not just slider-overall). Prefer cheap scalar/colour/light tweaks over layout rebuilds for the age signal.
← bdcbe78 Add AGE-VIEWS-SPEC.md — overseer plan for 10 age-adaptive av
·
back to Quadrille Showroom
·
Age View: continuous avatar age-morph (ageRigParams + upperR fc2441f →