JMRI® is...
By the community of
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
Supported Hardware
Devices, command stations, networks, and protocols:
JMRI Setup and Installation
JMRI environments...

JMRI Help:

Contents Index
Glossary FAQ

Donate to

JMRI: Applications

JMRI provides several applications that are optimized for specific purposes. You can of course also write your own.

A better tool for programming decoders. DecoderPro simplifies the job of configuring complicated DCC decoders by providing screens on which you can select the various options and values you want.
Open DecoderPro by double-clicking its icon in the JMRI installation folder.
Operating CRT based CTC control panels that reflect the real-time state of your railroad and let you control it - almost like a Prototype dispatcher!
Open PanelPro by double-clicking its icon in the JMRI installation folder.
A system for Dispatching a model railroad. The ability to automatically run trains is a popular feature.
Create Train Manifests that detail the work your train crews will perform during an Operations session. The Manifest lists of car pick up and set outs, shows where the cars are located, and provides the cars' destinations.
A set of tools for using Audio with JMRI.

Additional Applications with JMRI Connections...

Hobbyists have created applications that work with JMRI to provide extra capabilities. In addition, some commercial vendors have created applications that work with, add data to, or take data from JMRI

See the community/connections directory for a list and links. New applications can be added at any time!

Jython Applications for JMRI...

Some JMRI users have implemented sophisticated capabilities using the JMRI jython scripting facilities. These are listed here.

JMRI Features and Tools

JMRI software consists of a large library of functions divided into

So, for example, if the user does something (perhaps setting a route) to cause JMRI to throw a Turnout (track switch), that user action will occur in the system-independent part of the software, and then JMRI will send out the actual command via the system-dependent part appropriate to the hardware system controlling the particular Turnout thrown. JMRI is designed so that features are implemented in the system-independent part as much as possible, with JMRI using system-dependent subparts only when really necessary. Access to system-independent features is via the main JMRI menus, such as the Tools menu.