Distributed Component-Based Traffic Simulation
A framework for highly flexible scenario modeling and direct simulation execution
without the need for manual model-transformations or adjustments of the simulation application.
Centered around a unified meta-model that explicitly targets scenario-based simulation testing of
various software-based systems and system-components, which can be located both locally and remotely.
An up-to-date version of node.js is required to use both the server and the front end! An up-to-date version of npm is required to build the front end! The very first step is to execute the command “npm install” in the main directory so that all node packages are installed.
If you want to visualize a simulation run, you can use server.js in the server package to start a WebSocket server in the console, which receives the simulation data and forwards it to the React app that visualizes ships, buoys and waterbodies. Additionally it does show the current simulation time in the header and allows to see the lat/lng coordinates of the position the cursor is located that can also be copied by pressing strg+c. Positions of vessels of past timesteps are visualized by colored dots, so that the route traveled can be recognized.
To start the server that starts/opens the websockt the simulation application does connect to if configured to use the websocketOutputConfig and the address and port pointing towards the ones used here, execute the following commands from the main directory:
cd server
node server.js
Since the configuration of the frontend and the server are set to localhost, the frontend should automatically connect to the WebSocket server. Both the server and the frontend log in the console when a connection has been successfully established.
To start the frontend, see the following section of the React documentation:
npm start
# Runs the app in the development mode. Open http://localhost:3000 to view it in the browser.
# The page will reload if you make edits. You will also see any errors in the console and / or on the webapp ui itself.
-
CORE
-
EXAMPLES
-
TOOLS
-
ADDITIONAL
Important
This framework was developed as part of a doctoral thesis submitted on February 19, 2026, titled
"Flexible Komponentenbasierte Modellierung und Simulation von Szenarien für die Verifizierung und Validierung
automatisierter maritimer Fahrsysteme" (eng.: "Flexible component-based modeling and simulation of scenarios for the verification and validation of automated
maritime navigation systems.").
Although a lot of work has been put into it, be aware that the software is still in a proof-of-concept stage and you may find currently unused code that was once used to explore alternative solutions, undocumented parts, missing comments, and other imperfections.
For documentation check out the wiki pages and the READMEs located in the individual repositories.
Additionally, once the dissertation in which DisCo-BaTS was developed has been successfully defended and published, the URL to the corresponding publicly available PDF version will be added here.
If you use the DisCo-BaTS modeling and simulation framework or parts of it for your own research, it would be appreciated if you would include the following reference in all published work for which DisCo-BaTS or parts of it where used:
A citable reference will be added here once the corresponding dissertation has been successfully defended and published.
OpenLVC / poRTIco is utilized as the implementation of the Runtime Infrastructure (RTI)
according to the High Level Architecture (HLA) standard for distributed cooperative simulation coupling in the
version of 2010 (IEEE 1516:2010). The version of poRTIco used is 2.1.3.
PoRTIco is awesome - go support the maintainers! 💜
Any questions regarding DisCo-BaTS can be asked, discussed, and found in the discussion section.
Distributed Component-Based Traffic Simulation (DisCo-BaTS)
Copyright (C) 2026 David Reiher https://github.com/dvdrhr
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License version 3 for more details.
You should have received a copy of the GNU Lesser General Public License along with this program.
If not, see https://www.gnu.org/licenses/lgpl+gpl-3.0.txt and https://www.gnu.org/licenses/lgpl-3.0.en.html.