Did you guys investigate [browserify](https://github.com/substack/node-browserify)? I know you don't want to lock the project into a module and/or package system, but going the npm/browserify way simplify things a lot -- and d3.js supports it out-of-the-box. As far as I know this wouldn't lock the users as browserify can generate [UMD](https://github.com/umdjs/umd) files (--standalone). The [article of Kyle R.](http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html) is relevant as well.