A tiny cross-platform JavaScript framework for creative coding with canvas and WebGL.
sketch.js is a lightweight JavaScript framework for creative coding that provides a graphics context, animation loop, and normalized input events. It solves the problem of repetitive setup and browser inconsistencies when building interactive visual experiments, allowing developers to start coding visual projects immediately.
Creative coders, visual artists, and JavaScript developers building interactive graphics, animations, generative art, or experimental web-based visual projects.
Developers choose sketch.js for its minimal footprint (~2kb gzipped), zero-boilerplate approach, and unified handling of drawing contexts and input events, making it ideal for rapid visual prototyping without sacrificing flexibility.
Cross-Platform JavaScript Creative Coding Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
At ~2kb gzipped, it minimizes load times and overhead, making it ideal for performance-sensitive creative projects.
Normalizes mouse and touch events into a single interface, simplifying code for cross-platform interactive graphics with automatic multi-touch support.
Provides synchronized update and draw cycles via requestAnimationFrame, eliminating boilerplate code for animation management.
Includes range-enabled random, map, and lerp functions, accelerating common creative coding tasks beyond standard Math operations.
Allows custom context injection, enabling seamless use with libraries like THREE.js for advanced WebGL projects without conflicts.
Focused solely on creative coding, it lacks features for general web development such as routing, state management, or UI components.
As a small project, it has fewer tutorials, plugins, and community resources compared to frameworks like p5.js, which can slow down problem-solving.
While it handles common browser inconsistencies, advanced users may find it insufficient for edge cases or newer APIs, requiring manual workarounds.
With infrequent updates, it might not keep pace with evolving web standards or browser changes, posing risks for long-term projects.