| Age | Commit message (Collapse) | Author |
|
architecture PNG
- Replace 1×1 pointwise bottleneck with Conv(8→8, 3×3, dilation=2):
effective RF grows from ~13px to ~29px at ¼res (~+1 KB weights)
- Add Sobel edge loss in training (--edge-loss-weight, default 0.1)
- Add FiLM 2-phase training: freeze MLP for warmup epochs then
unfreeze at lr×0.1 (--film-warmup-epochs, default 50)
- Update weight layout: BN 72→584 f16, total 1964→2476 f16 (4952 B)
- Cascade offsets in C++ effect, JS tool, export/gen_test_vectors scripts
- Regenerate test_vectors.h (1238 u32); parity max_err=9.77e-04
- Generate dark-theme U-Net+FiLM architecture PNG (gen_architecture_png.py)
- Replace ASCII art in CNN_V3.md and HOW_TO_CNN.md with PNG embed
handoff(Gemini): bottleneck dilation + Sobel loss + FiLM warmup landed.
Next: run first real training pass (see cnn_v3/docs/HOWTO.md §3).
|
|
- HOWTO.md: replace manual set_cnn_output_node() instructions with
wire_dag() auto-wiring explanation; add timeline.seq snippet as canonical
wiring example; document F16X8/GBUF_ALBEDO format requirement
- CNN_V3.md: fix prev_tex format (rgba16float, not rgba8unorm);
mark timeline.seq CNNv3Effect TODO as done
- SEQUENCE.md: already updated in previous commit (wire_dag pattern,
format-matching rule, sink guard)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Replace raw shadow (ch18) with dif = max(0,dot(normal,KEY_LIGHT))*shadow
across all layers. Channel count stays 20, weight shapes unchanged.
- gbuf_pack.wgsl: t1.z = pack4x8unorm(mip2.g, mip2.b, dif, transp); t1.w = 0u
- gbuf_deferred.wgsl: read dif from unpack4x8unorm(t1.z).z
- gbuf_view.wgsl: revert to 4×5 grid, ch18=dif label, ch19=trns label
- tools/shaders.js: FULL_PACK_SHADER adds oct_decode + computes dif
- cnn_v3_utils.py: assemble_features() computes dif on-the-fly via oct_decode
- docs: CNN_V3.md, HOWTO.md, HOW_TO_CNN.md, GBUF_DIF_MIGRATION.md updated
handoff(Gemini): shadow→dif migration done, ready for first training pass
|
|
- CNN_V3.md: status line, architecture channel counts (8/16→4/8), FiLM MLP
output count (96→40 params), size budget table (real implemented values)
- HOWTO.md: Phase status table (5→done, add phase 6 training TODO), sections
3-5 rewritten to reflect what exists vs what is still planned
|
|
- CNN_V3.md: complete design document
- U-Net enc_channels=[4,8], ~5 KB f16 weights
- FiLM conditioning (5D → γ/β per level, CPU-side MLP)
- 20-channel feature buffer, 32 bytes/pixel: two rgba32uint textures
- feat_tex0: albedo.rgb, normal.xy, depth, depth_grad.xy (f16)
- feat_tex1: mat_id, prev.rgb, mip1.rgb, mip2.rgb, shadow, transp (u8)
- 4-pass G-buffer: raster MRT + SDF compute + lighting + pack
- Per-pixel parity framework: PyTorch / HTML WebGPU / C++ WebGPU (≤1/255)
- Training pipelines: Blender full G-buffer + photo-only (channel dropout)
- train_cnn_v3_full.sh spec (modelled on v2 script)
- HTML tool adaptation plan from cnn_v2/tools/cnn_v2_test/index.html
- Binary format v3 header spec
- 8-phase ordered implementation checklist
- TODO.md: add CNN v3 U-Net+FiLM future task with phases
- cnn_v3/README.md: update status to design phase
handoff(Gemini): CNN v3 design complete. Phase 0 (stub G-buffer) unblocks
all other phases — one compute shader writing feat_tex0+feat_tex1 with
synthetic values from the current framebuffer. See cnn_v3/docs/CNN_V3.md
Implementation Checklist.
|