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