summaryrefslogtreecommitdiff
path: root/workspaces/main/timeline.seq
AgeCommit message (Collapse)Author
8 hoursnew timelineskal
8 hoursfix(cnn_v3): fix texture format mismatches in cnn_v3_test sequenceskal
- seq_compiler: add gbuf_albedo/gbuf_rgba32uint to NODE_TYPES - timeline: declare gbuf_feat0/feat1 as gbuf_rgba32uint, route CNNv3Effect output through cnn_v3_out (gbuf_albedo) + Passthrough to sink (dec0 can't write directly to Rgba8Unorm sink) - cnn_v3_effect: fix update_bind_groups using .set() instead of .replace() causing FATAL assert on second frame - TODO: add CNN v3 "2D mode" (G-buffer-free) future task handoff(Gemini): CNNv3Effect now runs without crashes at --seek 48
9 hoursfeat(cnn_v3): wire trained weights into CNNv3Effect + add timeline test sequenceskal
- CNNv3Effect constructor loads ASSET_WEIGHTS_CNN_V3 via GetAsset on startup - seq_compiler.py: CLASS_TO_HEADER supports full #include paths for cnn_v3/ classes - timeline.seq: add cnn_v3_test sequence at 48s (GBufferEffect → CNNv3Effect) - test_cnn_v3_parity: zero_weights test now explicitly uploads zeros to override asset handoff(Gemini): CNNv3Effect ready; export weights to workspaces/main/weights/ and seek to 48s to test
12 dayschange dither_c64() signature to take 'dimension' directlyskal
2026-03-07feat(effects): add Ntsc post-process effect with fisheye distortionskal
WGSL-only WgslEffect implementing barrel/fisheye distortion, RGB chroma separation, scanlines, per-pixel temporal noise, rolling jitter line, vignette, and warm NTSC phosphor tint. Applied across all main sequences. handoff(Gemini): Ntsc effect added; 13 effects total, 35+1 tests expected. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06feat(effects): add Scratch post-process effect with reusable scratch_lines ↵skal
snippet - src/shaders/render/scratch_lines.wgsl: reusable WGSL snippet registered as "render/scratch_lines"; call scratch_lines(uv, resolution, time)->f32 from any effect. Uses hash_1f from math/noise; 8 lines/frame, ~24fps flicker. - src/effects/scratch.{wgsl,h,cc}: thin Scratch effect wrapping the snippet. - Applied to "intro" and "rotating_cube" sequences as the final step. - 35/35 tests passing. handoff(Gemini): Scratch effect added. render/scratch_lines snippet is reusable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28fix(tools/shadertoy): fix Next Steps instructions and update EFFECT_WORKFLOW.mdskal
- Fix assets.txt path: shaders/xxx.wgsl (not ../../src/shaders/) - Fix shader output path to workspaces/main/shaders/ - Step 5: reference cmake/DemoSourceLists.cmake COMMON_GPU_EFFECTS (not CMakeLists.txt GPU_SOURCES) - Add step for test_demo_effects.cc Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20feat(sequence): port Scene1Effect + fix seq_compiler absolute time bugskal
- Add Scene1 effect: raymarching cube+sphere+ground (reflections, shadows) - Fix scene1.wgsl: binding 0→2, CommonUniforms→UniformsSequenceParams - Replace Heptagon+Placeholder stub in heptagon_scene with Scene1 - Fix seq_compiler.py: emit seq.start_time+effect.start/end (absolute times) so dispatch_render active check works correctly for all sequences Bug: effects in sequences starting after t=0 were never active because local times (e.g. 0-8) never satisfied params.time<end for absolute time 20+. 34/34 tests passing. handoff(Gemini): seq_compiler now emits absolute effect times. All existing sequences affected — verify visual output across the full timeline. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-16fix: add sequence index to generated class namesskal
Prevents compilation errors when multiple sequences share the same name. Compiler now appends _{index}_Sequence for unique class names. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16refactor: remove 'Effect' suffix from effect names in timeline.seq filesskal
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-16refactor: remove v2 versioning artifacts, establish Sequence as canonical systemskal
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 <noreply@anthropic.com>
2026-02-15refactor(cnn): rename cnn_effect to cnn_v1_effect for clarityskal
Renamed files and classes: - cnn_effect.{h,cc} → cnn_v1_effect.{h,cc} - CNNEffect → CNNv1Effect - CNNEffectParams → CNNv1EffectParams - CNNLayerParams → CNNv1LayerParams - CNN_EFFECT.md → CNN_V1_EFFECT.md Updated all references: - C++ includes and class usage - CMake source list - Timeline (workspaces/main/timeline.seq) - Test file (test_demo_effects.cc) - Documentation (CLAUDE.md, PROJECT_CONTEXT.md, READMEs) Tests: 34/34 passing (100%)
2026-02-15debug flash-cube-effectskal
2026-02-15refactor(timeline): retiming and effect consolidationskal
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13Add pop-punk drum track from documented sequenceskal
Converted track.md drum notation to .track format and integrated as main music. 165 BPM high-energy pattern with syncopated kicks, 16th note hi-hats, and break. - Add workspaces/main/pop_punk_drums.track (3 patterns, 4-bar sequence) - Add workspaces/main/track.md (notation reference) - Update workspace.cfg to use pop_punk_drums.track - Update BPM to 165 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-12Timeline editor: CPU load visualization + UX improvementsskal
Features: - CPU load bar: Color-coded (green→yellow→red) effect density visualization - Overlays under waveform to save space, always visible - Constant load (1.0) per active effect, 0.1 beat resolution - Add Effect button: Create new effects in selected sequence - Delete buttons in properties panel for quick access - Timeline favicon (green bars SVG) Fixes: - Handle drag no longer jumps on mousedown (offset tracking) - Sequence name input accepts numbers (explicit inputmode) - Start Time label corrected (beats, not seconds) Updated timeline.seq with beat-based timing adjustments. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-12feat: implement beat-based timing systemskal
BREAKING CHANGE: Timeline format now uses beats as default unit ## Core Changes **Uniform Structure (32 bytes maintained):** - Added `beat_time` (absolute beats for musical animation) - Added `beat_phase` (fractional 0-1 for smooth oscillation) - Renamed `beat` → `beat_phase` - Kept `time` (physical seconds, tempo-independent) **Seq Compiler:** - Default: all numbers are beats (e.g., `5`, `16.5`) - Explicit seconds: `2.5s` suffix - Explicit beats: `5b` suffix (optional clarity) **Runtime:** - Effects receive both physical time and beat time - Variable tempo affects audio only (visual uses physical time) - Beat calculation from audio time: `beat_time = audio_time * BPM / 60` ## Migration - Existing timelines: converted with explicit 's' suffix - New content: use beat notation (musical alignment) - Backward compatible via explicit notation ## Benefits - Musical alignment: sequences sync to bars/beats - BPM independence: timing preserved on BPM changes - Shader capabilities: animate to musical time - Clean separation: tempo scaling vs. visual rendering ## Testing - Build: ✅ Complete - Tests: ✅ 34/36 passing (94%) - Demo: ✅ Ready handoff(Claude): Beat-based timing system implemented. Variable tempo only affects audio sample triggering. Visual effects use physical_time (constant) and beat_time (musical). Shaders can now animate to beats. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-12add trained layersskal
+misc
2026-02-10udpate CNN shader code.skal
2026-02-10update timeline.seqskal
2026-02-10feat: Add Scene1 effect from ShaderToy (raymarching cube & sphere)skal
Converted ShaderToy shader (Saturday cubism experiment) to Scene1Effect following EFFECT_WORKFLOW.md automation guidelines. **Changes:** - Created Scene1Effect (.h, .cc) as scene effect (not post-process) - Converted GLSL to WGSL with manual fixes: - Replaced RESOLUTION/iTime with uniforms.resolution/time - Fixed const expressions (normalize not allowed in const) - Converted mainImage() to fs_main() return value - Manual matrix rotation for scene transformation - Added shader asset to workspaces/main/assets.txt - Registered in CMakeLists.txt (both GPU_SOURCES sections) - Added to demo_effects.h and shaders declarations - Added to timeline.seq at 22.5s for 10s duration - Added to test_demo_effects.cc scene_effects list **Shader features:** - Raymarching cube and sphere with ground plane - Reflections and soft shadows - Sky rendering with sun and horizon glow - ACES tonemapping and sRGB output - Time-based rotation animation **Tests:** All effects tests passing (5/9 scene, 9/9 post-process) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10chore: Remove incomplete CubeSphere effectskal
Remove incomplete ShaderToy conversion that was blocking builds: - Removed include from src/gpu/demo_effects.h - Removed shader asset from workspaces/main/assets.txt - Removed effect reference from timeline.seq - Deleted incomplete effect files (.h, .cc, .wgsl) Effect remains disabled in CMakeLists.txt and can be re-added when conversion is complete. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10docs: Fix EFFECT keyword syntax and add automation-friendly workflowskal
Fix EFFECT keyword format across all documentation and scripts - priority modifier (+/=/–) is required but was missing from examples. **Documentation fixes:** - doc/HOWTO.md: Added missing + to EFFECT example - doc/RECIPE.md: Added priority modifiers to examples - tools/shadertoy/README.md: Fixed test path, clarified workflow - tools/shadertoy/convert_shadertoy.py: Updated output instructions **New automation guide:** - doc/EFFECT_WORKFLOW.md: Complete step-by-step checklist for AI agents - Exact file paths and line numbers - Common issues and fixes - Asset ID naming conventions - CMakeLists.txt dual-section requirement - Test list instructions (post_process_effects vs scene_effects) **Integration:** - CLAUDE.md: Added EFFECT_WORKFLOW.md to Tier 2 (always loaded) - doc/AI_RULES.md: Added "Adding Visual Effects" quick reference - README.md: Added EFFECT_WORKFLOW.md to documentation list **CMakeLists.txt:** - Disabled incomplete cube_sphere_effect.cc (ShaderToy conversion WIP) **Timeline:** - Commented out incomplete CubeSphereEffect - Removed obsolete constructor argument Fixes #issue-with-effect-syntax Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-10udpateskal
2026-02-10update timelineskal
2026-02-10feat: Add multi-layer CNN support with framebuffer capture and blend controlskal
Implements automatic layer chaining and generic framebuffer capture API for multi-layer neural network effects with proper original input preservation. Key changes: - Effect::needs_framebuffer_capture() - generic API for pre-render capture - MainSequence: auto-capture to "captured_frame" auxiliary texture - CNNEffect: multi-layer support via layer_index/total_layers params - seq_compiler: expands "layers=N" to N chained effect instances - Shader: @binding(4) original_input available to all layers - Training: generates layer switches and original input binding - Blend: mix(original, result, blend_amount) uses layer 0 input Timeline syntax: CNNEffect layers=3 blend=0.7 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09feat: Add workspace header comments to config filesskal
Add `# WORKSPACE: <name>` header to all workspace config files: - timeline.seq - music.track - assets.txt Format: First line contains workspace identifier. Editors must preserve this header comment. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09feat: Implement workspace system (Task #77)skal
Self-contained workspaces for parallel demo development. Structure: - workspaces/main,test - Demo-specific resources - assets/common - Shared resources - workspace.cfg - Configuration per workspace CMake integration: - DEMO_WORKSPACE option (defaults to main) - cmake/ParseWorkspace.cmake - Config parser - Workspace-relative asset/timeline/music paths Migration: - Main demo: demo.seq to workspaces/main/timeline.seq - Test demo: test_demo.seq to workspaces/test/timeline.seq - Common shaders: assets/common/shaders - Workspace shaders: workspaces/*/shaders Build: cmake -B build -DDEMO_WORKSPACE=main cmake -B build_test -DDEMO_WORKSPACE=test All tests passing (36/36). handoff(Claude): Task #77 workspace system complete. Both main and test workspaces build and pass all tests. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>