index.html is a mostly working demo of everything ive backported so far
ignore my overuse of eval() and questionable spacing pls