JMRI® is...

Layout Automation

Use JMRI to automate parts of your layout, from simply controlling a crossing gate to running trains in the background.

Tools

JMRI provides powerful tools for working with your layout.

Supported Hardware

JMRI Layout Automation

JMRI applications provide a large number of ways of automating your layout, ranging from simple fill-in forms to full-fledged scripting and programming capabilities. These include:

Signaling
JMRI provides signaling logic from simple to prototypical, which can be used to drive your signals in many applications.
Entry Exit (NX)
NX Routing builds a dynamic valid path between two locations on a Layout Editor Panel.
Warrants
Warrants let you automatically run trains on layouts with Control Panel Editor Panels.
Dispatcher
Dispatcher lets you dispatch and (automatically) run trains on layouts with Layout Editor Panels.
Routes
A simple form of automation is to define Routes, which allow you to simplify the control of your turnouts and signals.
LRoutes
LRoutes are like Routes but offer more types of control. When an LRoute is defined, it automatically creates Logix statements (see below) which can be further edited to implement even more route controls.
USS CTC
A set of tools to help in the automation of US&S CTC Panels.
Logix
Using JMRI Logix, you can specify actions to happen when various conditions occur on the layout.
Scripting
JMRI provides a very powerful scripting tool. Based on a real programming language, it gives you access to all the JMRI capabilities.
Writing your own code in Java
The JMRI libraries greatly simplify writing a program to make your layout do exactly what you want.