<commit_before>## animate.js
a configurable javascript animation library; designed for use with https://github.com/pixijs/pixi.js, https://github.com/davidfig/update/, and https://github.com/davidfig/debug/

## Code Example

        // initialize Debug and Update -- this is only needed for the debug panels on the bottom right
        Debug.init();
        Update.init();

        // set up pixi and shapes
        var renderer, stage, red, green, blue, sprite;
        pixi();

        // red triangle fades, moves, and scales; repeats and reverses forever
        Animate.to(red, {alpha: 0.1, x: 500, y: 500, scale: {x: 5, y: 5}}, 1000,
            {repeat: true, reverse: true}, Easing.easeInOutSine);

        // green triangle moves, rotates, and fades when done
        Animate.to(green, {x: 50, y: 400, rotation: 2 * Math.PI}, 2500,
            {reverse: true, onDone: function (object) { Animate.to(object, {alpha: 0}, 2000); }}, Easing.easeInSine);

        // blue triangle spins forever
        Animate.to(blue, {rotation: -2 * Math.PI}, 1000, {continue: true});

        // circle changes from blue to red and reverse and repeats
        Animate.tint(sprite, 0xff0000, 2000, {repeat: true, reverse: true});

        // circle also shakes forever, it starts after 1 second
        Animate.shake(sprite, 5, 0, {repeat: true, wait: 1000});

        // render loop<commit_msg>can't stop tweaking<commit_after>## animate.js
a configurable javascript animation library; designed for use with https://github.com/pixijs/pixi.js, https://github.com/davidfig/update/, and https://github.com/davidfig/debug/

## Example

        // initialize Debug and Update -- this is only needed for the debug panels on the bottom right
        Debug.init();
        Update.init();

        // set up pixi and shapes
        var renderer, stage, red, green, blue, sprite;
        pixi();

        // red triangle fades, moves, and scales; repeats and reverses forever
        Animate.to(red, {alpha: 0.1, x: 500, y: 500, scale: {x: 5, y: 5}}, 1000,
            {repeat: true, reverse: true}, Easing.easeInOutSine);

        // green triangle moves, rotates, and fades when done
        Animate.to(green, {x: 50, y: 400, rotation: 2 * Math.PI}, 2500,
            {reverse: true, onDone: function (object) { Animate.to(object, {alpha: 0}, 2000); }}, Easing.easeInSine);

        // blue triangle spins forever
        Animate.to(blue, {rotation: -2 * Math.PI}, 1000, {continue: true});

        // circle changes from blue to red and reverse and repeats
        Animate.tint(sprite, 0xff0000, 2000, {repeat: true, reverse: true});

        // circle also shakes forever, it starts after 1 second
        Animate.shake(sprite, 5, 0, {repeat: true, wait: 1000});

        // render loop
{'fraction_non_alphanumeric': 0.12883435582822086, 'fraction_numerical': 0.03608805485384338, 'mean_word_length': 2.618798955613577, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2026453', 'n_tokens_mistral': 941, 'n_tokens_neox': 807, 'n_words': 298}