summaryrefslogtreecommitdiff
path: root/workspaces/main/timeline.seq
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-09 18:51:54 +0100
committerskal <pascal.massimino@gmail.com>2026-02-09 18:51:54 +0100
commit7790472dabfa0ecd06f3408d847860ec6072866e (patch)
tree5bce7b119f42d131daf746ddc052da2da5ff0650 /workspaces/main/timeline.seq
parent002ab9094f638c46d5db95d478e71c10933aceb2 (diff)
feat: Implement workspace system (Task #77)
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>
Diffstat (limited to 'workspaces/main/timeline.seq')
-rw-r--r--workspaces/main/timeline.seq120
1 files changed, 120 insertions, 0 deletions
diff --git a/workspaces/main/timeline.seq b/workspaces/main/timeline.seq
new file mode 100644
index 0000000..a8717f3
--- /dev/null
+++ b/workspaces/main/timeline.seq
@@ -0,0 +1,120 @@
+# ============================================================================
+# DEMO SEQUENCE DEFINITION
+# ============================================================================
+# Defines the timeline and layering of visual effects for the demo.
+# Compiled by seq_compiler into src/generated/timeline.cc at build time.
+#
+# DOCUMENTATION: See doc/SEQUENCE.md for complete syntax reference
+#
+# QUICK REFERENCE:
+# SEQUENCE <start> <priority> ["optional_name"] [optional_end]
+# EFFECT <+|=|-> <ClassName> <start> <end>
+#
+# Priority modifiers: + (increment), = (same), - (decrement/background)
+# Time notation: 0b (beats), 0.0 (seconds)
+# Optional name: Displayed in Gantt charts (e.g., "Opening Scene")
+#
+# VALIDATION & VISUALIZATION:
+# ./build/seq_compiler assets/demo.seq # Validate only
+# ./build/seq_compiler assets/demo.seq --gantt-html=t.html # HTML Gantt
+#
+# ============================================================================
+
+# BPM 120
+
+SEQUENCE 0b 0
+ EFFECT - FlashCubeEffect .2 3 # Background cube (priority -1 = behind everything)
+ EFFECT + FlashEffect 0.0 1. color=1.0,0.5,0.5 decay=0.95 # Red-tinted flash
+ EFFECT + FadeEffect 0.1 1. # Priority 1
+ EFFECT + SolarizeEffect 0 4b # Priority 2 (was 3, now contiguous)
+ EFFECT + VignetteEffect 0 6 radius=0.6 softness=0.1
+
+SEQUENCE 2.0 0
+ EFFECT + CircleMaskEffect 0.0 4.0 0.50 # Priority 0 mask generator
+ EFFECT + RotatingCubeEffect 0.0 4.0 # Priority 1 (renders inside circle)
+ EFFECT + GaussianBlurEffect 1.0 2.0 strength=1.0
+ EFFECT + GaussianBlurEffect 3.0 4.0 strength=2.0
+
+SEQUENCE 4b 0
+ EFFECT - FlashCubeEffect 0.1 3. # Priority -1
+ EFFECT + FlashEffect 0.0 0.2 # Priority 0 (was 4, now contiguous)
+
+SEQUENCE 6b 1
+ EFFECT + ParticleSprayEffect 0 4 # Priority 0 (spray particles)
+ EFFECT + ParticlesEffect 0 4 # Priority 1
+ EFFECT = GaussianBlurEffect 0 8 strength=3.0 # Priority 1 (stronger blur)
+
+SEQUENCE 7b 0
+ EFFECT + HeptagonEffect 0.0 .2 # Priority 0
+ EFFECT + FadeEffect 0.1 1.0 # Priority 1 (was 5, now contiguous)
+
+# Post-processing chain (priority 10 = applied after scene rendering)
+# Effects are applied in priority order: lower numbers first
+SEQUENCE 8b 3
+ EFFECT + ThemeModulationEffect 0 4 # Priority 0
+ EFFECT = HeptagonEffect 0.0 4.0 # Priority 0 (same layer)
+ EFFECT + GaussianBlurEffect 0 8 strength=1.5 # Priority 1 (subtle blur)
+ EFFECT + ChromaAberrationEffect 0 6 offset=0.03 angle=0.785 # Priority 2 (diagonal, stronger)
+ EFFECT + SolarizeEffect 0 10 # Priority 3
+
+SEQUENCE 12b 2
+ EFFECT - FlashCubeEffect .2 3 # Priority -1 (background)
+ EFFECT + HeptagonEffect 0 4 # Priority 0
+ EFFECT + ParticleSprayEffect 0 4 # Priority 1 (spray particles)
+ EFFECT + ParticlesEffect 0 4 # Priority 2
+
+SEQUENCE 15b 2
+ EFFECT - FlashCubeEffect .2 3 # Priority -1 (background)
+ EFFECT + FlashEffect 0.0 1 # Priority 0
+
+SEQUENCE 16b 10
+ EFFECT - FlashCubeEffect .2 3 # Priority -1 (background)
+ EFFECT + GaussianBlurEffect 0 8 # Priority 0
+ EFFECT + FlashEffect 0.0 0.2 # Priority 1
+ EFFECT = FlashEffect 1b 0.2 # Priority 1 (same layer)
+
+SEQUENCE 17b 2
+ EFFECT + ThemeModulationEffect 0 4 # Priority 0
+ EFFECT + HeptagonEffect 0.2 2.0 # Priority 1
+ EFFECT + ParticleSprayEffect 0 4 # Priority 2 (spray particles)
+ EFFECT = ParticlesEffect 0 4 # Priority 2 (same layer)
+ EFFECT + Hybrid3DEffect 0 4 # Priority 3
+ EFFECT + GaussianBlurEffect 0 8 # Priority 4
+ EFFECT + ChromaAberrationEffect 0 6 offset=0.01 angle=1.57 # Priority 5 (vertical, subtle)
+
+SEQUENCE 24b 1
+ EFFECT + ThemeModulationEffect 0 8 # Priority 0
+ EFFECT + HeptagonEffect 0.2 2.0 # Priority 1
+ EFFECT + ParticleSprayEffect 0 8 # Priority 2 (spray particles - longer duration)
+ EFFECT + Hybrid3DEffect 0 20 # Priority 3
+ EFFECT + GaussianBlurEffect 0 8 # Priority 4
+ EFFECT + ChromaAberrationEffect 0 10 # Priority 5
+ EFFECT + SolarizeEffect 0 10 # Priority 6
+
+SEQUENCE 32b 0
+ EFFECT + ThemeModulationEffect 0 4 # Priority 0
+ EFFECT + HeptagonEffect 0 16 # Priority 1
+ EFFECT + ChromaAberrationEffect 0 16 # Priority 2
+ EFFECT + GaussianBlurEffect 0 8 # Priority 3
+
+SEQUENCE 48b 0
+ EFFECT + ThemeModulationEffect 0 4 # Priority 0
+ EFFECT + HeptagonEffect 0.2 2.0 # Priority 1
+ EFFECT + GaussianBlurEffect 0 8 # Priority 2
+ EFFECT + SolarizeEffect 0 2 # Priority 3
+
+SEQUENCE 56b 0
+ EFFECT + ThemeModulationEffect 0 8 # Priority 0
+ EFFECT = HeptagonEffect 0.2 2.0 # Priority 0 (same layer)
+ EFFECT + Hybrid3DEffect 0 4 # Priority 1
+ EFFECT + ParticleSprayEffect 0 8 # Priority 2 (spray particles)
+ EFFECT + HeptagonEffect 0 16 # Priority 3
+ EFFECT + ChromaAberrationEffect 0 16 # Priority 4
+ EFFECT + GaussianBlurEffect 0 8 # Priority 5
+
+SEQUENCE 62b 0
+ EFFECT + ThemeModulationEffect 0 3 # Priority 0
+ EFFECT + VignetteEffect 0 3 radius=0.6 softness=0.3 # New effect
+ EFFECT + SolarizeEffect 0 3 # Priority 2
+# Demo automatically exits at this time (supports beat notation)
+END_DEMO 65b