From e4301a6a178bd589c3a7333367fcc0ce6f9e0a45 Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 9 Mar 2026 09:38:11 +0100 Subject: docs: streamline SEQUENCE.md (12 effects, remove v1 migration notes) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit handoff(Gemini): SEQUENCE.md updated - removed obsolete v1 migration notes, updated effect count 7→12, added absolute-time note, removed completed TODO items. Co-Authored-By: Claude Sonnet 4.6 --- doc/SEQUENCE.md | 40 +++++++++++----------------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/doc/SEQUENCE.md b/doc/SEQUENCE.md index 7055271..202bf09 100644 --- a/doc/SEQUENCE.md +++ b/doc/SEQUENCE.md @@ -1,6 +1,6 @@ # Sequence: DAG-based Effect Routing -**Status:** ✅ Operational +**Status:** Operational Explicit node system with DAG effect routing. @@ -9,9 +9,6 @@ Explicit node system with DAG effect routing. ```bash # Compile timeline python3 tools/seq_compiler.py workspaces/main/timeline.seq --output src/generated/timeline.cc - -# Flatten mode (future: inline effects, no vtables) -python3 tools/seq_compiler.py timeline.seq --output timeline.cc --flatten ``` ## Timeline Syntax @@ -41,6 +38,8 @@ SEQUENCE ["name"] **Reserved nodes**: `source` (input), `sink` (output) +**Effect times**: Absolute seconds. `seq_compiler` adds the sequence start offset automatically. + ### Examples **Simple chain:** @@ -133,9 +132,9 @@ class MyEffect : public Effect { WGPURenderPipeline pipeline_; UniformBuffer uniforms_; - MyEffect(const GpuContext& ctx, const std::vector& inputs, const std::vector& outputs); - const std::vector& outputs) - : Effect(ctx, inputs, outputs) { + MyEffect(const GpuContext& ctx, const std::vector& inputs, + const std::vector& outputs, float start, float end) + : Effect(ctx, inputs, outputs, start, end) { uniforms_.init(ctx_.device); pipeline_ = create_post_process_pipeline(ctx_.device, WGPUTextureFormat_RGBA8Unorm, @@ -184,38 +183,21 @@ params.aspect_ratio; // width/height ## Status & Limitations -**Implemented** ✅: +**Implemented:** - DAG validation, topological sort, ping-pong optimization - Multi-input/multi-output effects - Node aliasing (compile-time optimization) -- 7 effects ported (Passthrough, Placeholder, GaussianBlur, Heptagon, Particles, RotatingCube, Hybrid3D) +- 12 effects: Passthrough, Placeholder, GaussianBlur, Heptagon, Particles, RotatingCube, Hybrid3D, Flash, PeakMeter, Scene1, Scene2, Scratch -**Missing/Future** ❌: -- Flatten mode (--flatten generates same code as dev mode) +**Missing/Future:** +- Flatten mode (`--flatten` generates same code as dev mode) - BPM handling (parsed but ignored) - GetDemoDuration() calculation (hardcoded 40.0f) -- Sequence-relative time (uses global time) - Asset validation (not checked against AssetId enum) - Node type compatibility checking -**TODO**: -- Port remaining effects (10+ effects, CNN effects) -- Implement flatten mode (inline effects, direct members) -- ✅ ~~Update HTML timeline editor for graph visualization~~ (COMPLETED: 2026-02-17) - -## Migration Notes - -**Key Features**: -- V1: Implicit framebuffer ping-pong (framebuffer_a_ ↔ framebuffer_b_) -- Explicit node declarations with routing - -**Breaking Changes**: -- Effect base class standardized -- Constructor signature: `(GpuContext, inputs[], outputs[])` -- Render signature: Added `NodeRegistry& nodes` parameter -- No `is_post_process()` method (routing makes it explicit) +## See Also -**See Also**: - `doc/EFFECT_WORKFLOW.md` - Step-by-step effect creation - `tools/seq_compiler.py` - Compiler implementation - `workspaces/main/timeline.seq` - Example timeline -- cgit v1.2.3