For OdeCar (which is a lot of fun) I found it much easier to use a chase view, so I added the following:
                } else if (camera == 4) {
                    // Chase Camera
                    viewCenter = odeCar.getObjectPosition(4);
                    viewLocation = odeCar.getObjectPosition(4);
                    viewLocation.x -= 0;
                    viewLocation.y -= 0f;
                    viewLocation.z += 3f;
                    
                    viewCenter.x += 0;
                    viewCenter.y += 1f;
                    viewCenter.z += 3f;
                    view.getTransform().lookAt(viewLocation, viewCenter,
                        new Vector3f(0, 0, 1));
                    
                    Matrix3f m = odeCar.getObjectRotation(4);
                    Matrix3f m2 = new Matrix3f();
                    m2.rotX((float) Math.PI / 2);
                    m.mul(m2);
                    view.getTransform().setRotation(m);
                    Vector3f chaseV = new Vector3f(0, 10f, 50f);
                    Transform3D chaseT3D = new Transform3D();
                    chaseT3D.set(chaseV);
                    view.getTransform().mul(chaseT3D);
                    
                    
                }
and
        case '4':
            camera = 4;
            break;
This adds the “traditional” chase view found in most driving games these days 
 
      
     I’ve build an human body (crash test dummy from 3dstudio) that can dropped in a boxstack, it’s pretty funny.
  I’ve build an human body (crash test dummy from 3dstudio) that can dropped in a boxstack, it’s pretty funny.