feat(sim+engine): lock alteration calibration + fix psychedelic dark grade
Tuning the look by eye in the simulator (design §8) surfaced that the dark mood pole rendered a full-frame hue-rotate(-200deg) — rock orange, trees purple: the disorienting look rejected in session 0008, not the peaceful POC dark_frame. Replace it with darken + slight desaturate on the video filter plus a multiply-blended deep-blue wash (#tint, below the SVG HUD so the overlay stays legible). Dark now reads cool/somber with natural greens, like the approved POC look; light/left/right unchanged and confirmed peaceful. With full tilt now tasteful on every axis, LOCK DEFAULT_CALIBRATION to unity gains + linear variant map as a deliberate by-eye choice (not placeholders), closing the open session-0006 knob->strength decision: knobs run 0=off..4=max, equal Dark/Light = identity, the 5 notches map 1:1 to the 5 discrete Right bakes. Guard the locked constants with test_default_calibration_is_locked. Resolves design §8 open questions (calibration curve shape; grade-vs-overlay ordering) and records the dark-grade fix. Full suite 193 passed / 2 skipped. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+19
-1
@@ -42,7 +42,25 @@ class Calibration:
|
||||
right_variant_map: tuple = (0, 1, 2, 3, 4)
|
||||
|
||||
|
||||
DEFAULT_CALIBRATION = Calibration()
|
||||
# The LOCKED calibration (session 0010, 2026-06-07) — settled by eye in the
|
||||
# simulator, closing the open session-0006 knob->strength decision. Convention:
|
||||
# every experience knob runs 0 = off .. 4 = max, and equal Dark/Light = identity
|
||||
# (raw footage); there is no "centered at 2 = no push" coordinate.
|
||||
# - mood_gain = 1.0: full Dark/Light knob reaches the full mood grade. By-eye
|
||||
# evidence (POC renders + sim, after the dark-grade fix this session) shows
|
||||
# full tilt is peaceful on every axis, so no softening is warranted.
|
||||
# - overlay_gain = 1.0: full Left = opacity 1.0; the HUD is legible, not
|
||||
# overwhelming, sitting above the grade.
|
||||
# - right_variant_map linear: the 5 knob notches map 1:1 onto the 5 discrete
|
||||
# pre-baked Right strengths (0 = raw base).
|
||||
# These are unity/linear by deliberate choice, not as placeholders. The curve
|
||||
# stays parameterized so a future re-bake or a different feel is one edit away;
|
||||
# test_default_calibration_is_locked guards the values from drifting silently.
|
||||
DEFAULT_CALIBRATION = Calibration(
|
||||
mood_gain=1.0,
|
||||
overlay_gain=1.0,
|
||||
right_variant_map=(0, 1, 2, 3, 4),
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
|
||||
Reference in New Issue
Block a user