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-05-18)

Current News & Updates:

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.

Significant Changes:

  • Improve various small areas of the main menu under different conditions (Primarily mono oddities)- Thanks KennyHui
  • Update zh-HK translation- KennyHui
  • New: Allow drag + drop into the package install dialog.
  • Fix: Object based backgrounds broken in GL3
  • Fix: Handle an edge case where older Intel drivers report features they do not support.
  • Fix: Better handling of untextured materials in default NewXParser.
  • Fix: Improve rendering of HUD with non-default handle text.
  • Fix: The ColorAll command did not apply to the final MeshBuilder in a file.

Significant Changes:

  • New: Add support for ZKNS-002 controller.
  • New: Allow on-screen marker size to be customised via XML
  • New: Add sanders as an alternative to the re-adhesion device
  • New: Add WheelSlip and WheelSlipIndex animated variables
  • Change: Assorted improvements to CarXMLConvertor
  • Change: Improve handling of various AI components for UK* plugins
  • Fix: The AI driver failed to react to wheelslip if the driver car was not a motor car
  • Fix: Looped car sounds could duplicate on a train jump
  • Fix: Coupler distances could be incorrect if the consist was reversed.
  • Fix: Assorted minor issues when motor car changed via XML
  • Fix: Memory leak in Route Viewer.
  • Fix: Sounds contained within an animated collection now work correctly.