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.14.1.4 Stable (2026-11-12)

Current News & Updates:

Significant Changes:

  • Fix: Build failing to launch on non-windows platforms- It appears that there has been a change with Azure pipelines, causing a required file to not be copied into the build correctly.
  • Fix: A file with the timetable override texture set did not preserve this when cloned.
  • Change: Support for several more animations in MSTS cabs.
  • New: Expose various quality options for viewers. (Aditiya Afrizal)

OpenGL 1.2 support has been removed from this build. This will provide a general performance increase and allows for much easier maintenance. The final build supporting OpenGL 1.2 is v1.13.0.8- https://github.com/leezer3/OpenBVE/releases/tag/1.13.0.8

Significant Changes:

  • Change: GL1.2 renderer removed- OpenBVE now requires GL4.1 as a minimum.
  • Change: Generate the normals visualisation on demand- this will reduce RAM usage and loading time. (Aditiya Afrizal)
  • New: CSV / B3D object parser replaced with new code.
  • New: Allow the use of a animated object as a background object. (Aditiya Afrizal)
  • New: Object Viewer remembers the background color.
  • New: Use night-time textures in MSTS cabs where present.
  • Fix: Stop the axis visualisation from casting a shadow. (Aditiya Afrizal)
  • Fix: Some Mechanik routes not working correctly.
  • Fix: Issue with using RunInterval command with hacks on
  • Change: Alter Mechnik transparent color to use the first color in the pallette, not pure black.
  • Change: Update known Mechanik routes database.
  • Change: Restrict Mechanik correction markers to the nearest 100m boundary, not the exact track position.
  • Change: Improve AI driver response to wheelslip when using the UKDT plugin.
  • Change: Workaround for drawing issue in TE2 motor sound visualiser.
  • Change: Add some more small bits in the MSTS parser.
  • Change: Solution updated to .Net 4.8.0
  • Change: Add workaround for issues on Debian Forky.
  • Hacks: Fix some missing sounds in TT_YUS routes. (developer oversight)
  • Hacks: Accept letter O as substitute for zero when parsing CSV / B3D objects.

This release brings various improvements to the handling of BVE5 / BVE6 content. Whilst mostly minor, many routes should benefit from slightly better object placements.

Significant Changes:

  • Change: Improve the handling of BVE5 objects placed using a span. (Aditiya Afrizal)
  • Change: ATS-EX content is now skipped when encountered in BVE5 / BVE6 files, rather than not loading the file at all.
  • Change: Improve the crack distortion for some BVE5 / BVE6 content. (Aditiya Afrizal)
  • Change: When BMP textures are used in BVE5 / BVE6 content, pure black is transparent.
  • Change: Accept cant values in both mm and M for BVE5 / BVE6 content.
  • Change: Where two Interpolate statements exist at the same track position, BVE5 / BVE6 take the first, rather than the second for all other cases.
  • Change: Legacy curves in BVE5 no longer use interpolation.
  • Fix: Improvements to X parsers, to handle some edge-case files.
  • Fix: DDS parser failed to load some uncompressed RGB files. (Aditiya Afrizal)
  • Fix: Issue with touch commands being passed to plugins.
  • Fix: Check that the section attached to a transponder is valid when updating.
  • Fix: Improve check for invalid section on orphaned transponders.
  • Fix: More HKHOS content incorrectly detected as Hmmsim.

Significant Changes:

  • New: Realtime sun / shadow preview in viewers. (Aditiya Afrizal)
  • New: Improved shadow smoothing options. (Aditiya Afrizal)
  • New: Add TotalStates CarMass DecelerationMotor and RailNumber animated instructions.
  • Fix: Some HKHSS routes incorrectly detected as HMMSim.
  • Fix: Interpolation issue in BVE5 routes where two legacy curve commands are within 25m.
  • Fix: Unable to enable time acceleration when no train plugin loaded.
  • Fix: Some touch controls broken by move to GL4.
  • Fix: Copy + paste error in custom power beacons. (Aditiya Afrizal) Fix: MP3 decoding not working on Linux. (Aditiya Afrizal)
  • Change: Update OpenTK fork.
  • Change: Update MP3 decoder implementation.
  • Change: Fix some more issues with HMMSim routefiles.
  • Change: Various performance improvements to route / object loading. (Aditiya Afrizal)
  • Change: Significantly improve the memory usage / performance of animated GIF files. (Aditiya Afrizal)
  • Change: Significant changes to the handling of semi-colons in the RW routefile format. Please see the following errata note
  • Change: When calculating exposed frontal area, the multiplier of 0.65 is now used for cars which do not specify a width / height. Please see the following errata note
  • Compatability: Update routefile database.
  • MSTS: Add accelerometer to handled CVF instructions.
  • MSTS: Implement interior views for cars other than the driver car on MSTS stock.

DEPRECATION NOTICE:

Please note that the next public build (v1.14 series) will deprecate the OpenGL 1.2 (legacy) renderer, meaning that GL4.1 will now be required. The new renderer is considerably faster in all cases, and allows for various things (particles, shadows, complex keyframe animations) not supported by the legacy renderer.

OpenGL 4.1 is supported by all graphics cards, and most integrated graphics solutions from ~2012 onwards.

Significant Changes:

  • Change: Update handling of incorrectly rooted paths.
  • Change: More improvements to object transformations. (Aditiya Afrizal)
  • Change: Improve compatibility with Hmmsim specific CSV route variant.
  • Change: When a Cylinder has an invalid number of faces, it is not shown when hacks are active. (Matches BVE2 / BVE4 behaviour)
  • Change: Update routefile compatability database.
  • Fix: Two further $Include related issues introduced in 1.13.0.3
  • New: Add Options.StartingDirection command.
  • BVE5: Don’t attempt interpolation between two identical values.