frame.js is a tiny utility for orchestrating frame-based animations with requestAnimationFrame while keeping code clean and predictable. It abstracts the boilerplate of setting up a render loop, tracking elapsed time, and updating callbacks at the right cadence. By providing a simple lifecycle—start, stop, tick—it encourages separation between state updates and rendering, which is essential for smooth visuals. The library aims to be unobtrusive: you can drop it into demos or prototypes without adopting a large framework. Because it centralizes timing, it becomes easier to coordinate multiple animated elements or throttle work on low-power devices. For creative coding, micro-games, and UI flourishes, it offers just enough structure to keep animation code tidy.
Features
- Thin wrapper around requestAnimationFrame with start and stop control
- Consistent tick function that passes delta time for smooth motion
- Centralized loop management for coordinating multiple animations
- Encourages clear separation between update and render steps
- Minimal API designed for demos, prototypes, and micro-games
- Plays nicely with canvas, WebGL, DOM, and other rendering targets