You maybe interested in a series of videos I have posted on YouTube outlining the steps for using the physics library CANNON.js with THREE.js to create a car racing game.
I made the THREE.js + CANNON.js character and car virtual experience (browser game engine) from your YouTube videos 4 - 5 years ago.
Cheers ![]()
Nice. I’m a fan of Rapier Physics these days. And the new Meta Immersive Kit uses Havok like Babylon and that’s amazing.
I still find CANNON.js faster and easier than any other JS physics, I am a fan of Rapier also (for gaming purpose), but now I am still using CANNON.js in it’s most optimized configurations. I am also exploring Rapier and Phy.js, I will probably (intending to) use Rapier on my next virtual experience engines, most of my architecture (urban design) projects still enjoys CANNON.js and its very efficient in handling massive and numerous quantity bodies using the sleep feature (handling city or small island scale environments).
As far as the project cash flows is still pouring and no demand for shift for a better physics I probably will stay with CANNON.js
I often find that the limitation of TriMesh only supporting Sphere collisions is a deal breaker for many projects.
Trimesh is a dead wall in CANNON.js, but I designed the 3d environment in way that it minimized the use of spheres on vehicle corners and character capsule, for an immersive virtual experience where the main avatar, don’t do too much physics except walking around and driving, CANNON.js trimesh and sphere is more than enough for touring and exploring architectural projects.
Spheres of influence are what gutting communities are all about!
Summary
Phaidon has several leather-bound books about design perception.
I dog-eared one step which suggests: a world of mostly 90-degree angles may be heavily optimized. For example, Metaverse meetings are much less dramatic than SpiderMan intros… those intravenous toxins travel in a subatomic polymorphic silk chain!
Rally cars (non-destructible cube colliders) have drastically different scalar constraints.
Rewind to canon Y2K, when novel physics had hype. Session users would then engage with their browser as if it were a barrier to infinite exploration (at home or in a cafe). A period Fortune500 Company may even showcase a sim of Virus Pong for a hit piece.
Now the reality for the user isn’t (mental or technical) budgetary naivety, and expectations have changed accordingly. In fact it’s common to offer user-facing selectors for FrameGen, TSAA, effect density… raising the issue of determinism! Any effort to reduce/reuse calls will logically result in some perceptible difference.
CounterStrike players vlog tirelessly about pixel-precise BHop. Ultimately you seed the automatons in some plausible harness. “Randomness” could be a feature or a bug, dependent upon the use case.
Sonic Racing tricks are silly looking because the emphasis isn’t on realism.
Fast-forward to 2025 Q3 sees renewed doubt that the bubble is sustainable, just as Q2 sees agentic AI finally capable of crawling the Internet.
Sleepy middle-managers have created desperation out of discrimination and accumulation.
It’s a multipolar environment… for BattleBots or non-destructible cube colliders!
~ Supplement “Pyram:Pyram” Dropdown
Here is a demo of a Cannon-es (v0.20.0), you race around this city which normally crash other JavaScript physics libraries.
Live demo: https://theneoverse.web.app/#threeviewer&&burn-city
This is achieve with Cannon worker SharedArrayBuffer: https://pmndrs.github.io/cannon-es/examples/worker_sharedarraybuffer
With this method the three.js render main thread is not affected by the cannon processes in several workers. It also works smoothly on mobile and tablet devices.
