feat: 3D gamut visualization rework (#185) #186

Merged
gronod merged 1 commits from feat/185-3d-gamut-visualization into development 2026-09-02 10:55:12 +01:00
Owner

Summary of Changes

Reworks the 3D gamut visualizer in Stage 5 (Verify Profile) resolving #185:

  1. CIELAB Axis Scaffold & Labels:

    • Replaced generic THREE.AxesHelper and GridHelper with a purpose-built CIELAB coordinate scaffold matching actual ranges (L^*: 0→100, a^*/b^*: ±128) with calibrated tick marks.
    • Integrated THREE.CSS2DRenderer to project crisp, dynamic HTML text labels for L^*, +a^* (Red), -a^* (Green), +b^* (Yellow), -b^* (Blue), and L^* tick values.
  2. Clean sRGB Reference Gamut:

    • Refactored sRGB.gam rendering using THREE.EdgesGeometry(geometry, 15°) to remove clutter from co-planar triangle tessellation.
    • Added a faint transparent solid fill (opacity: 0.07) underneath to give physical volume without obstructing the profile gamut.
  3. Per-Vertex True-Colour Profile Gamut:

    • Replaced uniform flat blue shading with per-vertex L^*a^*b^* \to \text{sRGB} conversion using color_convert.js labToSrgb().
  4. Interactive Controls & Legend:

    • Added glassmorphic floating legend panel over the 3D canvas with toggle switches for Profile Gamut, sRGB Reference, and CIELAB Axes.
  5. Version & Documentation Bump:

    • Bumped point version to 0.7.1 across Cargo.toml, Cargo.lock, package.json, tauri.conf.json, README.md, ROADMAP.md, and src/index.html.
### Summary of Changes Reworks the 3D gamut visualizer in Stage 5 (Verify Profile) resolving #185: 1. **CIELAB Axis Scaffold & Labels**: - Replaced generic `THREE.AxesHelper` and `GridHelper` with a purpose-built CIELAB coordinate scaffold matching actual ranges ($L^*$: 0→100, $a^*/b^*$: ±128) with calibrated tick marks. - Integrated `THREE.CSS2DRenderer` to project crisp, dynamic HTML text labels for $L^*$, $+a^*$ (Red), $-a^*$ (Green), $+b^*$ (Yellow), $-b^*$ (Blue), and $L^*$ tick values. 2. **Clean sRGB Reference Gamut**: - Refactored `sRGB.gam` rendering using `THREE.EdgesGeometry(geometry, 15°)` to remove clutter from co-planar triangle tessellation. - Added a faint transparent solid fill (`opacity: 0.07`) underneath to give physical volume without obstructing the profile gamut. 3. **Per-Vertex True-Colour Profile Gamut**: - Replaced uniform flat blue shading with per-vertex $L^*a^*b^* \to \text{sRGB}$ conversion using `color_convert.js` `labToSrgb()`. 4. **Interactive Controls & Legend**: - Added glassmorphic floating legend panel over the 3D canvas with toggle switches for Profile Gamut, sRGB Reference, and CIELAB Axes. 5. **Version & Documentation Bump**: - Bumped point version to `0.7.1` across `Cargo.toml`, `Cargo.lock`, `package.json`, `tauri.conf.json`, `README.md`, `ROADMAP.md`, and `src/index.html`.
gronod added 1 commit 2026-09-02 10:55:07 +01:00
gronod merged commit c37662daed into development 2026-09-02 10:55:12 +01:00
gronod deleted branch feat/185-3d-gamut-visualization 2026-09-02 10:55:12 +01:00
Sign in to join this conversation.