# jeremyckahn/shifty

The fastest TypeScript animation engine on the web

Repository: https://github.com/jeremyckahn/shifty
Canonical: https://ross.abutalabs.com/products/shifty
Homepage: https://jeremyckahn.github.io/shifty/doc/
Language: TypeScript
License: MIT
License Family: permissive
Topics: tweening-engine, animation, javascript, shifty, tweening, typescript
Last push: 2026-08-05T18:26:48+00:00

## Health v2 (maintenance only)
Score: 73/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 96, release rhythm 28, longevity 100
- inputs: {"age_days": 5584, "days_push": 28, "days_rel": 483, "gap_med": 31.0, "n_releases_24m": 3}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1553, forks 84 (observed 2026-08-28T04:05:02.896102+00:00)

## What it is
Shifty is a lightweight, high-performance TypeScript tweening engine for the web. It provides low-level tween playback control, extensibility hooks, and Promise-based async/await support while remaining renderer-agnostic.

## Use cases
- animate DOM elements with tweening
- build a custom animation library on a fast tweening core
- run async/await-based tween sequences
- animate canvas or other non-DOM renderers
- replace heavier animation frameworks like GSAP with a minimal engine
- create easing-based property interpolation in Node or the browser

## When to choose
- you need maximum animation performance with minimal memory overhead
- you want a low-level, unopinionated tweening engine to build higher-level tools on
- you prefer Promise/async-await driven animation flows
- you need renderer-agnostic tweens for DOM, canvas, or custom rendering

## When to avoid
- you need a full-featured animation platform with timelines, plugins, and UI tooling like GSAP
- you want a library that handles rendering for you out of the box
- you need Internet Explorer support in the latest version (use v2 instead)

## Facets
- artifact type: library
- maturity: stable
- function: animation
- domain: web-development, frontend, graphics
- platform: browser, cross-platform
- tags: tweening-engine, typescript, promise-based, renderer-agnostic, lightweight, nodejs

## Member repositories
- jeremyckahn/shifty (main) score 73

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:02.896102+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:30:09.107119+00:00, confidence not recorded.
  - readme: https://github.com/jeremyckahn/shifty (fetched 2026-08-28T04:05:02.896102+00:00, sha 4b8727abc0fc)
  - homepage: https://jeremyckahn.github.io/shifty/doc/ (fetched 2026-08-29T11:30:53.011752+00:00, sha 61c5daafaa1d)
  - registry_npm: https://registry.npmjs.org/shifty (fetched 2026-08-29T11:30:53.022456+00:00, sha 2ecac2780acd)
- Data as of 2026-08-30T08:39:29.467469+00:00.
