summaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md30
1 files changed, 11 insertions, 19 deletions
diff --git a/TODO.md b/TODO.md
index 4f38740..f97ef0e 100644
--- a/TODO.md
+++ b/TODO.md
@@ -14,7 +14,7 @@ Procedural spectrogram tool: 50-100× compression (5 KB .spec → ~100 bytes C++
## Priority 2: Test Infrastructure Maintenance [ONGOING]
-**Status:** 35/35 tests passing
+**Status:** 38/38 tests passing
**Outstanding TODOs:**
@@ -62,27 +62,19 @@ Ongoing shader code hygiene for granular, reusable snippets.
## CNN v3 — U-Net + FiLM [IN PROGRESS]
-U-Net architecture with FiLM conditioning. Runtime style control via beat/audio.
-Richer G-buffer input (normals, depth, material IDs). Per-pixel testability across
-PyTorch / HTML WebGPU / C++ WebGPU.
+**Design:** `cnn_v3/docs/CNN_V3.md` | All phases 1–7 complete. Runtime pipeline operational.
-**Design:** `cnn_v3/docs/CNN_V3.md`
+**Current pipeline:** `GBufferEffect` → `GBufDeferredEffect` → `GBufViewEffect` → sink
-**Phases:**
-1. ✅ G-buffer: `GBufferEffect` integrated. SDF/shadow placeholder (shadow=1, transp=0).
-2. ✅ Training infrastructure: `blender_export.py`, `pack_blender_sample.py`, `pack_photo_sample.py`
-3. ✅ WGSL shaders: cnn_v3_common (snippet), enc0, enc1, bottleneck, dec1, dec0
-4. ✅ C++ `CNNv3Effect`: 5 compute passes, FiLM uniform upload, `set_film_params()` API
- - Params alignment fix: WGSL `vec3u` align=16 → C++ structs 64/96 bytes
- - Weight offsets as explicit formulas (e.g. `20*4*9+4`)
- - FiLM γ/β: identity defaults; real values require trained MLP (see below)
-5. ✅ Parity validation: test vectors + `test_cnn_v3_parity.cc`. max_err=4.88e-4 (≤1/255).
- - Key fix: intermediate nodes at fractional resolutions (W/2, W/4) via `NodeRegistry::default_width()/default_height()`
+**Shadow pass status:** ✅ Fixed and re-enabled. Cube + sphere shadows correct. Pulsating sphere scale confirmed correct end-to-end. Scene is currently simplified (1 cube + 1 sphere, 1 light) for debugging.
-**Next: export + real training run**
-- `train_cnn_v3.py` + `cnn_v3_utils.py` written (Phase 6 training script done)
-- ✅ `export_cnn_v3_weights.py` — convert trained `.pth` → `.bin` (f16)
-- See `cnn_v3/docs/HOWTO.md` §3 for training commands
+**Active work:**
+- [ ] Restore full scene in `GBufferEffect::set_scene()` (20 cubes + 4 spheres, 2 lights)
+- [ ] Run first real training pass — see `cnn_v3/docs/HOWTO.md` §3
+
+**Pending (lower priority):**
+- [ ] GBufferEffect: Pass 3 transparency (transp=0 placeholder)
+- [ ] GBufferEffect: `resize()` support
## Future: CNN v3 "2D Mode" (G-buffer-free)