Some JMRI users have implemented sophiticated capabilities using the JMRI jython scripting facilities. These are much more than the relatively simple examples presented on the Scripting Examples page. The developers have provided more documentation for these "apps" (available in the "scripthelp" directory. In fact, the distinguishing feature of apps listed here versus examples listed on the Examples page is that the developers have provided that additional documentation!
YetAnotherAutoTrain.py (YAAT) provides the ability to define train actions using text files instead of writing Jython code. The text files contain English like phrases, such as "Set speed to .5" or "Wait for 10 seconds".
The Dispatcher System extends JMRI DispatcherPro to make it easier to run trains between locations of your choosing. It uses your panel that has signal logic and sections to generate another panel that you can use to drive trains by pressing the created "Move To" buttons. Additional features include stopping and fast mode, and station announcements.