This is the home of OpenBVE, a license-free, open source, free of charge train driving simulator.


This program includes detailed per-car simulation of the brake systems, friction, air resistance, toppling and more. In 3D cabs, the driving experience is augmented with forces that shake your simulated body upon acceleration and braking, as well as in curves. Besides that, OpenBVE features a 3D positional sound system best enjoyed with surround speakers, train exteriors and timetables for the current run. Finally, via the main menu, routes and trains be easily selected to start a new session, the controls can be configured to keyboard or joystick devices, and a variety of options can be selected.

Compared to other simulators of the genre, especially compared to commercial games, OpenBVE has its main focus on realism, not necessarily on user-friendliness. You should be willing to study operational manuals for the routes and trains you want to drive, and will in many cases not get along by just memorizing a few keystrokes. If you can identify with this focus, OpenBVE might be the right simulator for you.

Latest Stable Release: Stable (2024-02-11)

Current News & Updates:

Significant Changes:

  • Change: Improve control configuration saving / loading.
  • Change: Provide internal mirror to System.IO.Path functions.
  • Change: Improve logging / messaging when attempting to use a train runtime plugin on an incompatible system.
  • Change: Assorted improvements to the Loksim3D object parser.
  • Change: Update language files from Transifex.
  • New: Add AmbientTemperature animated variable.
  • Hacks: Update Hakone- Tozan patch for variant file.
  • Fix: In-game HUD not correctly translated when using the GL menu.
  • Fix: Invalid or corrupt textures could have an invalid cache access.
  • Fix: Crash when attempting to reverse a non-existant animated state under certain circumstances.
  • Fix: SigF not showing a default signal when in range and no custom signal specified.
  • Fix: Show route image in GL menu if present alongside, but not specified in routefile.

As always, a new release seems to bring some new and interesting bugs, as well as locating older ones :( This release should fix OpenBVE failing to start on systems requiring the GL3 menu (Primarily newer versions of OS-X)

Significant Changes:

  • Fix: OpenBVE failed to launch with the GL3 menu due to a train plugin interface change.
  • Fix: Incorrect texture caching access for trains with nighttime textures.
  • Fix: Issue using the Windscreen section later in a Panel2
  • Change: Remove various bits of older BVE2 hacks related code from the PanelXML parser- This should have no effect on user content.

This release of OpenBVE introduces the next stage of moving the sim away from a purely linear, forwards-facing world- The ability to drive an existing routefile in the opposite direction.

For the moment, if you wish to take advantage of this experimental feature, this must be set in-file with Options.ReverseDirection 1

Significant Changes:

  • Change: Alter default object optimisation settings, to allow some X objects to work better.
  • New: Add experimental IRawRuntime interface for train plugins. This allows plugins to recieve raw keyboard / mouse input data from the sim.
  • New: Add option to allow routefiles to be constructed in the reverse direction. This is experimental and signalling / other trains may not work as expected.
  • New: Allow touch elements to define a custom cursor.
  • Fix: Crash if switching directly to a POI camera from the cabview.
  • Fix: Anisotropic filtering could get stuck off.

Significant Changes:

  • New: Add the animated instruction Length to return the current length of the train.
  • Change: Support objects with more than 65,535 verticies in a mesh.
  • Change: Improvements to handling of Colored Vertices loaded from some .X files.
  • Change: The OriginalX parser has been deprecated / removed- If this is selected, the NewXParser will now be used.
  • Change: Handle some X files which are actually a relative path. Fixes some night-time routes using BRSigs.
  • Change: A more descriptive exception is thrown if one component of a path supplied to the API is empty.
  • Change: The WAV parser will now correctly handle some extensible WAV files.
  • Change: Better detect some BVE Readme files encoded in non-ANSI charsets.
  • Fix: Increase the height of various controls to avoid blank text on some Mono systems (KennyHui)
  • Fix: The AI could repeatedly apply / release the brakes on an air braked train in certain circumstances.
  • Fix: Couple of camera glitches introduced with v1.9.0.0 / Quad trees.
  • Fix: Cab flickering on some systems.

This version of OpenBVE introduces QuadTree visibility, which may be enabled by setting Options.ObjectVisibilty to 2 in routefiles, along with several significant other changes to improve stutter in more complex routes. Hotfix to v1.9.0.1 to fix a glitch with visibility using track based visibility modes and program generated camera movements.

Significant Changes:

  • New: Add QuadTree visibility mode- This performs considerably better than track based visibility, and should be considered for all new routes.
  • New: Use a separate thread to update visibilty, reduces stutter on complex routes.
  • New: Support another variant of the DenshaDeGo! One Handle controller for Nintendo Switch.
  • New: Add ScaleX, ScaleY and ScaleZ functions for animation.
  • Change: When in 32-bit mode, Unload Unused Textures will be automatically enabled if critical memory pressure occurs.
  • Change: Implement caching of texture origins, speeds up multiple uses of large textures.
  • Change: Cache the texture transparency type, reduces stutter when using large textures.
  • Fix: Issue with an incorrect number of cars being returned to .Net runtime plugins.
  • Fix: Some variants of compressed DXT textures failed to decode correctly.
  • Fix: A $Include file containing invalid characters in it’s filename crashed the parser.
  • Fix: Issue with brake sounds in BVE5 motor sound parser (experimental)
  • Fix: Issue with faces containing a texture but no co-ordinates in the Assimp OBJ parser.
  • Change: Invert dissolve factor in original OBJ parser.
  • Fix: An unknown section could freeze the animated parser.
  • Fix: Vertex colors could be incorrect when using the NewXParser.