| Age | Commit message (Collapse) | Author |
|
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
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>
|
|
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>
|
|
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>
|