Architecture map and system boundaries for OpenSim_Models following the Mermaid C4 contract.
C4Context
title System Context Diagram - OpenSim_Models
Person(researcher, "Biomechanics Researcher / Engineer", "Designs simulations, evaluates joint kinematics, and runs musculoskeletal analysis.")
System_Ext(upstream_drift, "UpstreamDrift", "Athletic movement and biomechanics suite integrating OpenSim models.")
System_Ext(opensim_runtime, "OpenSim / SimTK", "Biomechanical modeling and simulation software loading generated .osim XML models.")
System(opensim_models, "OpenSim_Models", "Musculoskeletal OpenSim (.osim) model builders and kinematic helpers for barbell exercises.")
Rel(researcher, opensim_models, "Invokes CLI or Python API to generate models", "CLI / Python API")
Rel(upstream_drift, opensim_models, "Imports exercise model builders and anthropometrics", "Python Package")
Rel(opensim_models, opensim_runtime, "Exports valid OpenSim (.osim) XML documents", "XML / OSIM")
C4Container
title Container Diagram - OpenSim_Models Components
Container(cli, "CLI Entrypoint", "Python module (__main__.py)", "Provides CLI 'opensim-models' commands for model generation.")
Container(exercises, "Exercise Builders", "Python (opensim_models.exercises)", "Specific model builders: Squat, Bench Press, Deadlift, Snatch, Clean & Jerk.")
Container(shared_body, "Shared Body Library", "Python (opensim_models.shared.body)", "Winter 2009 anthropometric tables, axial skeleton, upper and lower limb assemblies.")
Container(shared_barbell, "Shared Barbell Library", "Python (opensim_models.shared.barbell)", "IWF/IPF Olympic barbell, weight plates, and attachment constraints.")
Container(contracts, "Design by Contract", "Python (opensim_models.shared.contracts)", "Preconditions and postconditions validating physical and geometric constraints.")
Container(utils, "XML & Geometry Helpers", "Python (opensim_models.shared.utils)", "OSIM XML serialization, coordinate transforms, and inertia calculations.")
Container(model_pack, "Model Pack Plugin", "Python (opensim_models.model_pack)", "Biomech model pack registration and packaging manifest.")
Rel(cli, exercises, "Configures and runs", "Python")
Rel(exercises, shared_body, "Assembles musculoskeletal segments", "Python")
Rel(exercises, shared_barbell, "Attaches barbell and loads", "Python")
Rel(exercises, contracts, "Enforces input/output validity", "Python")
Rel(exercises, utils, "Serializes model to OSIM XML", "Python")
Rel(model_pack, exercises, "Discovers and registers model builders", "Entry Points")
| Capability | Component | Interface | Evidence |
|---|---|---|---|
| Barbell Exercise OSIM Generation | opensim_models.exercises.* |
build_*_model(), ExerciseModelBuilder |
tests/unit/test_squat.py, tests/unit/test_bench_press.py, tests/unit/test_deadlift.py |
| Musculoskeletal Full-Body Assembly | opensim_models.shared.body.* |
create_full_body(), BodyModelSpec |
tests/unit/test_body_model.py |
| Olympic Barbell & Plates Model | opensim_models.shared.barbell.* |
create_barbell(), BarbellSpec |
tests/unit/test_barbell_model.py |
| Design-by-Contract Validation | opensim_models.shared.contracts.* |
@require_preconditions, @ensure_postconditions |
tests/unit/test_contracts.py |
| OSIM XML Serialization & Geometry | opensim_models.shared.utils.* |
serialize_model(), calculate_inertia() |
tests/unit/test_xml_helpers.py, tests/unit/test_geometry.py |
| Biomechanical Model Pack Registration | opensim_models.model_pack |
biomech.model_pack entry point, model_pack.yaml |
tests/test_model_pack.py |
| Architecture Map Contract Enforcement | scripts/architecture_map_contract.py |
CLI --path, validate_architecture_map() |
tests/scripts/test_architecture_map_contract.py |
| Date | Issue / PR | Description |
|---|---|---|
| 2026-09-10 | #1606 | Adopt maintainable Mermaid C4 architecture-map contract with C4Context, C4Container, and Feature Map. |