OMSI 2 recreated from scratch in Rust, compatible with every map and mod (requires the original OMSI 2)
See the code
[!WARNING] Early release. Expect bugs. openOMSI is in an early stage of development: things may be missing, broken or change between versions. Please report problems in Issues or on our Discord server.
openOMSI is a from-scratch recreation of the bus simulator OMSI 2, written in Rust: 64-bit, multithreaded, with a modern renderer (Metal / Vulkan / DirectX 12 through wgpu), and fully compatible with the existing maps, buses, scenery and mods.
[!IMPORTANT] openOMSI needs an original copy of OMSI 2. It contains no game content of its own: it plays on the maps, vehicles and other files of an installed OMSI 2 and will not start without one.
Every commit to main is built by GitHub Actions and published on the
Releases page:
| Platform | File |
|---|---|
| Windows x64 / ARM64 | openOMSI-<version>-windows-x64.zip / -windows-arm64.zip - run openomsi.exe |
| macOS (Apple silicon / Intel) | openOMSI-<version>-macos-arm64.zip / -macos-x64.zip - open openOMSI.app |
| Linux x64 / ARM64 | openOMSI-<version>-linux-x64.zip / -linux-arm64.zip - run openomsi |
| Android (arm64, 8.0+) | openOMSI-<version>-android-arm64.apk - see docs/ANDROID.md |
| Dedicated server | openOMSI-<version>-server-linux-x64.zip (also -linux-arm64, -windows-x64, -windows-arm64) - see docs/SERVER.md |
Start the game, point the launcher to your OMSI 2 folder once, pick a map, a bus and a duty, and drive. Mods go into the folder next to the game (or through the launcher's Mods page); the original installation is never written to.
From 0.1.7 on the launcher updates itself: when a newer release is out it asks at the start and, with your yes, downloads it, replaces the program and starts again (on Android through the system's installer). Settings → General → Updates switches the check off or installs without asking.
You need an installed OMSI 2 (Steam or retail, any version) with its stock content - the maps Grundorf and Berlin-Spandau and the stock buses (MAN SD200/SD202, NL). openOMSI brings no game content of its own; it plays the original's maps, buses and mods.
Program Files: the launcher could not update itself there.openomsi.exe. Windows SmartScreen may warn about an unknown app: More
info → Run anyway.openOMSI.app. The first time, macOS may refuse an app from the
internet: right-click → Open → Open, or run
xattr -dr com.apple.quarantine /path/to/openOMSI.app once../openomsi (run chmod +x openomsi if it does not start). It needs a
Vulkan or OpenGL driver (Mesa: mesa-vulkan-drivers, or your GPU vendor's driver).Omsi.exe, maps and Vehicles in it (the folder, or Omsi.exe itself) - and
press Save. The Steam version is under
…\Steam\steamapps\common\OMSI 2.Mods are installed on the Mods page (a folder or a .zip, or dropped on the window) or
by putting them into the Mods folder next to the game; the OMSI 2 folder is never written
to.
~/.openomsi (Windows: C:\Users\<you>\.openomsi),
game.log for the last game. Setup → Export diagnostics (or openomsi --export-diagnostics <file.zip>) saves a support package for an issue on this computer: the program, the system,
the graphics card, driver and settings, the controllers and the last game's map and bus, but
no folder paths, names, chat, LAN codes or addresses, and of the logs only which events
happened. Nothing is sent; look inside before you attach it.The full documentation is on the website: https://openomsi-project.github.io/openOMSI/. The same
pages live in docs/:
| Document | What is in it |
|---|---|
| User guide | running, controls, launcher, settings, mods, LAN play, debug switches |
| Virtual reality | OpenXR setup, VR settings and controls on Windows |
| Android | the mobile version: install, touch controls, building the APK |
| Modding | limits lifted for modders: more interior lights, larger textures, additions OMSI 2 ignores |
| PBR materials | normal, roughness, metalness and occlusion maps for mods |
| Building | building from source on macOS, Windows, Linux and Android |
| Content formats | every OMSI 2 file format |
| Architecture | crates, threading, renderer, roadmap |
| Routes | how the original runs timetables, chrono, HOF, IBIS |
| Plugins | Lua plugins (API and examples), OMSI plugin DLLs and the 32-bit plugin host |
| Dedicated server | hosting a session without a window |
| Versioning & releases | the MAJOR.MINOR.COMMIT scheme and the CI |
| Changelog | what changed in each version |
git clone https://github.com/openOMSI-Project/openOMSI.git && cd openOMSI
scripts/build-macos.sh # macOS → dist/macos/openOMSI.app
scripts\build-windows.cmd # Windows → dist\windows\openomsi.exe
scripts/build-linux.sh # Linux → dist/linux/openomsi
scripts/build-android.sh # Android → dist/android/openOMSI-<version>.apk
scripts/build-server.sh # server → dist/server
Needs the latest Rust stable and the platform's C toolchain; details in docs/BUILDING.md.
openOMSI/
├── VERSION MAJOR.MINOR of the next release (edited by hand)
├── crates/ the engine, one crate per subsystem of the original
│ ├── omsi-app/ the game binary `openomsi` (window, launcher, HUD, server mode)
│ ├── omsi-launcher-core/ launcher data side + `openomsi-launcher` terminal tool
│ ├── omsi-cfg/ text files, code pages, virtual file system, content roots
│ ├── omsi-script/ the OMSI script language (compiler + VM)
│ ├── omsi-o3d/ omsi-model/ omsi-texture/ omsi-geometry/ meshes, models, textures, splines
│ ├── omsi-map/ omsi-scenery/ omsi-timetable/ omsi-vehicle/ omsi-content/ content formats
│ ├── omsi-sim/ vehicles, AI traffic, people, physics
│ ├── omsi-render/ the wgpu renderer
│ ├── omsi-audio/ omsi-net/ omsi-plugin/ omsi-ui/ sound, multiplayer, plugins, UI toolkit
├── tools/ developer tools: omsi-check (format coverage)
├── scripts/ build scripts for every platform, version.sh, packaging files
├── assets/ fonts, Material icons, app icons (assets/icons/app), logos (assets/logos)
├── docs/ documentation (also published as the website)
├── site/ the GitHub Pages website
└── .github/workflows/ CI: release builds for every commit, the website
Issues and pull requests are welcome - see CONTRIBUTING.md.
openOMSI is made in free time. If you enjoy it and want to help it along, you can buy me a coffee or support it on Ko-fi - thank you!
openOMSI is released under the MIT License. OMSI and OMSI 2 are trademarks of their respective owners. openOMSI is an independent project and is not affiliated with them.
OMSI 2 recreated from scratch in Rust, compatible with every map and mod (requires the original OMSI 2)
See the code
[!WARNING] Early release. Expect bugs. openOMSI is in an early stage of development: things may be missing, broken or change between versions. Please report problems in Issues or on our Discord server.
openOMSI is a from-scratch recreation of the bus simulator OMSI 2, written in Rust: 64-bit, multithreaded, with a modern renderer (Metal / Vulkan / DirectX 12 through wgpu), and fully compatible with the existing maps, buses, scenery and mods.
[!IMPORTANT] openOMSI needs an original copy of OMSI 2. It contains no game content of its own: it plays on the maps, vehicles and other files of an installed OMSI 2 and will not start without one.
Every commit to main is built by GitHub Actions and published on the
Releases page:
| Platform | File |
|---|---|
| Windows x64 / ARM64 | openOMSI-<version>-windows-x64.zip / -windows-arm64.zip - run openomsi.exe |
| macOS (Apple silicon / Intel) | openOMSI-<version>-macos-arm64.zip / -macos-x64.zip - open openOMSI.app |
| Linux x64 / ARM64 | openOMSI-<version>-linux-x64.zip / -linux-arm64.zip - run openomsi |
| Android (arm64, 8.0+) | openOMSI-<version>-android-arm64.apk - see docs/ANDROID.md |
| Dedicated server | openOMSI-<version>-server-linux-x64.zip (also -linux-arm64, -windows-x64, -windows-arm64) - see docs/SERVER.md |
Start the game, point the launcher to your OMSI 2 folder once, pick a map, a bus and a duty, and drive. Mods go into the folder next to the game (or through the launcher's Mods page); the original installation is never written to.
From 0.1.7 on the launcher updates itself: when a newer release is out it asks at the start and, with your yes, downloads it, replaces the program and starts again (on Android through the system's installer). Settings → General → Updates switches the check off or installs without asking.
You need an installed OMSI 2 (Steam or retail, any version) with its stock content - the maps Grundorf and Berlin-Spandau and the stock buses (MAN SD200/SD202, NL). openOMSI brings no game content of its own; it plays the original's maps, buses and mods.
Program Files: the launcher could not update itself there.openomsi.exe. Windows SmartScreen may warn about an unknown app: More
info → Run anyway.openOMSI.app. The first time, macOS may refuse an app from the
internet: right-click → Open → Open, or run
xattr -dr com.apple.quarantine /path/to/openOMSI.app once../openomsi (run chmod +x openomsi if it does not start). It needs a
Vulkan or OpenGL driver (Mesa: mesa-vulkan-drivers, or your GPU vendor's driver).Omsi.exe, maps and Vehicles in it (the folder, or Omsi.exe itself) - and
press Save. The Steam version is under
…\Steam\steamapps\common\OMSI 2.Mods are installed on the Mods page (a folder or a .zip, or dropped on the window) or
by putting them into the Mods folder next to the game; the OMSI 2 folder is never written
to.
~/.openomsi (Windows: C:\Users\<you>\.openomsi),
game.log for the last game. Setup → Export diagnostics (or openomsi --export-diagnostics <file.zip>) saves a support package for an issue on this computer: the program, the system,
the graphics card, driver and settings, the controllers and the last game's map and bus, but
no folder paths, names, chat, LAN codes or addresses, and of the logs only which events
happened. Nothing is sent; look inside before you attach it.The full documentation is on the website: https://openomsi-project.github.io/openOMSI/. The same
pages live in docs/:
| Document | What is in it |
|---|---|
| User guide | running, controls, launcher, settings, mods, LAN play, debug switches |
| Virtual reality | OpenXR setup, VR settings and controls on Windows |
| Android | the mobile version: install, touch controls, building the APK |
| Modding | limits lifted for modders: more interior lights, larger textures, additions OMSI 2 ignores |
| PBR materials | normal, roughness, metalness and occlusion maps for mods |
| Building | building from source on macOS, Windows, Linux and Android |
| Content formats | every OMSI 2 file format |
| Architecture | crates, threading, renderer, roadmap |
| Routes | how the original runs timetables, chrono, HOF, IBIS |
| Plugins | Lua plugins (API and examples), OMSI plugin DLLs and the 32-bit plugin host |
| Dedicated server | hosting a session without a window |
| Versioning & releases | the MAJOR.MINOR.COMMIT scheme and the CI |
| Changelog | what changed in each version |
git clone https://github.com/openOMSI-Project/openOMSI.git && cd openOMSI
scripts/build-macos.sh # macOS → dist/macos/openOMSI.app
scripts\build-windows.cmd # Windows → dist\windows\openomsi.exe
scripts/build-linux.sh # Linux → dist/linux/openomsi
scripts/build-android.sh # Android → dist/android/openOMSI-<version>.apk
scripts/build-server.sh # server → dist/server
Needs the latest Rust stable and the platform's C toolchain; details in docs/BUILDING.md.
openOMSI/
├── VERSION MAJOR.MINOR of the next release (edited by hand)
├── crates/ the engine, one crate per subsystem of the original
│ ├── omsi-app/ the game binary `openomsi` (window, launcher, HUD, server mode)
│ ├── omsi-launcher-core/ launcher data side + `openomsi-launcher` terminal tool
│ ├── omsi-cfg/ text files, code pages, virtual file system, content roots
│ ├── omsi-script/ the OMSI script language (compiler + VM)
│ ├── omsi-o3d/ omsi-model/ omsi-texture/ omsi-geometry/ meshes, models, textures, splines
│ ├── omsi-map/ omsi-scenery/ omsi-timetable/ omsi-vehicle/ omsi-content/ content formats
│ ├── omsi-sim/ vehicles, AI traffic, people, physics
│ ├── omsi-render/ the wgpu renderer
│ ├── omsi-audio/ omsi-net/ omsi-plugin/ omsi-ui/ sound, multiplayer, plugins, UI toolkit
├── tools/ developer tools: omsi-check (format coverage)
├── scripts/ build scripts for every platform, version.sh, packaging files
├── assets/ fonts, Material icons, app icons (assets/icons/app), logos (assets/logos)
├── docs/ documentation (also published as the website)
├── site/ the GitHub Pages website
└── .github/workflows/ CI: release builds for every commit, the website
Issues and pull requests are welcome - see CONTRIBUTING.md.
openOMSI is made in free time. If you enjoy it and want to help it along, you can buy me a coffee or support it on Ko-fi - thank you!
openOMSI is released under the MIT License. OMSI and OMSI 2 are trademarks of their respective owners. openOMSI is an independent project and is not affiliated with them.