Replace batch DAG system with streaming architecture
- Remove legacy_tasks.py, hybrid_state.py, render.py - Remove old task modules (analyze, execute, execute_sexp, orchestrate) - Add streaming interpreter from test repo - Add sexp_effects with primitives and video effects - Add streaming Celery task with CID-based asset resolution - Support both CID and friendly name references for assets - Add .dockerignore to prevent local clones from conflicting Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
28
templates/scan-oscillating-spin.sexp
Normal file
28
templates/scan-oscillating-spin.sexp
Normal file
@@ -0,0 +1,28 @@
|
||||
;; Oscillating Spin Scan
|
||||
;;
|
||||
;; Accumulates rotation angle on each beat, reversing direction
|
||||
;; periodically for an oscillating effect.
|
||||
;;
|
||||
;; Required context:
|
||||
;; - music: audio analyzer from (streaming:make-audio-analyzer ...)
|
||||
;;
|
||||
;; Provides scan: spin
|
||||
;; Bind with: (bind spin :angle) ;; cumulative rotation angle
|
||||
;;
|
||||
;; Behavior:
|
||||
;; - Rotates 14.4 degrees per beat (completes 360 in 25 beats)
|
||||
;; - After 20-30 beats, reverses direction
|
||||
;; - Creates a swinging/oscillating rotation effect
|
||||
;;
|
||||
;; Usage:
|
||||
;; (include :path "../templates/scan-oscillating-spin.sexp")
|
||||
;;
|
||||
;; In frame:
|
||||
;; (rotate frame :angle (bind spin :angle))
|
||||
|
||||
(scan spin (streaming:audio-beat music t)
|
||||
:init {:angle 0 :dir 1 :left 25}
|
||||
:step (if (> left 0)
|
||||
(dict :angle (+ angle (* dir 14.4)) :dir dir :left (- left 1))
|
||||
(dict :angle angle :dir (* dir -1)
|
||||
:left (+ 20 (mod (streaming:audio-beat-count music t) 11)))))
|
||||
Reference in New Issue
Block a user