VDSim¶
Open-core vehicle dynamics simulator — bridging the autonomy stack (throttle / pedal / path) and chassis design (hardpoint / multibody) in a single C++17 + Python ABI.
Status¶
- v0.5: terrain + Ld5 stunt driving; parts catalog + scene runtime (
--scene=), GUI catalog API. - Physics: LuGre tire default on (
lugre.enabled); opt-in MF2002.tirbackend - belt transient (L1–L5); opt-in drivetrain v2 (
powertrain:— 2D engine map + gearbox + shift policy); kinematic fallback viatire.kinematic_fallbackor--no-lugre. - Tests: 328 / 328 ctest (2026-06-10,
main). - Roadmap: Product roadmap — shipped vs planned by subsystem.
- User guide: Catalog & physics options.
- 10 CLI demo binaries, Python bindings, CARLA-ready raycast ABI, Web GUI (3D viewer + catalog/scene authoring).
Two ladders¶
VDSim 의 차별화 — single ABI 안에서 두 사다리 m × n 매트릭스.
Dynamics ladder (fidelity)¶
| Tier | DOF | Status |
|---|---|---|
| Ld1-Bicycle | 5 | done |
| Ld2-SevenDOF | 7 | done |
| Ld3-FourteenDOF | 14 (sprung 3 + unsprung 4) | done |
| Ld4-MultibodyKinematic | hardpoint FK + hard-joint DAE | shipped M1–M7 (spec) |
| Ld5-Free3D | quaternion 6-DOF + hub contact | shipped (v0.4 stunt); terrain → v0.5 |
Control ladder (abstraction)¶
| Tier | Input | Status |
|---|---|---|
| Lc1-PerWheel | motor / brake torque per wheel | via lowering |
| Lc2-AxleTorque | axle drive / brake | via lowering |
| Lc3-FxTotal | longitudinal force | via lowering |
| Lc4-Pedal | throttle / brake / steer (CARLA-호환) | primary |
| Lc5-AxTarget | ax_target | done (PI + FF) |
| Lc6-VTarget | v_target | done (cascade PI) |
| Lc7-PathCurvature | v_target + κ (Pure Pursuit) | done |
| Lc8-Waypoint | path + lookahead | done (figure-8 demo) |
Quick start¶
git clone https://github.com/Onlyti/VDSim
cd VDSim
cmake -G Ninja -B build -DCMAKE_BUILD_TYPE=Debug \
-DVDSIM_BUILD_PYTHON=ON -DVDSIM_BUILD_CARLA_PLUGIN=ON
cmake --build build -j
# Run a scene (catalog fleet + maneuvers materialized at launch)
build/bin/vdsim_realtime --scene=configs/scenes/l3_sedan_kinematics.yaml
# Launch the 3D viewer (real-time web viewer + live sim)
python3 gui/server.py --port 8100 &
# → browse http://localhost:8100
What to read¶
- First time: Theory overview → chapters 01-04 sequentially.
- Cherry-pick: jump to Ld3-FourteenDOF or Pure Pursuit.
- Sales / PT: PoC summary v3 and Competitive matrix.
- Implementation tour: Software architecture.
- Roadmap to multibody: Multibody outlook.