BobDyn/BobLib
A Modelica library that models the vehicle as an acausal multibody system with explicit geometry, constraints, tires, suspension, and powertrain interfaces.

BobDyn models the vehicle as a hierarchy of physical systems. The structure is explicit, so you can trace geometry, loads, constraints, and response signals from full-vehicle behavior down to subsystem assumptions.
Start with BobDyn/BobSim to set up a vehicle, run studies, and get metrics, plots, and reports. Go to BobDyn/BobLib to inspect, change, or debug the vehicle models directly.
The driver feels a vehicle's response, not its equations. So BobDyn describes vehicles with response metrics, keeps the model inspectable, and makes every study traceable from configuration to report.
BobDyn/BobLib provides the physical vehicle model in Modelica. BobDyn/BobSim runs repeatable studies on that model and turns the results into plots, metrics, and reports. You can inspect, compare, and reuse those results across design iterations.
Every part of the pipeline is plain text under version control:
| Part | Where it lives |
|---|---|
| Physical models | Modelica. Geometry, constraints, and force generation are written from first principles. |
| Configuration | Vehicle records, test setups, and simulation parameters in YAML and Modelica .mo files |
| Execution | Python workflows for simulation, extraction, analysis, and reporting. You can extend, change, or replace them. |
| Results | Outputs link back to the model structure, configuration, and equations that produced them. |
| Capability | Description |
|---|---|
| Standard tests | Run repeatable studies such as steady-state cornering, transient steering response, and kinematics/compliance workflows. |
| Automated reporting | Turn simulation output into metrics, plots, CSV files, and engineering reports with no manual post-processing. |
| Model correlation | Use full-system simulation results as reference data for reduced-order models, design tools, and simplifying assumptions. |
| Design exploration | Sweep parameters, compare configurations, and see how physical changes affect vehicle-level behavior. |
The two animations show input samples: a closed-loop PI control input and an open-loop prescribed-frequency input.
Closed-Loop PI Input Sample
A proof-of-concept closed-loop PI radius-control input. It is not presented as a tuned controller.
Open-Loop Frequency Input Sample
An open-loop prescribed steering-frequency input showing the vehicle response under a commanded steering sweep.
The PDF reports come from BobDyn/BobSim StandardSim workflows. They are separate studies, not the input samples above. Open a PDF link for a wider view.
SteadyStateEval Report
Ramp-steer velocity-isoline workflow with controller behavior, response traces, fitted handling metrics, and CSV-ready summary values.
TransientEval Report
Step-steer and sine-response workflow with gain, phase, lag, rise-time, and overshoot metrics from the same Modelica vehicle model.
Run BobSim from a source checkout in Docker. You need Git, Make, and Docker. The BobSim image contains OpenModelica and Python.
git clone --recurse-submodules https://github.com/BobDyn/BobSim.git
cd BobSim
make init
make docker-build
make appThen open http://127.0.0.1:8765 and follow:
Setup -> Save Vehicle -> Write to MBD -> Simulation -> Archive
To run all four standard studies without the app, run make standard-eval-all. It builds the Modelica executables when they are missing, then runs RampSteerEval, SteadyStateEval, TransientEval, and FourPostEval. The PDF reports and metrics CSVs go to _3_StandardSim/generated_results/.
The BobSim Startup tutorial covers each step. To use the released desktop app from the GitHub Release instead, see Run BobSim Without Docker. The desktop app needs a local OpenModelica to simulate.