jMonkeyEngine state machine helps to define complex behaviour using states. This way, one can avoid cluttered code with lots of if-else branches checking if the model is walking or running, then do x or y.. This way complicated physics/input handling that are tight to some states, need only there be implemented.
Implementation and architecture are based on the book "Game Programming Patterns", chapter State. In the examples directory, the code behind the video demo is listed.
The State Machine consists of four entities: ModelStateMachine, Layer, State, StateChange.
The Documentation explains jme-state-machine in the following chapters: