All Projects → pmndrs → cannon-es-debugger

pmndrs / cannon-es-debugger

Licence: MIT license
Wireframe debugger for use with cannon-es https://github.com/react-spring/cannon-es

Programming Languages

HTML
75241 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to cannon-es-debugger

three-to-cannon
Convert a THREE.Mesh to a CANNON.Shape.
Stars: ✭ 207 (+200%)
Mutual labels:  threejs, physics, cannonjs
annihilate
js action game
Stars: ✭ 49 (-28.99%)
Mutual labels:  threejs, cannonjs
apate-ar
Framwork for environment aware AR with occlusion, lighting PBR rendering, physics support (cannon.js), based on three.js
Stars: ✭ 77 (+11.59%)
Mutual labels:  threejs, cannonjs
encounter
Remaking the classic C64 game in WebGL.
Stars: ✭ 45 (-34.78%)
Mutual labels:  threejs, physics
WebGL-Billiards
ThreeJS based 8-ball pool
Stars: ✭ 28 (-59.42%)
Mutual labels:  threejs, cannonjs
Webxr Physics
Adds physics to WebXR
Stars: ✭ 18 (-73.91%)
Mutual labels:  threejs, physics
billiards
billiards physics
Stars: ✭ 37 (-46.38%)
Mutual labels:  threejs, physics
use-ammojs
ammo.js physics for use with react-three-fiber
Stars: ✭ 16 (-76.81%)
Mutual labels:  threejs, physics
Agamari
🍙 Katamari × Agar.io
Stars: ✭ 46 (-33.33%)
Mutual labels:  threejs, cannonjs
Aframe Physics System
Physics system for A-Frame VR, built on CANNON.js.
Stars: ✭ 371 (+437.68%)
Mutual labels:  threejs, physics
spark-ar-physics
A helper module for connecting Spark AR with physics libraries
Stars: ✭ 28 (-59.42%)
Mutual labels:  physics, cannonjs
testing-pbr
Various tests of Physically-Based Rendering via Three.js
Stars: ✭ 38 (-44.93%)
Mutual labels:  threejs
MAPLEAF
6-DOF Rocket Flight Simulation Framework
Stars: ✭ 28 (-59.42%)
Mutual labels:  physics
Mixed-Reality-JS
A simple framework for building Hololens applications with Javascript and ThreeJS. Based on HoloJS.
Stars: ✭ 54 (-21.74%)
Mutual labels:  threejs
inelastica
Python package for eigenchannels, vibrations and inelastic electron transport based on SIESTA/TranSIESTA DFT
Stars: ✭ 22 (-68.12%)
Mutual labels:  physics
threejs
Tutorials on Three.js, an open source javascript library for 3D graphics on the web.
Stars: ✭ 30 (-56.52%)
Mutual labels:  threejs
react-redux-platformer
A clone of Six using react-game-kit
Stars: ✭ 24 (-65.22%)
Mutual labels:  physics
ng-three-examples
three.js examples in Angular 2
Stars: ✭ 24 (-65.22%)
Mutual labels:  threejs
Radial-Engine
3D Game engine with an editor(Qt) using OpenGL
Stars: ✭ 23 (-66.67%)
Mutual labels:  physics
source-engine-model-loader
Three.js loader for parsing Valve's Source Engine models
Stars: ✭ 54 (-21.74%)
Mutual labels:  threejs

cannon-es-debugger

Demo Image

This is a debugger for use with cannon-es. It was adapted from the original cannon.js debugger written by Stefan Hedman @schteppe.

Note: This debugger is included in use-cannon directly.

Example

https://pmndrs.github.io/cannon-es-debugger/

Installation

yarn add cannon-es-debugger

Make sure you also have three and cannon-es as dependencies.

yarn add three cannon-es

Usage

Give cannon-es-debugger references to your three.js scene object and cannon-es world:

import { Scene } from 'three'
import { World } from 'cannon-es'
import CannonDebugger from 'cannon-es-debugger'

const scene = new Scene()
const world = new World()
const cannonDebugger = new CannonDebugger(scene, world, {
  // options...
})

// ...

function animate() {
  requestAnimationFrame(animate)

  world.step(timeStep) // Update cannon-es physics
  cannonDebugger.update() // Update the CannonDebugger meshes
  renderer.render(scene, camera) // Render the three.js scene
}
animate()

New meshes with wireframe material will be generated from your physics body shapes and added into the scene. The position of the meshes will be synched with the Cannon physics body simulation on every animation frame.

API

import type { Scene, Color } from 'three'
import type { Body } from 'cannon-es'

type DebugOptions = {
  color?: string | number | Color
  scale?: number
  onInit?: (body: Body, mesh: Mesh, shape: Shape) => void
  onUpdate?: (body: Body, mesh: Mesh, shape: Shape) => void
}

export default class CannonDebugger {
  constructor(scene: Scene, world: World, options: DebugOptions): void

  update(): void
}

The available properties of the options object are:

  • color - a Three Color argument that sets the wireframe color, defaults to 0x00ff00

  • scale - scale factor for all the wireframe meshes, defaults to 1

  • onInit - callback function that runs once, right after a new wireframe mesh is added

  • onUpdate - callback function that runs on every subsequent animation frame

The update() method needs to be called in a requestAnimationFrame loop to keep updating the wireframe meshes after the bodies have been updated.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].