;; Trails effect - persistent motion trails (require-primitives "image" "blending") (define-effect trails :params ( (persistence :type float :default 0.8 :range [0 0.99]) ) (let* ((buffer (state-get "buffer" nil)) (current frame)) (if (= buffer nil) (begin (state-set "buffer" (copy frame)) frame) (let* ((faded (blending:blend-images buffer (make-image (image:width frame) (image:height frame) (list 0 0 0)) (- 1 persistence))) (result (blending:blend-mode faded current "lighten"))) (begin (state-set "buffer" result) result)))))