# Phaser 3.5 Isometric demo. How to continue?

**URL:** <https://phaser.discourse.group/t/phaser-3-5-isometric-demo-how-to-continue/8543>\
**Category:** Phaser 3\
**Created:** [January 4, 2021, 9:16am UTC](https://phaser.discourse.group/t/phaser-3-5-isometric-demo-how-to-continue/8543 "2021-01-04T09:16:27Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![Milton](https://avatars.discourse-cdn.com/v4/letter/m/87869e/32.png) [@Milton](https://phaser.discourse.group/u/Milton)\
**Post date:** [January 4, 2021, 9:48am UTC](https://phaser.discourse.group/t/phaser-3-5-isometric-demo-how-to-continue/8543/2 "2021-01-04T09:48:45Z")

</div>

Use ammo.js.  
Then use btBoxShape, btSphereShape, and btConvexHullShape to define your collision shape.

Some of my code as example:

```
addShape(shape: any, x: number, y: number, z: number, mass: number, rotation: number, rad?: number): Ammo.btRigidBody {
	this._transform.setIdentity();
	this._transform.setOrigin(new Ammo.btVector3(x, y, z));
	let inertia = new Ammo.btVector3(0, 0, 0);
	if (mass != 0) shape.calculateLocalInertia(mass, inertia);
	let motion = new Ammo.btDefaultMotionState(this._transform, this._identity);
	let info = new Ammo.btRigidBodyConstructionInfo(mass, motion, shape, inertia);
	let body = new Ammo.btRigidBody(info);
	body.setUserIndex(this._bodyIndex++);
	if (rad) { // sphere
		body.setRestitution(0.9);
		body.setFriction(0.9);
		body.setDamping(0.1, 0.1);
		body.setActivationState(4); //Ammo.btCollisionObject.DISABLE_DEACTIVATION);
	}
	else {
		body.setRestitution(0.1);
		body.setFriction(0.5);
	}

	if (rotation != 0) {
		this._quaternion.setEulerZYX(rotation * 0.0174533, 0, 0); // y, x, z / yaw, pitch, roll
		this._transform.setRotation(this._quaternion);
		body.setCenterOfMassTransform(this._transform);
	}

	this._world.addRigidBody(body);

	return body;
}
```

---

_[View the full topic](https://phaser.discourse.group/t/phaser-3-5-isometric-demo-how-to-continue/8543)._
