I have created a Dodecahedron shape using ThreeJs and Cannon-es but the shape is intersecting and going through a static body (the ground in the animation) this is causing it to endlessly vibrate.
Like this -

Why is this happening is there something wrong in the code -
const t = (1 + Math.sqrt(5)) / 2;
const r = 1 / t;
const vertices = [
new CANNON.Vec3(-1, -1, -1),
new CANNON.Vec3(-1, -1, 1),
new CANNON.Vec3(-1, 1, -1),
new CANNON.Vec3(-1, 1, 1),
new CANNON.Vec3(1, -1, -1),
new CANNON.Vec3(1, -1, 1),
new CANNON.Vec3(1, 1, -1),
new CANNON.Vec3(1, 1, 1),
new CANNON.Vec3(0, -r, -t),
new CANNON.Vec3(0, -r, t),
new CANNON.Vec3(0, r, -t),
new CANNON.Vec3(0, r, t),
new CANNON.Vec3(-r, -t, 0),
new CANNON.Vec3(-r, t, 0),
new CANNON.Vec3(r, -t, 0),
new CANNON.Vec3(r, t, 0),
new CANNON.Vec3(-t, 0, -r),
new CANNON.Vec3(t, 0, -r),
new CANNON.Vec3(-t, 0, r),
new CANNON.Vec3(t, 0, r)
];
const indices = [
[3, 11, 7], [3, 7, 15], [3, 15, 13],
[7, 19, 17], [7, 17, 6], [7, 6, 15],
[17, 4, 8], [17, 8, 10], [17, 10, 6],
[8, 0, 16], [8, 16, 2], [8, 2, 10],
[0, 12, 1], [0, 1, 18], [0, 18, 16],
[6, 10, 2], [6, 2, 13], [6, 13, 15],
[2, 16, 18], [2, 18, 3], [2, 3, 13],
[18, 1, 9], [18, 9, 11], [18, 11, 3],
[4, 14, 12], [4, 12, 0], [4, 0, 8],
[11, 9, 5], [11, 5, 19], [11, 19, 7],
[19, 5, 14], [19, 14, 4], [19, 4, 17],
[1, 12, 14], [1, 14, 5], [1, 5, 9]
];
// Create a ConvexPolyhedron shape from the vertices and faces
const dodecahedronShape = new CANNON.ConvexPolyhedron({
vertices: vertices,
faces: indices,
})
const dodecahedronBody = new CANNON.Body({
mass: 2, // Set mass
shape: dodecahedronShape,
position: new CANNON.Vec3(x, 10, z),
friction: -1,
restitution: 5,
})
code for the ground-
const groundBody = new CANNON.Body({
shape: new CANNON.Box(new CANNON.Vec3(15, 15, 0.1)),
type: CANNON.Body.STATIC,
material: groundPhysMat,
})
groundBody.material.friction = 1
groundBody.quaternion.setFromEuler(-Math.PI / 2, 0, 0)
world.addBody(groundBody)