;; 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)))))