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.
- core contains all functionalities and structures used by both the root application and the thinner remote application. Concepts like the federate container implementations (SimulationFederate, SceneryFederate, ...) live here. Most other functionalities used for reading and interpreting scenarios, starting simulation runs, instantiating remote federates, etc... are provided by this shared core module.
- root is the actual simulation application, providing the CLI interface for starting simulation runs based on a scenario as input. To be able to do so it has classes to read the XMLs, interprete the contents, utilize JAXB to unmarshall the contents to instances of classes of the model library referenced by the given scenario. The root simulation manager also build the docker images for remote runs, connects to remote hosts and starts the distributed simulation run.
- remote mostly is a stripped down variant of the root simulation, that holds functionalities needed by remotely executing single SimulationFederates
- router contains the poRTIco lib and a Dockerfile for building the WAN-router docker image
-
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.