Soft body crashes python executable

Hi there,

I’m trying the soft body example here: panda3d.org/manual/index.ph … etrahedron

I’m on Windows 7 64-bit with the latest nightly. Now I’m on 1.9.2 and the same thing happens.

Here is the output:

My code is like this:

from direct.showbase.ShowBase import ShowBase
from panda3d.core import Vec3
from panda3d.bullet import BulletWorld
from panda3d.bullet import BulletPlaneShape
from panda3d.bullet import BulletRigidBodyNode
from panda3d.bullet import BulletSoftBodyNode
from panda3d.bullet import BulletSoftBodyConfig
from panda3d.bullet import BulletBoxShape

base = ShowBase()
base.cam.setPos(0, -10, 0)
base.cam.lookAt(0, 0, 0)

# World
bulletWorld = BulletWorld()
bulletWorld.setGravity(Vec3(0, 0, -9.81))
info = bulletWorld.getWorldInfo()
info.setAirDensity(1.2)
info.setWaterDensity(0)
info.setWaterOffset(0)
info.setWaterNormal(Vec3(0, 0, 0))

# Plane
bulletPlane = BulletPlaneShape(Vec3(0, 0, 1), 1)
rigidBodyNode = BulletRigidBodyNode('Ground')
rigidBodyNode.addShape(bulletPlane)
rigidBodyNP = render.attachNewNode(rigidBodyNode)
rigidBodyNP.setPos(0, 0, -3.5)
bulletWorld.attachRigidBody(rigidBodyNode)

# Soft box
ele = file('models/cube.1.ele', 'r').read()
face = file('models/cube.1.face', 'r').read()
node = file('models/cube.1.node', 'r').read()
softBodyNode = BulletSoftBodyNode.makeTetMesh(info, ele, face, node)

softBodyNode.setName('Cube')
softBodyNode.setVolumeMass(300)
softBodyNode.getShape(0).setMargin(0.01)
softBodyNode.getMaterial(0).setLinearStiffness(0.1)
softBodyNode.getCfg().setPositionsSolverIterations(1)
softBodyNode.getCfg().clearAllCollisionFlags()
softBodyNode.getCfg().setCollisionFlag(BulletSoftBodyConfig.CFClusterSoftSoft, False)
softBodyNode.getCfg().setCollisionFlag(BulletSoftBodyConfig.CFClusterRigidSoft, True)
softBodyNode.generateClusters(6)

softBodyNP = render.attachNewNode(softBodyNode)
softBodyNP.setPos(0, 0, 2)
softBodyNP.setHpr(45, 0, 0)
bulletWorld.attachSoftBody(softBodyNode)

# Soft box visual
geom = BulletHelper.makeGeomFromFaces(node)
visNode = GeomNode('CubeVisual')
visNode.addGeom(geom)
visNP = softBodyNP.attachNewNode(visNode)
softBodyNode.linkGeom(geom)

# Update
def update(task):
  dt = globalClock.getDt()
  bulletWorld.doPhysics(dt)
  return task.cont

taskMgr.add(update, 'update')
base.run()

I’m using a simple cube mesh created with Tetgen here:
people.sc.fsu.edu/~jburkardt/ex … cube.1.ele
people.sc.fsu.edu/~jburkardt/ex … ube.1.face
people.sc.fsu.edu/~jburkardt/ex … ube.1.node

Any ideas what might cause the crash?
Thanks