cannon-es-control
v0.0.4
Published
A lightweight 3D physics engine written in JavaScript with control system tools
Downloads
47
Maintainers
Readme
cannon-es
This is a maintained fork of cannon.js, originally created by Stefan Hedman @schteppe.
It's a type-safe flatbundle (esm and cjs) which allows for tree shaking and usage in modern environments.
These minor changes and improvements were also made:
- These PRs from the original repo were merged: schteppe/cannon.js#433, schteppe/cannon.js#430, schteppe/cannon.js#418, schteppe/cannon.js#360, schteppe/cannon.js#265, schteppe/cannon.js#392, schteppe/cannon.js#424
- The
ConvexPolyhedron
constructor now accepts an object instead of a list of arguments. #6 - The
Cylinder
is now oriented on the Y axis. #30 - The
type
property of theCylinder
is now equal toShape.types.CYLINDER
. #59 Body.applyImpulse()
andBody.applyForce()
are now relative to the center of the body instead of the center of the world 86b0444- Sleeping bodies now wake up if a force or an impulse is applied to them #61
- Added a property
World.hasActiveBodies: boolean
which will be false when all physics bodies are sleeping. This allows for invalidating frames when physics aren't active for increased performance. - Add support for Trigger bodies. #83
- Deprecated properties and methods have been removed.
- The original cannon.js debugger, which shows the wireframes of each body, has been moved to its own repo cannon-es-debugger.
If instead you're using three.js in a React environment with react-three-fiber, check out use-cannon! It's a wrapper around cannon-es.
Installation
yarn add cannon-es
Usage
import { World } from 'cannon-es'
// ...
or, if you're using webpack, you can import it like this while still taking advantage of tree shaking:
import * as CANNON from 'cannon-es'
// ...
Documentation
Examples
TO DO:
- Fix Octree
as any
assertions, and removeas any
type assertions wherever possible - Remove use of defined assertion (!) where possible (profile performance to ensure no degradation)
- Convert to abstract classes where possible (Equation, Solver, etc.?)
- V-HACD support (https://github.com/pmndrs/use-cannon/issues/35#issuecomment-600188994)
- Explore performance enhancements:
- https://github.com/RandyGaul/qu3e
- https://github.com/RandyGaul/cute_headers
- https://github.com/TheRohans/dapao/issues?q=is%3Aissue
- https://github.com/swift502/Sketchbook/commits/master/src/lib/cannon/cannon.js
- https://github.com/schteppe/cannon.js/pulls