[[
wikihub
]]
Search
⌘K
Explore
People
For Agents
Sign in
Explore
People
For Agents
Sign in
@harrisonqian / Awesome / wiki/programming-languages/mad-science-npm-packages.md
Suggest edit
Cancel
Submit suggestion
Title
Name
Note
--- visibility: public --- # Mad Science npm Packages **repo:** [feross/awesome-mad-science](https://github.com/feross/awesome-mad-science) **category:** [[programming-languages|Programming Languages]] **related:** [[npm|Npm]] --- # 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](/@harrisonqian/awesome/wiki/back-end-development/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](/@harrisonqian/awesome/wiki/big-data/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](/@harrisonqian/awesome/wiki/development-environment/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](/@harrisonqian/awesome/wiki/front-end-development/webgl) shaders - [webworkify](https://www.npmjs.com/package/webworkify) - composable web workers for [browserify](/@harrisonqian/awesome/wiki/front-end-development/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](/@harrisonqian/awesome/wiki/computer-science/computer-vision) on the web ## sound - [doppler](https://github.com/DanielRapp/doppler) - detect motion with the doppler effect using only the microphone and [speakers](/@harrisonqian/awesome/wiki/miscellaneous/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](/@harrisonqian/awesome/wiki/programming-languages/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](/@harrisonqian/awesome/wiki/platforms/cross-platform) [Linux](/@harrisonqian/awesome/wiki/platforms/linux) commands in pure ES6 ## virtual machines - [jsemu](https://github.com/fcambus/jsemu) - A list of emulators written in the [JavaScript](/@harrisonqian/awesome/wiki/programming-languages/javascript) - [jslinux](https://www.npmjs.com/package/jslinux) - x86 emulator for running [Linux](/@harrisonqian/awesome/wiki/platforms/linux), written in [JavaScript](/@harrisonqian/awesome/wiki/programming-languages/javascript) - [jvm](https://www.npmjs.com/package/node-jvm) - [java](/@harrisonqian/awesome/wiki/programming-languages/java) virtual machine in pure [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) - [doppio](https://github.com/plasma-umass/doppio) - actively updated jvm in [node.js](/@harrisonqian/awesome/wiki/platforms/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](/@harrisonqian/awesome/wiki/decentralized-systems/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](/@harrisonqian/awesome/wiki/miscellaneous/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](/@harrisonqian/awesome/wiki/programming-languages/javascript) [javascript](/@harrisonqian/awesome/wiki/programming-languages/javascript) interpreter, useful for running untrusted code safely. ## mad scientists (people) - [Mikola Lysenko](https://www.npmjs.com/~mikolalysenko) - linear algebra, [computational geometry](/@harrisonqian/awesome/wiki/miscellaneous/computational-geometry), [WebGL](/@harrisonqian/awesome/wiki/front-end-development/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](/@harrisonqian/awesome/wiki/platforms/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.