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

Screenshots

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:

1.12.0.1 Stable (2026-01-26)

Current News & Updates:

Significant Changes:

  • Fix: BVE5 TFO externals missing.
  • Fix: Incorrect Y-axis interpolation in some BVE5 routes.
  • Fix: Using the headlights key with no sound defined crashed.
  • Change: Speedups and improvements in Wavefront OBJ parsers.
  • MSTS: Basic implementation of various panel controls and exterior bits, related to steam engines. (No physics at present)
  • MSTS: Fix issue when using two different consists as TFOs.

Significant Changes:

  • New: Add basic support for MSTS / OpenRails trains.
  • New: Add se-SE translation (Daniel Nylander)
  • New: Add FogDistance parameter to dynamic backgrounds.
  • Fix: A very large viewing distance could cause visual artifacts with the background.
  • Fix: An invalid path could crash the TFO parser.
  • Fix: Handle a couple of cases with missing required textures in the panel.cfg parser.
  • Fix: Functions containing a CarIndex failed to handle reversal of the train correctly.
  • Fix: Switch change dialog missing.
  • Change: Attempt to cancel loading when a fatal error is caught, rather than directly unloading the renderer. (Timing issue on some systems)
  • Change: Assorted new features / improvements to particle source generation.

New Errata:

https://github.com/leezer3/OpenBVE/wiki/Errata#fog-distance

The last release of 2025….

Significant Changes:

  • New: Introduce new IRawRuntime2 interface, to correct an issue with touch events in the orginal.
  • Change: Improve the display of the JumpToPosition value in Route Viewer.
  • Fix: GL Menu not working in 1.11.3.2
  • Fix: Old renderer not working correctly in 1.11.3.2
  • Fix: Issue when uncoupling some trains.
  • Fix: Particle sources were updating whilst in a menu.
  • Fix: Incorrect particle flow direction when reversing.
  • Fix: Constant speed device not working after a backwards jump.

Other than the significant changes listed below, this build also contains work on the internal traction modelling, and many of the assumptions that it makes.

Significant Changes:

  • New: Add ACCESIBILITY_NEXT_LIMIT to available controls. (Set by default to SHIFT + CTRL + L on new installs only)
  • New: Initial basic electric traction modelling available for XML trains.
  • New: Allow the driver body properties to be set via XML. (Controls head bounce)
  • New: Attempt to support WAV files containing multiple DATA / SLNT chunks.
  • Change: Sanders now have a specific emptied state.
  • Change: Show name of the currently open object in the Object Viewer title.
  • Change: Classify TFO not supported in Route Viewer message as info not error. (AmberIsFrozen)
  • Change: Handle a wider range of wheel linked animations in MSTS shapes.
  • Fix: Incorrect acceleration curve multiplier in files generated using CarXMLConvertor.
  • Fix: Fog didn’t always work as intended with the GL4 renderer.
  • Fix: Keyframe animated objects not hidden properly if used as an exterior object.
  • Fix: Error when attempting to specify name for player path of a switch. (AmberIsFrozen)
  • Fix: Compressed textual S files not working.
  • Fix: Moving a car due to collision with another train didn’t move the bogies.
  • Fix: Applying the brakes at very low speed (~0.05km/h) on level track didn’t work.

Significant Changes:

  • New: Add wheelslip indicator to debug overlay.
  • Change: More internal improvements to MSTS shape parser.
  • Fix: Improve play / resume sound behaviour. This hopefully fixes the case of ‘stuck’ run sounds experienced by a minority of users.
  • Fix: Viewing distance not working correctly with object based backgrounds.
  • Fix: Issue with an animated object using StateChangeSound and a single buffer.
  • Fix: Brightness function not working when manually added to an animated file.
  • Fix: Route Viewer rail path overlay showing ended tracks. (AmberIsFrozen)
  • Fix: If a train contained a zero-length car, it failed to show in Object Viewer.
  • Fix: Freeze with animated files containing unexpected data in certain sections.