Add S-expression based video effects pipeline with modular effect definitions, constructs, and recipe files. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
19 lines
809 B
Common Lisp
19 lines
809 B
Common Lisp
;; Kaleidoscope effect - mandala-like symmetry patterns
|
|
;; @param segments int [3, 16] default 6
|
|
;; @param rotation float [0, 360] default 0
|
|
;; @param rotation_speed float [-180, 180] default 0
|
|
;; @param center_x float [0, 1] default 0.5
|
|
;; @param center_y float [0, 1] default 0.5
|
|
;; @param zoom float [0.5, 3] default 1
|
|
|
|
(define-effect kaleidoscope
|
|
((segments 6) (rotation 0) (rotation_speed 0) (center_x 0.5) (center_y 0.5) (zoom 1))
|
|
(let* ((w (width frame))
|
|
(h (height frame))
|
|
(cx (* w center_x))
|
|
(cy (* h center_y))
|
|
;; Total rotation including time-based animation
|
|
(total_rot (+ rotation (* rotation_speed (or _time 0))))
|
|
(coords (kaleidoscope-displace w h segments total_rot cx cy zoom)))
|
|
(remap frame (coords-x coords) (coords-y coords))))
|