<commit_before># Rekapi - Keyframes for JavaScript

Rekapi is a keyframe animation library for JavaScript.  It gives you:

* A keyframe-based Model by which to structure an animation
* Controller APIs to control the playback of an animation

Rekapi does not define drawing methods.  That part is completely generic, and
the library exposes a common interface for defining Views.

Rekapi has two dependencies:
[Underscore](https://github.com/documentcloud/underscore) and
[Shifty](https://github.com/jeremyckahn/shifty).

Please note:  Rekapi is a rewrite of
[Kapi](https://github.com/jeremyckahn/kapi). Rekapi is very similar to Kapi,
but they are not identical.  Rekapi is not a drop-in replacement for Kapi.
Rekapi is way awesomer, so you should use it instead.

The API may change somewhat before reaching 1.0.  __[See how to upgrade from
older versions.](docs/upgrading.md)__.

__[Please see the getting started guide](docs/getting_started.md)__.

## What is keyframing?

Keyframing is an animation technique for defining states at specific points in
time. Animations are always rendered as frames to the screen, and keyframing
allows you to define the key points at which the motion in the animation
changes - all of the frames that exist between those points are interpolated
for you.  It is a powerful way to construct a complex animation.

## How do I use Rekapi?

A Rekapi animation is structured into a Model and Views, with Controller
methods to manage the playback. Its usage boils down to four steps:

* Define some `Kapi.Actor` Views<commit_msg>Fixes broken links in README.md.<commit_after># Rekapi - Keyframes for JavaScript

Rekapi is a keyframe animation library for JavaScript.  It gives you:

* A keyframe-based Model by which to structure an animation
* Controller APIs to control the playback of an animation

Rekapi does not define drawing methods.  That part is completely generic, and
the library exposes a common interface for defining Views.

Rekapi has two dependencies:
[Underscore](https://github.com/documentcloud/underscore) and
[Shifty](https://github.com/jeremyckahn/shifty).

Please note:  Rekapi is a rewrite of
[Kapi](https://github.com/jeremyckahn/kapi). Rekapi is very similar to Kapi,
but they are not identical.  Rekapi is not a drop-in replacement for Kapi.
Rekapi is way awesomer, so you should use it instead.

The API may change somewhat before reaching 1.0.  __[See how to upgrade from
older versions.](blob/master/docs/upgrading.md)__.

__[Please see the getting started 
guide](blob/master/docs/getting_started.md)__.

## What is keyframing?

Keyframing is an animation technique for defining states at specific points in
time. Animations are always rendered as frames to the screen, and keyframing
allows you to define the key points at which the motion in the animation
changes - all of the frames that exist between those points are interpolated
for you.  It is a powerful way to construct a complex animation.

## How do I use Rekapi?

A Rekapi animation is structured into a Model and Views, with Controller
methods to manage the playback. Its usage boils down to four steps:

* Define some `Kapi.Actor` Views
{'fraction_non_alphanumeric': 0.05755850727387729, 'fraction_numerical': 0.001265022137887413, 'mean_word_length': 4.472318339100346, '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': '5227017', 'n_tokens_mistral': 892, 'n_tokens_neox': 866, 'n_words': 439}