summaryrefslogtreecommitdiff
path: root/PROJECT_CONTEXT.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-09 12:37:57 +0100
committerskal <pascal.massimino@gmail.com>2026-02-09 12:37:57 +0100
commit655d0a627c17b598562616a269e53bf06124d43f (patch)
tree7af4bba4fd413ec3dc2fc0c9ac55d1c010732f8a /PROJECT_CONTEXT.md
parent9f470ce9c629b8756a3b1b8b9d30e8cf643dbcbd (diff)
docs: Archive Feb 9 completed tasks and clarify build configs
- Move completed tasks (Uniform alignment, WGSL validation, test_demo fix) to COMPLETED.md - Clean up TODO.md and PROJECT_CONTEXT.md "Recently Completed" sections - Update HOWTO.md to clarify DEMO_ALL_OPTIONS enables STRIP_ALL - Note: test_demo PeakMeterEffect requires non-STRIP build Net: -26 lines (better context hygiene) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'PROJECT_CONTEXT.md')
-rw-r--r--PROJECT_CONTEXT.md43
1 files changed, 8 insertions, 35 deletions
diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md
index 636f339..7df7587 100644
--- a/PROJECT_CONTEXT.md
+++ b/PROJECT_CONTEXT.md
@@ -44,7 +44,7 @@ Style:
---
## Next Up
-- **Task #5: Spectral Brush Editor** [IN PROGRESS - February 6, 2026]
+- **Task #5: Spectral Brush Editor** [IN PROGRESS]
- Create web-based tool for procedurally tracing audio spectrograms
- Replace large .spec assets with tiny C++ code (50-100× compression)
- Phase 1: C++ runtime (`spectral_brush.h/cc` - Bezier curves + Gaussian profiles)
@@ -52,19 +52,13 @@ Style:
- Phase 3: File I/O (load .wav/.spec, export procedural_params.txt + C++ code)
- See `doc/SPECTRAL_BRUSH_EDITOR.md` for complete design
-- **Task #72: Audio Pipeline Streamlining** [COMPLETED - February 8, 2026]
- - ✅ Optimize data flow: Zero heap allocations per frame achieved
- - ✅ Direct additive mixing: Ring buffer two-phase write API
- - ✅ Precision: float32 internal pipeline with explicit clipping
-
- **Visuals & Content**
- - [ ] **Task #52: Procedural SDF Font**: Minimal bezier/spline set for [A-Z, 0-9] and SDF rendering.
- - [ ] **Task #53: Particles Shader Polish**: Improve visual quality of particles.
- - [ ] **Task #55: SDF Random Planes Intersection**: Implement `sdPolyhedron` (crystal/gem shapes) via plane intersection.
+ - [ ] **Task #52: Procedural SDF Font**: Minimal bezier/spline set for [A-Z, 0-9] and SDF rendering
+ - [ ] **Task #53: Particles Shader Polish**: Improve visual quality of particles
+ - [ ] **Task #55: SDF Random Planes Intersection**: Implement `sdPolyhedron` (crystal/gem shapes) via plane intersection
- **Tooling & Optimization**
- - [ ] **Task #54: Tracy Integration**: Integrate Tracy debugger for performance profiling.
- - [x] **Task #39: Visual Debugging System**: Implemented wireframe primitives (Sphere, Cone, Cross, Trajectory) for debugging.
+ - [ ] **Task #54: Tracy Integration**: Integrate Tracy debugger for performance profiling
---
## Design Docs Quick Reference
@@ -99,32 +93,11 @@ For detailed documentation, use Read tool to load specific docs:
## Recently Completed (February 2026)
-- **Uniform Buffer Alignment Fix** (February 9) - Task #74: Fixed WebGPU validation errors caused by WGSL `vec3<f32>` alignment mismatches. Changed circle_mask_compute.wgsl padding from `vec3<f32>` to three `f32` fields. Demo now runs with 0 validation errors. Test suite: 32/33 passing (97%).
-
-- **Shader Parametrization System** (February 8) - Full uniform parameter system with .seq syntax support. FlashEffect now supports dynamic color/decay parameters computed per-frame. Critical WGSL alignment bugfix (vec3 = 16-byte aligned). Size: ~400-500 bytes. See `doc/COMPLETED.md` for details.
-
-- **Extended Shader Parametrization** (February 8) - Task #73 (2/4 effects complete):
- - ChromaAberrationEffect: Added offset_scale and angle parameters (diagonal/vertical aberration modes)
- - GaussianBlurEffect: Added strength parameter (configurable blur radius)
- - Both effects follow FlashEffect pattern (UniformHelper, params struct, .seq syntax)
- - Size: ~200-300 bytes per effect
-
-- **WGSL Shader Composability** - Extracted common utilities to `math/common_utils.wgsl`:
- - `transform_normal()` - 2 call sites (renderer_3d, mesh_render)
- - `spherical_uv()` / `spherical_uv_from_dir()` - 8 call sites (renderer_3d, skybox)
- - `grid_pattern()` - 2 call sites (renderer_3d)
- - Size savings: ~200 bytes net
+- **WGSL Uniform Buffer Validation (Task #75)** (February 9) - Standardized uniform buffer layout across all effects. Created validation tool (`validate_uniforms.py`) integrated into build. All effects now use `CommonPostProcessUniforms` (binding 2) + effect-specific params (binding 3). Added `UNIFORM_BUFFER_GUIDELINES.md`.
-- **Test Suite Optimization** - JitteredAudioBackendTest: 3.5s → 0.07s (50x speedup)
- - Reduced test duration and sleep times
- - Full CI suite now <1 second
+- **Uniform Buffer Alignment (Task #74)** (February 9) - Fixed WGSL `vec3<f32>` alignment issues. Changed padding from `vec3` to three `f32` fields in multiple shaders. Demo runs with 0 validation errors. Test suite: 32/33 passing (97%).
-- **CHECK_RETURN Macro System** - Error handling for recoverable errors:
- - `CHECK_RETURN_IF()` - Simple validation with return
- - `CHECK_RETURN_BEGIN/END` - Complex validation with cleanup
- - `WARN_IF()` - Non-fatal warnings
- - Applied to 5 call sites (asset_manager, test_demo)
- - Size impact: ~500 bytes saved in STRIP_ALL builds
+- **Shader Parametrization (Task #73)** (February 8) - Full uniform parameter system with .seq syntax. FlashEffect, ChromaAberrationEffect, GaussianBlurEffect now support dynamic parameters. Size: ~400-500 bytes. See `doc/COMPLETED.md` for details.
## Architectural Overview