@Override
    public void simpleInitApp() {
        CapsuleCollisionShape obstacleCollisionShape
                = new CapsuleCollisionShape(0.3f, 0.5f);
        capsuleCollisionShape = new CapsuleCollisionShape(1f, 1f);

        stateManager.attach(bulletAppState);

        capsule = new Node("capsule");
        capsule.move(-2, 0, 0);
        capsule.addControl(new RigidBodyControl(capsuleCollisionShape, 1));
        capsule.getControl(RigidBodyControl.class).setKinematic(true);
        bulletAppState.getPhysicsSpace().add(capsule);
        rootNode.attachChild(capsule);

        Node obstacle = new Node("obstacle");
        obstacle.move(2, 0, 0);
        RigidBodyControl bodyControl = new RigidBodyControl(obstacleCollisionShape, 0);
        obstacle.addControl(bodyControl);
        bulletAppState.getPhysicsSpace().add(obstacle);
        rootNode.attachChild(obstacle);

        bulletAppState.setDebugEnabled(true);
    }
A spatial moves and sweeps its next movement for obstacles before moving
there Run this example with Vsync enabled

@author wezrule
jme3-examples/src/main/java/jme3test/bullet/TestSweepTest.java