g9

g9 is a javascript library for creating **automatically interactive graphics**. github

With g9, interactive visualization is as easy as visualization that isn't. Just write a function which draws shapes based on data, and g9 will automatically figure out how to manipulate that data when you drag the shapes around.

For example, the following code:

g9({ x: 0, y: 0 }, function(data, ctx){ ctx.point(data.x, data.y) ctx.point(data.y, data.x) }) .insertInto('#container')

draws two dots at (x,y) and (y,x). With no additional effort, it's interactive - dragging either of the dots changes the value of x and y, and moves the other dot: […]

Let's see if we can run demos here in wiki. Move the dots around to recompute the image. docs