[38;5;12m                               [39m[38;2;255;187;0m[1m[4mAwesome Mad Science [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://github.com/sindresorhus/awesome)[0m

[38;5;12mDelightful npm packages that make you say "wow, didn't know that was possible!" PRs welcome![39m

[38;2;255;187;0m[4mpeer-to-peer[0m
[38;5;12m- [39m[38;5;14m[1mpeerwiki[0m[38;5;12m (https://www.npmjs.com/package/peerwiki) - all of wikipedia on bittorrent[39m
[38;5;12m- [39m[38;5;14m[1msimple-peer[0m[38;5;12m (https://www.npmjs.com/package/simple-peer) - send video/voice/data p2p in the browser (with webrtc)[39m
[38;5;12m- [39m[38;5;14m[1mtorrent-docker[0m[38;5;12m (https://www.npmjs.com/package/torrent-docker) - realtime boot of remote docker images over bittorrent[39m
[38;5;12m- [39m[38;5;14m[1mtorrent-mount[0m[38;5;12m (https://www.npmjs.com/package/torrent-mount) - mount a torrent as a filesystem[39m
[38;5;12m- [39m[38;5;14m[1mwebtorrent[0m[38;5;12m (https://www.npmjs.com/package/webtorrent) - streaming torrent client for node & the browser[39m

[38;2;255;187;0m[4mbrowserify[0m
[38;5;12m- [39m[38;5;14m[1mbrfs[0m[38;5;12m (https://www.npmjs.com/package/brfs) - turn [39m[48;5;235m[38;5;249mfs.readFileSync()[49m[39m[38;5;12m calls into inlined static assets[39m
[38;5;12m- [39m[38;5;14m[1mbrowser field spec[0m[38;5;12m (https://gist.github.com/defunctzombie/4339901) - replace certain files/modules when a module is bundled for the browser[39m
[38;5;12m- [39m[38;5;14m[1mbrowserify[0m[38;5;12m (https://npmjs.org/package/browserify) - use [39m[48;5;235m[38;5;249mrequire()[49m[39m[38;5;12m in the browser[39m
[38;5;12m- [39m[38;5;14m[1mglslify[0m[38;5;12m (https://github.com/stackgl/glslify) - npm modules compiled into WebGL shaders[39m
[38;5;12m- [39m[38;5;14m[1mwebworkify[0m[38;5;12m (https://www.npmjs.com/package/webworkify) - composable web workers for browserify[39m

[38;2;255;187;0m[4mfiles[0m
[38;5;12m- [39m[38;5;14m[1mfile-type[0m[38;5;12m (https://www.npmjs.com/package/file-type) - detect file content types by checking their magic numbers[39m
[38;5;12m- [39m[38;5;14m[1mfuse4js[0m[38;5;12m (https://www.npmjs.com/package/fuse4js) - write filesystem driver in js[39m

[38;2;255;187;0m[4mgeometry[0m
[38;5;12m- [39m[38;5;14m[1malpha-shape[0m[38;5;12m (https://www.npmjs.com/package/alpha-shape) - any dimensional alpha shapes (think "concave" hull)[39m
[38;5;12m- [39m[38;5;14m[1mbox-intersect[0m[38;5;12m (https://www.npmjs.com/package/box-intersect) - fast any dimensional box intersection detection[39m
[38;5;12m- [39m[38;5;14m[1mconvex-hull[0m[38;5;12m (https://www.npmjs.com/package/convex-hull) - robust any dimensional convex hull[39m
[38;5;12m- [39m[38;5;14m[1mdelaunay-triangulate[0m[38;5;12m (https://www.npmjs.com/package/delaunay-triangulate) - robust any dimensional delaunay triangulation[39m
[38;5;12m- [39m[38;5;14m[1msurface-nets[0m[38;5;12m (https://www.npmjs.com/package/surface-nets) - extracts level sets in any dimension[39m
[38;5;12m- [39m[38;5;14m[1mvoronoi-diagram[0m[38;5;12m (https://www.npmjs.com/package/voronoi-diagram) - any dimensional voronoi diagrams[39m
[38;5;12m- [39m[38;5;14m[1mvoxelize[0m[38;5;12m (https://www.npmjs.com/package/voxelize) - voxelize a mesh[39m

[38;2;255;187;0m[4mhardware[0m
[38;5;12m- [39m[38;5;14m[1mcylon[0m[38;5;12m (https://www.npmjs.com/package/cylon) - command robots, devices, and more from node[39m

[38;2;255;187;0m[4mimages[0m
[38;5;12m- [39m[38;5;14m[1mindico.io[0m[38;5;12m (https://www.npmjs.com/package/indico.io) - facial emotion recognition and facial feature extraction[39m
[38;5;12m- [39m[38;5;14m[1mtrackingjs[0m[38;5;12m (https://trackingjs.com/) - computer vision on the web[39m

[38;2;255;187;0m[4msound[0m
[38;5;12m- [39m[38;5;14m[1mdoppler[0m[38;5;12m (https://github.com/DanielRapp/doppler) - detect motion with the doppler effect using only the microphone and speakers[39m
[38;5;12m- [39m[38;5;14m[1mspeak.js[0m[38;5;12m (https://github.com/mattytemple/speak-js) - text-to-speech on the web[39m

[38;2;255;187;0m[4mstreams[0m
[38;5;12m- [39m[38;5;14m[1mstrip-html[0m[38;5;12m (https://www.npmjs.com/package/strip-html) - strip html from a stream[39m

[38;2;255;187;0m[4mtext[0m
[38;5;12m- [39m[38;5;14m[1mdiff[0m[38;5;12m (https://www.npmjs.com/package/diff) - show text differences[39m
[38;5;12m- [39m[38;5;14m[1mfranc[0m[38;5;12m (https://www.npmjs.com/package/franc) - detect the language of text[39m
[38;5;12m- [39m[38;5;14m[1mindico.io[0m[38;5;12m (https://www.npmjs.com/package/indico.io) - political sentiment analysis[39m
[38;5;12m- [39m[38;5;14m[1mnode-tesseract[0m[38;5;12m (https://www.npmjs.com/package/node-tesseract) - A simple wrapper for the Tesseract OCR package[39m
[38;5;12m- [39m[38;5;14m[1mnormit[0m[38;5;12m (https://www.npmjs.com/package/normit) - Google translate text & speak it[39m
[38;5;12m- [39m[38;5;14m[1mocrad.js[0m[38;5;12m (https://www.npmjs.com/package/ocrad.js) - OCR in Javascript via Emscripten[39m
[38;5;12m- [39m[38;5;14m[1mpullquoter[0m[38;5;12m (https://www.npmjs.com/package/pullquoter) - pull interesting quotes out of an article[39m
[38;5;12m- [39m[38;5;14m[1msbd[0m[38;5;12m (https://www.npmjs.com/package/sbd) - split text into sentences[39m
[38;5;12m- [39m[38;5;14m[1msentiment[0m[38;5;12m (https://www.npmjs.com/package/sentiment) - basic sentiment analysis[39m

[38;2;255;187;0m[4mterminal[0m
[38;5;12m- [39m[38;5;14m[1mminimist[0m[38;5;12m (https://www.npmjs.com/package/minimist) - simple argument parser[39m
[38;5;12m- [39m[38;5;14m[1mprogress[0m[38;5;12m (https://www.npmjs.com/package/progress) - create a simple terminal progress bar[39m
[38;5;12m- [39m[38;5;14m[1mterminal-menu[0m[38;5;12m (https://www.npmjs.com/package/terminal-menu) - create retro terminal menus[39m
[38;5;12m- [39m[38;5;14m[1mvantage.js[0m[38;5;12m (https://github.com/dthree/vantage) - CLI + SSH + REPL for Node[39m
[38;5;12m- [39m[38;5;14m[1mcash[0m[38;5;12m (https://github.com/dthree/cash) - Cross-platform Linux commands in pure ES6[39m

[38;2;255;187;0m[4mvirtual machines[0m
[38;5;12m- [39m[38;5;14m[1mjsemu[0m[38;5;12m (https://github.com/fcambus/jsemu) - A list of emulators written in the JavaScript[39m
[38;5;12m- [39m[38;5;14m[1mjslinux[0m[38;5;12m (https://www.npmjs.com/package/jslinux) - x86 emulator for running Linux, written in JavaScript[39m
[38;5;12m- [39m[38;5;14m[1mjvm[0m[38;5;12m (https://www.npmjs.com/package/node-jvm) - java virtual machine in pure node.js[39m
[38;5;12m- [39m[38;5;14m[1mdoppio[0m[38;5;12m (https://github.com/plasma-umass/doppio) - actively updated jvm in node.js, written in TypeScript[39m

[38;2;255;187;0m[4mmisc[0m
[38;5;12m- [39m[38;5;14m[1mbell.js[0m[38;5;12m (https://www.npmjs.com/package/bell.js) - real-time anomalies detection for periodic time series.[39m
[38;5;12m- [39m[38;5;14m[1mbitcoinjs-lib[0m[38;5;12m (https://www.npmjs.com/package/bitcoinjs-lib) - bitcoin client for node & the browser[39m
[38;5;12m- [39m[38;5;14m[1mfastparallel[0m[38;5;12m (https://www.npmjs.com/package/fastparallel) - zero overhead parallel function calls[39m
[38;5;12m- [39m[38;5;14m[1mgoogle-distance[0m[38;5;12m (https://www.npmjs.com/package/google-distance) - calculate travel distance between two locations on earth using Google Maps' API[39m
[38;5;12m- [39m[38;5;14m[1mqr-image[0m[38;5;12m (https://www.npmjs.com/package/qr-image) - generate QR codes[39m

[38;2;255;187;0m[4mmeta-programming[0m

[38;5;12m- [39m[38;5;14m[1mnotevil[0m[38;5;12m (https://www.npmjs.com/package/notevil) - javascript javascript interpreter, useful for running untrusted code safely.[39m

[38;2;255;187;0m[4mmad scientists (people)[0m
[38;5;12m- [39m[38;5;14m[1mMikola Lysenko[0m[38;5;12m (https://www.npmjs.com/~mikolalysenko) - linear algebra, computational geometry, WebGL[39m
[38;5;12m- [39m[38;5;14m[1mDominic Tarr[0m[38;5;12m (https://www.npmjs.com/~dominictarr) - streams, distributed systems[39m
[38;5;12m- [39m[38;5;14m[1mElijah Insua[0m[38;5;12m (https://www.npmjs.com/~tmpvar) - NC machines, CAD/CAM[39m
[38;5;12m- [39m[38;5;14m[1mMathias Buus[0m[38;5;12m (https://github.com/mafintosh) - torrents in node, fuse bindings, data replication[39m
[38;5;12m- [39m[38;5;14m[1mFeross Aboukhadijeh[0m[38;5;12m (https://github.com/feross) - webtorrent, bittorrent, p2p hacks[39m
[38;5;12m- [39m[38;5;14m[1mMax Ogden[0m[38;5;12m (https://github.com/maxogden) - streams, voxels, data replication[39m

[38;2;255;187;0m[4mLicense[0m

[38;5;14m[1m![0m[38;5;12mCC0[39m[38;5;14m[1m (http://i.creativecommons.org/p/zero/1.0/88x31.png)[0m[38;5;12m (http://creativecommons.org/publicdomain/zero/1.0/)[39m

[38;5;12mTo the extent possible under law, [39m[38;5;14m[1mFeross Aboukhadijeh[0m[38;5;12m (http://feross.org) has waived all copyright and related or neighboring rights to this work.[39m
