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