Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 4.16 KB

File metadata and controls

60 lines (46 loc) · 4.16 KB

Architecture Map: OpenSim_Models

Architecture map and system boundaries for OpenSim_Models following the Mermaid C4 contract.

Context View (C4Context)

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")
Loading

Container View (C4Container)

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")
Loading

Feature Map

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

Architecture Change Log

Date Issue / PR Description
2026-09-10 #1606 Adopt maintainable Mermaid C4 architecture-map contract with C4Context, C4Container, and Feature Map.