| Age | Commit message (Expand) | Author |
| 8 hours | feat(cnn_v3/training): load prev.png when available; document web tool prev gapHEADmain | skal |
| 8 hours | feat(cnn_v3): 3×3 dilated bottleneck + Sobel loss + FiLM warmup + architectu... | skal |
| 10 hours | update weights | skal |
| 10 hours | feat(cnn_v3/training): add --single-sample option + doc fixes | skal |
| 10 hours | feat(cnn_v3): add infer_cnn_v3.py + rewrite cnn_test for v3 parity | skal |
| 12 hours | feat(cnn_v3/tools): embed default weights in HTML tool; add --html export flag | skal |
| 12 hours | update weights | skal |
| 19 hours | add more samples + tool html | skal |
| 31 hours | move and improve the 'adjust.html' tool | skal |
| 35 hours | fix(fft): make bit_reverse_permute static, remove from public API and tests | skal |
| 35 hours | fix(fft): replace iterative twiddle with direct cosf/sinf, add tests A-E | skal |
| 43 hours | test(fft): re-enable DCT tests, document twiddle accumulation bug | skal |
| 44 hours | add a registration tool | skal |
| 2 days | docs: update temporal feedback docs — wire_dag auto-wiring, F16X8 format | skal |
| 2 days | fix(cnn_v3_debug): add CNNv3Effect to debug sequence for prev.r/g/b temporal ... | skal |
| 2 days | feat(gbuffer): wire_dag() + find_downstream_output() for temporal feedback | skal |
| 2 days | feat(cnn_v3): GBufferEffect temporal feedback via post_render() | skal |
| 3 days | feat(cnn_v3): shadow→dif migration complete (ch18) | skal |
| 3 days | wip(cnn_v3): shadow→dif intermediate + scene tweaks + migration plan | skal |
| 3 days | refactor(cnn_v3): simplify sphere SDF in shadow pass, remove per-frame alloc | skal |
| 3 days | fix(cnn_v3): shadow pass — 5 bugs fixed, labels in gbuf_view | skal |
| 3 days | docs+feat(cnn_v3): compact context, re-enable shadow in GBufDeferredEffect | skal |
| 3 days | feat(shaders): add ray_sphere snippet, use in gbuf_raster impostor | skal |
| 3 days | fix(cnn_v3): frontFace_CW for raster pipeline + sphere impostor in gbuf_raster | skal |
| 3 days | fix(cnn_v3): resolve #include via ShaderComposer in GBufDeferredEffect | skal |
| 3 days | fix(cnn_v3): deferred render — diffuse only, drop broken shadow | skal |
| 3 days | fix(cnn_v3): use model matrix for normal transform in gbuf_raster | skal |
| 3 days | refactor(shaders): extract oct-normal encode/decode into math/normal snippet | skal |
| 3 days | feat(cnn_v3): GBufDeferredEffect — simple deferred render (albedo * shadow) | skal |
| 3 days | feat(cnn_v3): wire CNNv3Effect into cnn_v3_test sequence | skal |
| 3 days | fix(cnn_v3): call set_scene() in constructor + orbiting camera | skal |
| 3 days | refactor(cnn_v3): GBufferEffect cleanup | skal |
| 3 days | feat(cnn_v3): Phase 4 — type-aware SDF in shadow pass | skal |
| 3 days | feat(cnn_v3): GBufferEffect Pass 2 — SDF shadow raymarching | skal |
| 3 days | feat(cnn_v3): GBufferEffect internal scene + GBufViewEffect debug wiring | skal |
| 3 days | add full dataset | skal |
| 3 days | feat(cnn_v3/tools): zoom canvas shows region around clicked texel | skal |
| 3 days | fix(cnn_v3/tools): don't destroy feat textures after runFromFeat (breaks viz) | skal |
| 3 days | fix(cnn_v3/tools): refresh zoom canvas when new sample is loaded | skal |
| 3 days | fix(cnn_v3/tools): zoom canvas fits remaining panel space (both axes, rAF mea... | skal |
| 3 days | fix(cnn_v3/tools): fit zoom canvas to panel width by scaling canvas attributes | skal |
| 3 days | fix(cnn_v3/tools): zoom channel via WebGPU re-render + fill panel width | skal |
| 3 days | feat(cnn_v3/tools): click vignette to show enlarged channel below grid | skal |
| 3 days | fix(cnn_v3/tools): remove unused sampler binding from FULL_PACK_SHADER | skal |
| 3 days | feat(cnn_v3): add G-buffer visualizer + web sample loader (Phase 7) | skal |
| 3 days | fix(cnn_v3/tools): fix getElementById illegal invocation + auto-preload weights | skal |
| 3 days | new timeline | skal |
| 3 days | fix(cnn_v3): fix texture format mismatches in cnn_v3_test sequence | skal |
| 3 days | fix(tools): fetch stb_image_write.h in project_init.sh, fix cnn_test include ... | skal |
| 3 days | feat(cnn_v3): wire trained weights into CNNv3Effect + add timeline test sequence | skal |