For the time being, depending on threejs is likely a good choice, in order to focus on figuring out requirements and defining a nice API. I am, however, tempted to implement a renderer in WebGPU, taking advantage of improved graphics capabilities (and compute). The vision of making a library that has zero dependencies (the gl-matrix is small enough to simply include in the source) and uses only browser APIs is cool, too.
Pros (of webgpu vs webgl/threejs renderer):
easier and more efficient to implement impostor rendering (can use storage buffers)
could result in a simpler code with appropriate abstractions (not tailoring for general game/graphics use cases)
no dependencies
Cons:
departing from a huge developer community
will take time to implement and chase down bugs
webgpu is still evolving and not available by default in some browsers
For the time being, depending on threejs is likely a good choice, in order to focus on figuring out requirements and defining a nice API. I am, however, tempted to implement a renderer in WebGPU, taking advantage of improved graphics capabilities (and compute). The vision of making a library that has zero dependencies (the gl-matrix is small enough to simply include in the source) and uses only browser APIs is cool, too.
Pros (of webgpu vs webgl/threejs renderer):
Cons: