| Age | Commit message (Expand) | Author |
| 18 hours | feat(cnn_v3): shadow→dif migration complete (ch18) | skal |
| 18 hours | wip(cnn_v3): shadow→dif intermediate + scene tweaks + migration plan | skal |
| 19 hours | refactor(cnn_v3): simplify sphere SDF in shadow pass, remove per-frame alloc | skal |
| 19 hours | fix(cnn_v3): shadow pass — 5 bugs fixed, labels in gbuf_view | skal |
| 22 hours | docs+feat(cnn_v3): compact context, re-enable shadow in GBufDeferredEffect | skal |
| 22 hours | feat(shaders): add ray_sphere snippet, use in gbuf_raster impostor | skal |
| 22 hours | fix(cnn_v3): frontFace_CW for raster pipeline + sphere impostor in gbuf_raster | skal |
| 22 hours | fix(cnn_v3): resolve #include via ShaderComposer in GBufDeferredEffect | skal |
| 22 hours | fix(cnn_v3): deferred render — diffuse only, drop broken shadow | skal |
| 22 hours | fix(cnn_v3): use model matrix for normal transform in gbuf_raster | skal |
| 22 hours | refactor(shaders): extract oct-normal encode/decode into math/normal snippet | skal |
| 23 hours | feat(cnn_v3): GBufDeferredEffect — simple deferred render (albedo * shadow) | skal |
| 23 hours | feat(cnn_v3): wire CNNv3Effect into cnn_v3_test sequence | skal |
| 23 hours | fix(cnn_v3): call set_scene() in constructor + orbiting camera | skal |
| 23 hours | refactor(cnn_v3): GBufferEffect cleanup | skal |
| 23 hours | feat(cnn_v3): Phase 4 — type-aware SDF in shadow pass | skal |
| 23 hours | feat(cnn_v3): GBufferEffect Pass 2 — SDF shadow raymarching | skal |
| 23 hours | feat(cnn_v3): GBufferEffect internal scene + GBufViewEffect debug wiring | skal |
| 25 hours | add full dataset | skal |
| 25 hours | feat(cnn_v3/tools): zoom canvas shows region around clicked texel | skal |
| 26 hours | fix(cnn_v3/tools): don't destroy feat textures after runFromFeat (breaks viz) | skal |
| 26 hours | fix(cnn_v3/tools): refresh zoom canvas when new sample is loaded | skal |
| 26 hours | fix(cnn_v3/tools): zoom canvas fits remaining panel space (both axes, rAF mea... | skal |
| 26 hours | fix(cnn_v3/tools): fit zoom canvas to panel width by scaling canvas attributes | skal |
| 26 hours | fix(cnn_v3/tools): zoom channel via WebGPU re-render + fill panel width | skal |
| 26 hours | feat(cnn_v3/tools): click vignette to show enlarged channel below grid | skal |
| 26 hours | fix(cnn_v3/tools): remove unused sampler binding from FULL_PACK_SHADER | skal |
| 26 hours | feat(cnn_v3): add G-buffer visualizer + web sample loader (Phase 7) | skal |
| 29 hours | fix(cnn_v3/tools): fix getElementById illegal invocation + auto-preload weights | skal |
| 29 hours | new timeline | skal |
| 29 hours | fix(cnn_v3): fix texture format mismatches in cnn_v3_test sequence | skal |
| 30 hours | fix(tools): fetch stb_image_write.h in project_init.sh, fix cnn_test include ... | skal |
| 30 hours | feat(cnn_v3): wire trained weights into CNNv3Effect + add timeline test sequence | skal |
| 30 hours | feat(cnn_v3): add weight assets to assets.txt, update HOW_TO_CNN export docs | skal |
| 30 hours | docs(cnn_v3): add uv inline deps to export_cnn_v3_weights.py | skal |
| 30 hours | fix size | skal |
| 30 hours | feat(cnn_v3): patch alignment search, resume, Ctrl-C save | skal |
| 31 hours | normalize sample dimension | skal |
| 31 hours | docs(cnn_v3): add uv inline deps to train_cnn_v3.py + HOW_TO_CNN note | skal |
| 32 hours | perf(cnn_v3): cache dataset images at init to avoid per-patch disk I/O | skal |
| 32 hours | docs(cnn_v3): add Windows 10 + CUDA training section to HOW_TO_CNN §2 | skal |
| 32 hours | fix(cnn_v3): correct weight budget in docstring (3.9→5.4 KB f16) | skal |
| 32 hours | fix(cnn_v3): resize target to albedo dims when sizes differ | skal |
| 32 hours | docs(cnn_v3): add full Old House example to HOW_TO_CNN §1b | skal |
| 32 hours | fix(cnn_v3): native OPEN_EXR_MULTILAYER + quiet render + flexible channel names | skal |
| 33 hours | docs(cnn_v3): blender4 alias + Blender 4.5 LTS requirement for training data | skal |
| 33 hours | fix(blender_export): version detection + Blender 5.x warning + cleanup | skal |
| 34 hours | fix(cnn_v3): blender_export Blender 5 compositor activation + document Render... | skal |
| 34 hours | feat(cnn_v3): blender_export print pack_blender_sample.py batch command after... | skal |
| 34 hours | fix(cnn_v3): blender_export fallback socket name aliases for Shadow etc. | skal |