<feed xmlns='http://www.w3.org/2005/Atom'>
<title>demo.git/src/app, branch main</title>
<subtitle>Vide-coded 64k demo system</subtitle>
<id>https://git.taar-o.com/demo.git/atom?h=main</id>
<link rel='self' href='https://git.taar-o.com/demo.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/'/>
<updated>2026-05-20T20:44:44Z</updated>
<entry>
<title>fix: code review cleanup — bugs, dead code, factorization (-167 lines)</title>
<updated>2026-05-20T20:44:44Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-05-20T20:44:44Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=5d20c892dedce7bc7486acbd72fbd35da69e413e'/>
<id>urn:sha1:5d20c892dedce7bc7486acbd72fbd35da69e413e</id>
<content type='text'>
Bugs:
- B1: fix dead tempo debug (prev_tempo captured after assignment)
- B2: fix ReloadAssetsFromFile leak for disk-loaded assets; simplify DropAsset
- B3: fix get_free_pool_slot leak (unregister synth + free data on reuse)
- B4: volatile -&gt; std::atomic with acquire/release in miniaudio_backend, synth
- B5: fix unaligned reads in scene_loader (memcpy-based read_f32/read_u32)
- B6: fix shader module + BGL + pipeline layout leaks in gpu.cc, pipeline_builder

Dead code:
- D1: remove unused particle_defs.h
- D3: remove create_post_process_pipeline_simple (zero callers)
- D4: remove empty gpu_draw()
- D5: remove write-only Hybrid3D::initialized_
- D6: remove legacy pending buffer path in audio.cc

Factorization:
- F1: Effect::run_fullscreen_pass() replaces boilerplate in 5 effects
- F2: particle_common.wgsl snippet, #include in 3 WGSL shaders
- F3: gpu_create_shader_module() helper, used in 3 call sites
- F5: get_world_aabb() shared between bvh.cc and physics.cc
- F6: samples_to_seconds() replaces 6 inline expressions
- F7: gpu_create_linear/nearest_sampler use SamplerCache; add nearest() preset

37/37 tests passing.

handoff(Claude): code review batch — all items verified, no regressions.
</content>
</entry>
<entry>
<title>remove unused util/math.h</title>
<updated>2026-02-28T07:59:55Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-28T07:59:55Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=6599a428cd69be6c66c5179e1f0fce42f561f935'/>
<id>urn:sha1:6599a428cd69be6c66c5179e1f0fce42f561f935</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>style: Apply clang-format</title>
<updated>2026-02-17T07:16:03Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-17T07:16:03Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=64f977f6fbedf75d5edbc3963e002b593c8428d8'/>
<id>urn:sha1:64f977f6fbedf75d5edbc3963e002b593c8428d8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: Add PeakMeterEffect v2 for test_demo audio visualization</title>
<updated>2026-02-16T16:12:11Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T16:12:11Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=18a3ccb2a1335d3747657e0b764af31fd723856e'/>
<id>urn:sha1:18a3ccb2a1335d3747657e0b764af31fd723856e</id>
<content type='text'>
Ports PeakMeterEffect to v2 Effect system with proper DAG routing.
Red horizontal bar overlay displays audio_intensity for visual debugging
of audio-visual synchronization.

Changes:
- New: src/effects/peak_meter_effect.{h,cc} - v2 implementation
- Timeline: FlashEffect -&gt; flash_out -&gt; PeakMeterEffect -&gt; sink
- Build: Added to COMMON_GPU_EFFECTS and demo_effects.h
- Test: Added to test_demo_effects.cc (9/9 effects pass)
- Cleanup: Removed old disabled PeakMeterEffect code from test_demo.cc

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>fix: calculate beat_phase for FlashEffect and refactor uniforms</title>
<updated>2026-02-16T16:04:41Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T16:04:41Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=c79ebff06ae74135c5f67ecc01d5bb55aeb5eda9'/>
<id>urn:sha1:c79ebff06ae74135c5f67ecc01d5bb55aeb5eda9</id>
<content type='text'>
- seq_compiler.py: Calculate beat_phase from beat_time (was hardcoded 0.0f)
- Refactor: Replace CommonPostProcessUniforms with UniformsSequenceParams
- Remove duplicate struct definition in post_process_helper.h
- Update all CNN effects and tests to use unified uniform struct
- Fixes FlashEffect showing solid white instead of flashing to beat

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: remove empty audio_update() function</title>
<updated>2026-02-16T14:30:27Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T14:30:27Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=6ac4fa8fb8c045232575036f4a140b9a0ec1995a'/>
<id>urn:sha1:6ac4fa8fb8c045232575036f4a140b9a0ec1995a</id>
<content type='text'>
Function had no implementation and served no purpose. Removed declaration, definition, and all call sites.

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: remove v2 versioning artifacts, establish Sequence as canonical system</title>
<updated>2026-02-16T13:32:59Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T13:32:59Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=b2ede3f0680edc894a54e28374cb87ab2690afa2'/>
<id>urn:sha1:b2ede3f0680edc894a54e28374cb87ab2690afa2</id>
<content type='text'>
Complete v1→v2 migration cleanup: rename 29 files (sequence_v2→sequence, effect_v2→effect, 14 effect files, 8 shaders, compiler, docs), update all class names and references across 54 files. Archive v1 timeline. System now uses standard naming with all versioning removed. 30/34 tests passing.

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(sequence): complete v2 migration with DAG-based routing</title>
<updated>2026-02-16T10:54:46Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T10:54:46Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=af5d0e4c3a6cb773a4fb51ac32f4c33a7f8d8224'/>
<id>urn:sha1:af5d0e4c3a6cb773a4fb51ac32f4c33a7f8d8224</id>
<content type='text'>
Phase 4 complete: V1 system removed, v2 fully operational.

Architecture Changes:
- Explicit Node system with typed buffers (u8x4_norm, f32x4, depth24)
- DAG effect routing with multi-input/multi-output support
- Python compiler (seq_compiler_v2.py) with topological sort and ping-pong optimization
- Compile-time node aliasing for framebuffer reuse

V1 Removal (~4KB):
- Deleted effect.h/cc base classes (1.4KB)
- Deleted 19 v1 effect pairs: heptagon, particles, passthrough, gaussian_blur,
  solarize, scene1, chroma_aberration, vignette, hybrid_3d, flash_cube,
  theme_modulation, fade, flash, circle_mask, rotating_cube, sdf_test,
  distort, moving_ellipse, particle_spray (2.7KB)

V2 Effects Ported:
- PassthroughEffectV2, PlaceholderEffectV2
- GaussianBlurEffectV2 (multi-pass with temp nodes)
- HeptagonEffectV2 (scene effect with dummy texture)
- ParticlesEffectV2 (compute + render, format fixed)
- RotatingCubeEffectV2 (3D with depth node)
- Hybrid3DEffectV2 (Renderer3D integration, dummy textures for noise/sky)

Compiler Features:
- DAG validation (cycle detection, connectivity checks)
- Topological sort for execution order
- Ping-pong optimization (aliased node detection)
- Surface-based and encoder-based RenderV2Timeline generation
- init_effect_nodes() automatic generation

Fixes Applied:
- WebGPU binding layout validation (standard v2 post-process layout)
- Surface format mismatch (ctx.format for blit, RGBA8Unorm for framebuffers)
- Depth attachment compatibility (removed forced depth from gpu_create_render_pass)
- Renderer3D texture initialization (created dummy 1x1 white textures)
- ParticlesEffectV2 format (changed from ctx.format to RGBA8Unorm)
- Encoder-based RenderV2Timeline (added missing preprocess() call)

Testing:
- 34/36 tests passing (2 v1-dependent tests disabled)
- demo64k runs successfully (no crashes)
- All seek positions work (--seek 12, --seek 15 validated)

Documentation:
- Updated PROJECT_CONTEXT.md (v2 status, reference to SEQUENCE_v2.md)
- Added completion entry to COMPLETED.md

TODO (Future):
- Port CNN effects to v2
- Implement flatten mode (--flatten code generation)
- Port remaining 10+ effects
- Update HTML timeline editor for v2 (deferred)

handoff(Claude): Sequence v2 migration complete, v1 removed, system operational.
Phase 5 (editor) deferred per user preference.

Co-Authored-By: Claude Sonnet 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat(sequence): integrate v2 timeline with main loop</title>
<updated>2026-02-16T09:21:36Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T09:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=8eeadaf0d5653c21b948103e4d328f634b739a17'/>
<id>urn:sha1:8eeadaf0d5653c21b948103e4d328f634b739a17</id>
<content type='text'>
- Generate InitializeV2Sequences() in timeline.cc
- Generate RenderV2Timeline() for frame rendering
- Add timeline_v2.h interface header
- Call InitializeV2Sequences() in main.cc
- V2 sequences instantiated at startup
- Ready for v1→v2 rendering switch

All 35 tests passing ✅

handoff(Claude): V2 integration ready, next: switch rendering to v2
</content>
</entry>
<entry>
<title>fix(cnn): rename CNNLayerParams to CNNv1LayerParams</title>
<updated>2026-02-16T09:11:18Z</updated>
<author>
<name>skal</name>
<email>pascal.massimino@gmail.com</email>
</author>
<published>2026-02-16T09:11:18Z</published>
<link rel='alternate' type='text/html' href='https://git.taar-o.com/demo.git/commit/?id=ec578450d3425ff00783215bcec7c4ce8feca068'/>
<id>urn:sha1:ec578450d3425ff00783215bcec7c4ce8feca068</id>
<content type='text'>
- Update cnn_test.cc references
- Update test_demo.cc references (CNNEffect -&gt; CNNv1Effect)
- Fixes build errors from v1 renaming

35/36 tests passing (SilentBackendTest pre-existing failure)
</content>
</entry>
</feed>
