# spite/ccapture.js

A library to capture canvas-based animations at a fixed framerate

Repository: https://github.com/spite/ccapture.js
Canonical: https://ross.abutalabs.com/products/ccapturejs
Language: JavaScript
License: MIT
License Family: permissive
Topics: capture, javascript, canvas, video, webm, gif, png, jpg, ffmpeg
Last push: 2026-07-27T23:40:51+00:00

## Health v2 (maintenance only)
Score: 84/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 94, release rhythm 63, longevity 100
- inputs: {"age_days": 5112, "days_push": 37, "days_rel": 37, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3765, forks 405 (observed 2026-08-28T04:08:18.031766+00:00)

## What it is
A JavaScript library that captures canvas-based animations at a fixed framerate by replacing the browser's clock with a virtual one, producing perfectly smooth video exports regardless of render speed. It supports modern encoders (WebCodecs) and formats like MP4, WebM, GIF, PNG, and JPG, with GPU motion blur.

## Use cases
- export a canvas animation as a smooth 60fps video
- record WebGL/WebGPU scenes to MP4 or WebM
- capture creative coding sketches as GIFs
- add motion blur to exported canvas animations
- record animations deterministically at fixed framerate regardless of render performance
- capture 4K frames that render slowly into flawless 60fps video

## When to choose
- you need deterministic, fixed-framerate video exports from canvas/WebGL animations
- your render loop is slower than real time but you still want smooth output
- you want motion blur and modern encoders like WebCodecs in the browser
- you want minimal code changes to an existing requestAnimationFrame loop

## When to avoid
- you need to capture the whole screen or DOM, not just a canvas
- you need real-time recording of live user interaction rather than deterministic playback
- you need server-side video encoding outside the browser

## Facets
- artifact type: library
- maturity: active
- function: video-processing, image-processing
- domain: web-development, graphics, media
- platform: browser
- tags: canvas, webgl, webgpu, webcodecs, motion-blur, fixed-framerate, video-export, gif, webm, mp4, creative-coding, javascript

## Member repositories
- spite/ccapture.js (main) score 84

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:18.031766+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-29T18:28:36.833648+00:00, confidence not recorded.
  - readme: https://github.com/spite/ccapture.js (fetched 2026-08-28T04:08:18.031766+00:00, sha d5dfaf2dfca6)
  - registry_npm: https://registry.npmjs.org/ccapture.js (fetched 2026-08-29T09:23:01.442261+00:00, sha 8cf19e388c7a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
