JMRI® is...
Information on writing scripts to control JMRI in more detail:
Python and Jython (General Info)
JMRI scripts are in Jython, a version of Python, a popular general-purpose computer language
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
Supported Hardware
JMRI supports a wide range of DCC systems, command stations and protocols.
By the community of

JMRI Help:

Contents Index
Glossary FAQ

Donate to JMRI Donate to

JMRI: Jython Apps for JMRI

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!

YAAT (Yet Another Auto Train) (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".

Dispatcher System

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.