That would be my instinct as well.. but I can’t speak to the design of cannon.js.
My anecdotal ranking of the physics engines in terms of complexity and quality are:
PhysX - made by nvidia.. robust and fast.. used in robotics and sciences.. so basically state of the art.. but isn’t targeted specifically at games.
Havok - fast and less robust, but sometimes more perceptually stable. It makes internal tradeoffs to keep it fast at the expense of accuracy, since it’s mainly targetting games. Docs are terrible/non-existent. The wasm/js bindings are still not super mature and can require a lot of digging to make it work stably.
Ammo - a port of Bullet which is quite robust and has been around for a Looong time, so very debugged.. but not quite as modern. A bit slower, but potentially more accurate. Better docs since it’s been around forever.
Rapier - a rust engine.. relatively new.. which makes me wary about it. It’s easy to make a new physics engine and claim high performance, while still missing a lot of important optimizations and architectural decisions that the larger engines have.. but it seems fast, and is used in r3f, so its getting lots of eyeballs/attention, which is good for getting the bugs out of a physics engine.
Cannon also falls into this category with the additional downside of being pure JS which means its forced to do 64 bit math in js, and it’s also a handrolled engine by ~1 guy.. so doesn’t have the historical legacy and complexity of the larger engines. It’s not “bad”, but I don’t have a very solid level of trust about it that I do with PhysX/Ammo.
Oimo - similar case as cannon.. (but more mature, but also a deader project).
Jolt is a special case.. It’s a less “mature” engine, but has the benefit of actually having been used in a commercial game (HZD) so you can extrapolate that if you’re target use case is similar.. and you can match how it was used in a commerical product, you may have good luck with it.
It’s a huuuge topic and there are a lot of anecdotal opinions. Feel free to DM me if you want to talk more about it.