// the find
VictorTaelin/WebMonkeys
Massively parallel GPU programming on JavaScript, simple and clean.
WebMonkeys wraps WebGL compute into a minimal JavaScript API — you write GLSL kernels, it handles the texture packing and shader plumbing. It targets browser and Node.js environments where WebGPU isn't available and you need parallel computation without writing raw WebGL.
The API surface is genuinely tiny: set/get/work covers the whole model, and the GLSL extension for array indexing (`foo(i) := v`) is a clean idea that hides the texture coordinate math. Shader caching is smart — passing the same source string reuses the compiled program with O(1) string hash lookup, so calling work() in a render loop is viable. It requires no WebGL extensions, which means it runs on older devices and Safari without feature detection gymnastics. The raw Uint32 buffer escape hatch is the right call for applications where the float encode/decode overhead matters.
This is effectively abandoned — last commit was 2023, and it's built on WebGL 1.0 / GLSL 1.0 at a time when WebGPU has shipped in Chrome and Firefox. The float-only data model (numbers stored as IEEE 754 in texture pixels) means you can't do integer arithmetic without manual bit manipulation, which is a real problem for anything beyond toy compute tasks. The setter-must-be-at-end constraint enforced by a self-described 'very simple parser' is a sharp edge that produces silent wrong results rather than errors — the fix being 'add a commented semicolon' is a red flag. There's no TypeScript, no tests, and the examples directory is the entire test suite.