NXSYS, Signalling and Interlocking Simulator
NXSYS, New York City Subway Signalling and Interlocking Simulator for Microsoft Windows®
A tool and toy and labor of love by Bernard S. Greenberg (contact Bernard).
NXSYS is an application for modern versions of Microsoft® Windows® that recreates for you the experience of controlling switches, signals, and trains in the New York City Subway system. Rather than conventional menus and toolbars, NXSYS presents to you the exact same user interface as so-called "Entrance-Exit" "pushbutton interlockings" present to New York City subway towerpersons, except that instead of pressing buttons with your finger, you click with the mouse. And instead of commanding real trains full of people, NXSYS simulates them cybernetically. You see the same display, get the same options and responses, must learn the same skills, and may enjoy the same pleasures as a towerperson at an "entrance-exit" interlocking.
There is no more comprehensive, detailed information source on New York Subway Signalling publicly available, or perhaps even to insiders. This is THE way to learn about New York City Subway signalling. And it's for free, fun, interactive, extensible, and assumes no prior knowledge. (If you wish to learn about NY City signalling right now on the web, and aren't interested in trying NXSYS, or don't have a Windows® machine, please visit NYC Subway Signals, written by the author of this program and its documentation.)
The trains and tracks are imaginary, but the control panel, the extensive relay logic circuitry, and the real-time behavior and interaction of you and the imaginary trains and tracks are not. You press buttons and establish and cancel routings, control signals and switches, and interact with moving trains. You are limited by the circuitry to safe moves -- you are prevented from sending trains crashing at each other, setting routes that conflict with each other, moving switches while trains are on them, or executing any other invalid or dangerous action. Learning to control the switches and signals under these constraints is by no means trivial, and this is wherein the fun of NXSYS lies. NXSYS is supplied with two sample interlockings, a (fairly complex) 4-track layout, and a full-spec detailed three-track layout, an automatic demo that shows you what to do and comments on it, and a comprehensive help file in standard Windows® hypertext help format that explains not only all the functions of the program and supplied interlockings, but all of the railroad signalling, switching, and New York-specific concepts involved.
NXSYS actually simulates relay wiring and logic designed according to New York City Transit Authority models and standards that have changed little in forty years. For the electrically-inclined, NXSYS allows the actual relay circuits to be shown in standard NYCTA notation, printed out en masse to a system printer, and actually observed in operation! Information is available for designing your own layouts. Not insignificantly, NXSYS can also be used as a powerful tool for interactive relay-logic design and simulation.
A lifelike three-dimensional "flight simulator" view, showing the interlocking as you operate it, as a train operator would see it, is available. NXSYS is also an OLE Automation Server, and can be scripted by OLE Automation clients such as Microsoft Visual Basic®, or its own supplied client.
If you find what you think are bugs, or even if you don't, please check this page and the release notes (see Downloads). Do not hesitate to contact the developer if you think you've identified a new bug.
NXSYS can be viewed, utilized, or enjoyed at any of four levels:
- An entertaining rapid-transit video game for those who love the subways and wish to recreate the experience of navigating the tracks, and learn more about the subways and their signals.
- A comprehensive, interactive learning tool for the operation of rapid transit signalling and NX/UR control towers sufficiently detailed and accurate to be of value to those actually responsible for operating such equipment.
- A detailed guide to the sample implementation of such systems in electrical relay logic, observable in action down to the relay level.
- An interactive computer-aided design (CAD) tool for designing and debugging your own interlockings and signal circuitry.
NXSYS OpenGL Cab View Feature
NXSYS/OpenGL Screen Snapshot.
If you need the special Windows 95/98 DLL's (if you use Windows NT(tm), you already have what you need) to run the 3-D Cab View software please read the following:
NXSYS' 3-D track view feature exploits the massive power of the OpenGL Graphics interface developed by Silicon Graphics®, Inc. (in its implementation on 32-bit versions of Microsoft® 32-bit Windows) to display a "virtual reality", flight simulator-like window showing the tracks and signals of interlockings as they actually appear to eye of the train operator (previously "motorman"), in full perspective with lighting, shading, etc. If your machine is fast enough, realistic animation is achievable.
This cab view window appears in addition to the interlocking control panel, and, running semi-autonomously in a separate thread, has its own menu and keyboard commands. When you control the signals in NXSYS via the standard means, the "real signals" in the cab view window change aspect dynamically. You can move the viewpoint up and down the tracks and turn around. Self-documentation is supplied. Press F1 for documentation/help when in the Cab View Window.
You can use the cab view window in conjuction with the "train system", and actually see out the front window of a train as it moves over the interlocking, as with a flight simulator.
In order to try it, you need three components:
- The NXSYS OpenGL DLL NXGLVIEW.DLL, which is distributed with the current version of NXSYS (see Downloads).
- The current version of NXSYS (see Downloads).
- The OpenGL system. If you are running Windows 2000, or Windows NT 3.51 or better, you already have OpenGL as part of the operating system. If you are running Windows '95, you may or may not have the necessary components. If you have OPENGL.DLL and GLU32.DLL already, great. If not, you can get them (Windows '95 only: they are Microsoft Redistributables) at this link. Unzip them into NXSYS' directory, or your windows System directory.
If you have the OpenGL components available, and you place NXGLVIEW.DLL where NXSYS can find it (for example, in the same directory), NXSYS will display the new window at the time you load an interlocking. If you do not have the DLL, or fail to place it where NXSYS can find it, or you are missing OpenGL, NXSYS will not diagnose an error, but will proceed to operate as it had in the past, without them.
You need a reasonably fast processor for this to perform acceptably. Performance on a 90MHz Pentium(tm) is acceptable; performance on a 33MHz 486 is unacceptable; floating point hardware is a must. Intermediate data points are not available yet. It should look like the image above -- if it does not, please notify the developer, and be sure to describe your video card, processor, and operating system.
NXGLVIEW.DLL and the NXSYS main app "know about" the insides of each other, so you must have compatible versions to use the former. Thus, when NXSYS loads the DLL, they will negotiate and make a check that the versions you have are compatible, and if they are not, you will get a message to that effect advising you to obtain a pair which are. If that occurs, please fetch the latest NXSYS and NXGLVIEW.DLL (see Downloads).
NXSYS requires a 32-bit version of the Microsoft Windows® operating system, meaning Windows 95®, Windows 98®, Windows NT®, Windows 2000®, or Windows XP® on the Intel® architecture (386, 486, Pentium®, etc., i.e., any "PC") only. It is not supported on Win32s®. To download it, click below, and unzip in a new directory of your choosing, and be sure to read readme.txt.
For those deeply enough involved with the concepts at hand to attempt to design their own scenarios (track layouts) in NXSYS' "relay language", which is a subset of Lisp, the "relay compiler" (a 32-bit command line application) and its associated tools and documentation such as it is are available. Be forewarned, however, that to create your own operative interlockings, you have to design and implement all the relay circuitry -- the tools do not design the interlocking for you.
For those NXSYS experts who are also Windows experts who wish to write OLE Automation Controllers for NXSYS, the OLE automation tools are useful and necessary. If you don't know what this means, you don't need it.
- NXSYS zip file (500K) -- Click here to download
- NXSYS Relay Compiler zip file (117K) -- Click here to download
- NXSYS OLE Automation client tools zip file (31K) -- Click here to download
- Release notes.
Legal Disclaimer. If you want to use these ideas and software tools for your own model railroad, have fun, but please be aware that the design of safe, reliable signal circuitry for real railroads and other life-critical missions is a highly-skilled specialty requiring years of training, apprenticeship, and certification. Any principles gathered from the documentation and circuitry of this program, even though they often reflect standard practice, are not to be construed as a substitute for circuit design by certified persons and organizations under legal contract. In specific, the author disavows any responsibility for any harm, damage, or injury resulting from use of these circuits or schemes for any purpose whatsoever. These circuits and documentation are provided for educational, demonstrative, and entertainment purposes only, and are not to be used for control of life-critical missions. What is more, if you nonetheless attempt to use these circuits or schemes to construct and offer for sale any device or system, you alone are responsible for ensuring that no patents, copyrights, or other applicable rights are being violated thereby. Download of this software constitutes acceptance of these terms.
Microsoft, Windows, Windows 95, Windows 98 Windows NT, Windows 2000, Win32, Win32s, and Visual Basic, are a trademarks of the Microsoft Corporation. "NX" refers to a scheme of railroad switch and signal control offered by General Railway Signal, Inc. (a unit of SASIB Railway Group). Pentium and Intel are trademarks of the Intel Corporation. Neither this software nor its documentation has been authorized, approved, or verified by them or any other railroad signal concern or the New York City Transit Authority or its successors.
This software is offered without charge, "as is", by the author, Bernard S. Greenberg. It is thought to be relatively bug-free, although bug reports will be fielded using this form, but no response in any given time promised. No representations, warranties, guarantees, or claims about operability or suitability for any purpose are made. This software is intended for educational, demonstrative, and entertainment purposes only, and is not suitable for use for control of actual railroads or other life-critical missions. The author assumes no responsibility for any damage, harm, injury or loss resulting from use or misuse of either the software or the relay circuit designs therein. The author assumes no responsibility for errors resulting from corruption of the distribution media or files or inadvertent or deliberate corruption in transmission. You may use and share this program as you wish, but are not permitted to incorporate this program or its parts in any distribution, collection, or commercial product without the consent of the author. If you redistribute it, you must redistribute the zipfiles as you received them, intact, with all their components as posted. Download of this data constitutes acceptance of these terms.
This software is intended for personal use and personal education, and offered free of charge under those conditions. Business concerns and governmental organizations, rapid transit and engineering in particular, seeking to use this software for other than entertainment or personal education should contact the author at the address below about licensing arrangements and possible future development.
NXSYS, NXSYS32, track/relay language and compiler and tools Copyright © Bernard S. Greenberg, 1994, 1996, 1997, 1998.