← Back to Awesome

Sections

Mad Science npm Packages

GitHub repository ↗ synced 2026/8/9

Awesome Mad Science Awesome

Delightful npm packages that make you say "wow, didn't know that was possible!" PRs welcome!

peer-to-peer

peerwiki

all of wikipedia on bittorrent

simple-peer

send video/voice/data p2p in the browser (with webrtc)

torrent-docker

realtime boot of remote docker images over bittorrent

torrent-mount

mount a torrent as a filesystem

webtorrent

streaming torrent client for node & the browser

browserify

brfs

turn `fs.readFileSync()` calls into inlined static assets

browser field spec

replace certain files/modules when a module is bundled for the browser

browserify

use `require()` in the browser

glslify

npm modules compiled into WebGL shaders

webworkify

composable web workers for browserify

files

file-type

detect file content types by checking their magic numbers

fuse4js

write filesystem driver in js

geometry

alpha-shape

any dimensional alpha shapes (think "concave" hull)

box-intersect

fast any dimensional box intersection detection

convex-hull

robust any dimensional convex hull

delaunay-triangulate

robust any dimensional delaunay triangulation

surface-nets

extracts level sets in any dimension

voronoi-diagram

any dimensional voronoi diagrams

voxelize

voxelize a mesh

hardware

cylon

command robots, devices, and more from node

images

indico.io

facial emotion recognition and facial feature extraction

trackingjs

computer vision on the web

sound

doppler

detect motion with the doppler effect using only the microphone and speakers

speak.js

text-to-speech on the web

streams

strip-html

strip html from a stream

text

diff

show text differences

franc

detect the language of text

indico.io

political sentiment analysis

node-tesseract

A simple wrapper for the Tesseract OCR package

normit

Google translate text & speak it

ocrad.js

OCR in Javascript via Emscripten

pullquoter

pull interesting quotes out of an article

sbd

split text into sentences

sentiment

basic sentiment analysis

terminal

minimist

simple argument parser

progress

create a simple terminal progress bar

terminal-menu

create retro terminal menus

vantage.js

CLI + SSH + REPL for Node

cash

Cross-platform Linux commands in pure ES6

virtual machines

jsemu

A list of emulators written in the JavaScript

jslinux

x86 emulator for running Linux, written in JavaScript

jvm

java virtual machine in pure node.js

doppio

actively updated jvm in node.js, written in TypeScript

misc

bell.js

real-time anomalies detection for periodic time series.

bitcoinjs-lib

bitcoin client for node & the browser

fastparallel

zero overhead parallel function calls

google-distance

calculate travel distance between two locations on earth using Google Maps' API

qr-image

generate QR codes

meta-programming

notevil

javascript javascript interpreter, useful for running untrusted code safely.

mad scientists (people)

Mikola Lysenko

linear algebra, computational geometry, WebGL

Dominic Tarr

streams, distributed systems

Elijah Insua

NC machines, CAD/CAM

Mathias Buus

torrents in node, fuse bindings, data replication

Feross Aboukhadijeh

webtorrent, bittorrent, p2p hacks

Max Ogden

streams, voxels, data replication