BobSim is the BobDyn high-fidelity vehicle analysis workspace. It wraps the BobLib Modelica vehicle models in a local browser app for configuring vehicles, writing BobLib-backed Modelica definitions, running standard studies, exploring results, and keeping generated artifacts organized. The underlying Python and Modelica workflows are still available as Make targets for automation and focused development work.
The full documentation lives at:
Use the BobDyn documentation site as the detailed source of truth. This README is the quick release guide for getting a clean checkout running and checking that it is healthy.
_0_Utils/: shared Python utilities, plotting/reporting helpers, and the BobLib submodule._1_VisualSim/: experimental/offline visualization tooling; core model visualization currently happens in OMEdit._2_EnvelopeSim/: GGV/YMD performance-envelope workflows._3_StandardSim/: standard vehicle studies: RampSteerEval, SteadyStateEval, TransientEval, and FourPostEval._4_OptSim/: sensitivity and response-surface workflows._5_App/: local browser app for configuring setups, launching workflows, and inspecting generated reports, metrics, configs, and job logs.tests/: release-polish and workflow regression checks.vehicle.yml: active vehicle data used by BobSim projection, reporting, and sensitivity workflows. The Modelica standard entry points now use checked-inBobLibrecords.
Initialize the BobLib submodule:
make initBuild the Docker development image:
make docker-buildShow the available targets:
make helpThe Docker image is based on OpenModelica and installs the Python dependencies
from requirements.txt.
Start the BobSim app:
make appThen open http://127.0.0.1:8765.
The app is the primary entry point for normal vehicle-development work. Use it to select or edit a vehicle configuration, save the setup, write the generated Modelica records into BobLib, configure simulation runs, review logs, and browse saved results. Generated builds, workspaces, and result archives are local runtime content and are intentionally ignored by git.
The command-line targets below mirror the same workflow pieces for CI, automation, and focused debugging.
Build the BobSim desktop deploy artifact:
make deployDeploy builds the desktop wrapper with the Python backend bundled. It does not
build or package local simulation executables, reports, or app caches; those are
generated by the user through the app on their machine. Deploy outputs are
written under _0_Utils/deploy/dist/BobSim/.
Package the current local artifact for release:
make deploy-package DEPLOY_VERSION=2026.06.27Clean, build, package, and optionally upload the current machine's native release artifact:
python _0_Utils/deploy/deploy.py --release --install-deps --version 2026.06.27
python _0_Utils/deploy/deploy.py --release --install-deps --version 2026.06.27 --upload-releasePyInstaller deploy artifacts are built per operating system. A local Linux build
creates the Linux executable; Windows and macOS release assets are generated by
the Release Builds GitHub Actions workflow when a v* tag is pushed or when
the workflow is run manually. The release source and build tooling live on
main; generated .exe, .app, .zip, .tar.gz, and checksum files should
stay out of git and be attached to the GitHub Release for the tag instead.
To generate a platform asset from another machine:
git fetch --tags
git checkout v2026.06.27
python -m pip install --upgrade pip
python -m pip install -r requirements.txt -r _0_Utils/deploy/requirements.txt
python _0_Utils/deploy/deploy.py --release --version 2026.06.27 --upload-releaseUploading requires the GitHub CLI (gh) to be installed and authenticated.
Run the local fast CI gate:
make ciThis runs:
make lintmake typecheckmake test
GitHub Actions runs the same fast gate inside the BobSim Docker image with the BobLib submodule checked out recursively. Full StandardSim baseline simulations are intentionally left out of normal GitHub CI because they can exceed hosted runner limits.
Run the full StandardSim baseline explicitly when you need to refresh or review simulation artifacts:
make regression-baselineBobSim's make targets use a small, intentional vocabulary:
docker-*: build or rebuild the development image.shell-*: open an interactive shell in a workflow context.standard-*: build and run standard vehicle evaluations.envelope-*: generate performance-envelope outputs.opt-*: run sensitivity and response-surface workflows.clean-*: remove generated artifacts.
Most standard simulation work should be launched from the app so the vehicle configuration, generated Modelica, run logs, and saved results stay keyed together. The Make targets remain useful for direct smoke tests and batch development.
Run the complete standard baseline:
make standard-eval-allThat target builds missing executables, then runs RampSteerEval, SteadyStateEval, TransientEval, and FourPostEval.
For focused standard work, build and run individual studies:
make standard-build
make standard-eval-ramp-steer
make standard-eval-steady-state
make standard-eval-transient
make standard-build-four-post
make standard-eval-four-postBuild-only targets are also available:
make standard-build
make standard-build-four-postReports and metric CSVs are written under _3_StandardSim/generated_results/.
Remove local Python/tool caches:
make cleanUse more specific cleanup targets when you only want to clear generated workflow artifacts:
make clean-app
make clean-visual
make clean-standard
make clean-envelope
make clean-opt
make clean-all