I am aware there are already libraries that can draw to multiple contexts interchangeably, but I've added a few little niceties to Ripl that (as far as I know) some other libraries don't have such as CSS-like query selectors, DOM-like event bubbling, and keyframe animation support.
The project is far from done and not published to NPM yet, but there are a few demos and source that you can look at in the repo.
I'm happy with how it has come along and the things I've learnt along the way, especially the math. My dream would be to one day work on this full-time and build out a full data-viz library.