94 lines
5.9 KiB
Plaintext
94 lines
5.9 KiB
Plaintext
# Awesome Mad Science [](https://github.com/sindresorhus/awesome)
|
|
|
|
Delightful npm packages that make you say "wow, didn't know that was possible!" PRs welcome!
|
|
|
|
## peer-to-peer
|
|
- [peerwiki](https://www.npmjs.com/package/peerwiki) - all of wikipedia on bittorrent
|
|
- [simple-peer](https://www.npmjs.com/package/simple-peer) - send video/voice/data p2p in the browser (with webrtc)
|
|
- [torrent-docker](https://www.npmjs.com/package/torrent-docker) - realtime boot of remote docker images over bittorrent
|
|
- [torrent-mount](https://www.npmjs.com/package/torrent-mount) - mount a torrent as a filesystem
|
|
- [webtorrent](https://www.npmjs.com/package/webtorrent) - streaming torrent client for node & the browser
|
|
|
|
## browserify
|
|
- [brfs](https://www.npmjs.com/package/brfs) - turn `fs.readFileSync()` calls into inlined static assets
|
|
- [browser field spec](https://gist.github.com/defunctzombie/4339901) - replace certain files/modules when a module is bundled for the browser
|
|
- [browserify](https://npmjs.org/package/browserify) - use `require()` in the browser
|
|
- [glslify](https://github.com/stackgl/glslify) - npm modules compiled into WebGL shaders
|
|
- [webworkify](https://www.npmjs.com/package/webworkify) - composable web workers for browserify
|
|
|
|
## files
|
|
- [file-type](https://www.npmjs.com/package/file-type) - detect file content types by checking their magic numbers
|
|
- [fuse4js](https://www.npmjs.com/package/fuse4js) - write filesystem driver in js
|
|
|
|
## geometry
|
|
- [alpha-shape](https://www.npmjs.com/package/alpha-shape) - any dimensional alpha shapes (think "concave" hull)
|
|
- [box-intersect](https://www.npmjs.com/package/box-intersect) - fast any dimensional box intersection detection
|
|
- [convex-hull](https://www.npmjs.com/package/convex-hull) - robust any dimensional convex hull
|
|
- [delaunay-triangulate](https://www.npmjs.com/package/delaunay-triangulate) - robust any dimensional delaunay triangulation
|
|
- [surface-nets](https://www.npmjs.com/package/surface-nets) - extracts level sets in any dimension
|
|
- [voronoi-diagram](https://www.npmjs.com/package/voronoi-diagram) - any dimensional voronoi diagrams
|
|
- [voxelize](https://www.npmjs.com/package/voxelize) - voxelize a mesh
|
|
|
|
## hardware
|
|
- [cylon](https://www.npmjs.com/package/cylon) - command robots, devices, and more from node
|
|
|
|
## images
|
|
- [indico.io](https://www.npmjs.com/package/indico.io) - facial emotion recognition and facial feature extraction
|
|
- [trackingjs](https://trackingjs.com/) - computer vision on the web
|
|
|
|
## sound
|
|
- [doppler](https://github.com/DanielRapp/doppler) - detect motion with the doppler effect using only the microphone and speakers
|
|
- [speak.js](https://github.com/mattytemple/speak-js) - text-to-speech on the web
|
|
|
|
## streams
|
|
- [strip-html](https://www.npmjs.com/package/strip-html) - strip html from a stream
|
|
|
|
## text
|
|
- [diff](https://www.npmjs.com/package/diff) - show text differences
|
|
- [franc](https://www.npmjs.com/package/franc) - detect the language of text
|
|
- [indico.io](https://www.npmjs.com/package/indico.io) - political sentiment analysis
|
|
- [node-tesseract](https://www.npmjs.com/package/node-tesseract) - A simple wrapper for the Tesseract OCR package
|
|
- [normit](https://www.npmjs.com/package/normit) - Google translate text & speak it
|
|
- [ocrad.js](https://www.npmjs.com/package/ocrad.js) - OCR in Javascript via Emscripten
|
|
- [pullquoter](https://www.npmjs.com/package/pullquoter) - pull interesting quotes out of an article
|
|
- [sbd](https://www.npmjs.com/package/sbd) - split text into sentences
|
|
- [sentiment](https://www.npmjs.com/package/sentiment) - basic sentiment analysis
|
|
|
|
## terminal
|
|
- [minimist](https://www.npmjs.com/package/minimist) - simple argument parser
|
|
- [progress](https://www.npmjs.com/package/progress) - create a simple terminal progress bar
|
|
- [terminal-menu](https://www.npmjs.com/package/terminal-menu) - create retro terminal menus
|
|
- [vantage.js](https://github.com/dthree/vantage) - CLI + SSH + REPL for Node
|
|
- [cash](https://github.com/dthree/cash) - Cross-platform Linux commands in pure ES6
|
|
|
|
## virtual machines
|
|
- [jsemu](https://github.com/fcambus/jsemu) - A list of emulators written in the JavaScript
|
|
- [jslinux](https://www.npmjs.com/package/jslinux) - x86 emulator for running Linux, written in JavaScript
|
|
- [jvm](https://www.npmjs.com/package/node-jvm) - java virtual machine in pure node.js
|
|
- [doppio](https://github.com/plasma-umass/doppio) - actively updated jvm in node.js, written in TypeScript
|
|
|
|
## misc
|
|
- [bell.js](https://www.npmjs.com/package/bell.js) - real-time anomalies detection for periodic time series.
|
|
- [bitcoinjs-lib](https://www.npmjs.com/package/bitcoinjs-lib) - bitcoin client for node & the browser
|
|
- [fastparallel](https://www.npmjs.com/package/fastparallel) - zero overhead parallel function calls
|
|
- [google-distance](https://www.npmjs.com/package/google-distance) - calculate travel distance between two locations on earth using Google Maps' API
|
|
- [qr-image](https://www.npmjs.com/package/qr-image) - generate QR codes
|
|
|
|
## meta-programming
|
|
|
|
- [notevil](https://www.npmjs.com/package/notevil) - javascript javascript interpreter, useful for running untrusted code safely.
|
|
|
|
## mad scientists (people)
|
|
- [Mikola Lysenko](https://www.npmjs.com/~mikolalysenko) - linear algebra, computational geometry, WebGL
|
|
- [Dominic Tarr](https://www.npmjs.com/~dominictarr) - streams, distributed systems
|
|
- [Elijah Insua](https://www.npmjs.com/~tmpvar) - NC machines, CAD/CAM
|
|
- [Mathias Buus](https://github.com/mafintosh) - torrents in node, fuse bindings, data replication
|
|
- [Feross Aboukhadijeh](https://github.com/feross) - webtorrent, bittorrent, p2p hacks
|
|
- [Max Ogden](https://github.com/maxogden) - streams, voxels, data replication
|
|
|
|
## License
|
|
|
|
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
|
|
|
To the extent possible under law, [Feross Aboukhadijeh](http://feross.org) has waived all copyright and related or neighboring rights to this work.
|