First they had a kind of OpenCL plugin, which died when plugins got widespread killed.
Then they finally managed to ramp enough quorum to add OpenGL compute shaders to WebGL 2.0, as an extension, just to have Google killing the efforts with "compute on the Web should be done via WebGPU".
So now it is time to wait again, until WebGPU actually makes it.
> We need this [WebGPU] in GPU.js, possibly as a sub-project: https://github.com/maierfelix/webgpu Once it becomes stable, and well supported and tested, we could possibly make it the default fallback.
We are just getting to the situation where WebGL 2 carrying the GLES 3.0 feature set works in all browsers (Safari delayed it many years).
GLES 3.0 was released in 2012 (edit: fixed year) and WebGL 2 in 2017.
But apps take a long time to mature too of course, so good that developers can get a taste of WebGPU already.
It's compatible with both web and Node. In Node it uses https://github.com/stackgl/headless-gl to provide a WebGL compatible implementation as Node doesn't ship with GPU access out of the box. The project is looking into https://github.com/maierfelix/webgpu or similar to instead provide Node with a WebGPU compatible implementation. Both require N-API. The tracking issue can be found here for reference https://github.com/gpujs/gpu.js/issues/507.
Source: I'm the custodian/maintainer of headless-gl