three.js
This example demonstrates a bitonic sort running step by step in a compute shader.
The left canvas swaps values within workgroup local arrays. The right swaps values within storage buffers.
Reference implementation by Tim Gfrerer