A tiny (~2kb gzipped) platform for JavaScript creative coding.
A few examples from the showcase
sketch.js lets you get straight to the fun parts of creative coding, without ever having to worry about shims or boilerplate code.
It gives you a graphics context, an animation loop, normalised input events and a host of useful callbacks to hook into.
Here's an example:
Sketch.create({
setup: function() {
this.r = this.g = this.b = random( 100, 200 );
},
mousemove: function() {
this.r = 255 * ( this.mouse.x / this.width );
this.g = 255 * ( this.mouse.y / this.height );
this.b = 255 * abs( cos( PI * this.mouse.y / this.width ) );
},
draw: function() {
this.fillStyle = 'rgb(' + ~~this.r + ',' + ~~this.g + ',' + ~~this.b + ')';
this.fillRect( 0, 0, this.width, this.height );
}
});
- A sketch is an augmented drawing context (
CanvasRenderingContext2D
,WebGLRenderingContext
orHTMLElement
) so it has all the expected drawing methods built in. - The
mouse
property is also the first element of thetouches
array and vice versa, so you can code to one standard and get touch and multi-touch support for free. - The
update
anddraw
loops run on the browser animation frame and canstop
andstart
whenever you like. - You get fast access to
Math
functions and constants, plus extras like range and array enabledrandom
,map
andlerp
. - Simple and configurable. You can even bring your own
context
, so it works well with libraries like THREE.
For more information, check out the getting started guide, the API, the many examples in the showcase and the full source.