MCPcopy Index your code
hub / github.com/AntaresSimulatorTeam/GEMS

github.com/AntaresSimulatorTeam/GEMS @v0.3.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.3.4 ↗ · + Follow
69 symbols 266 edges 17 files 44 documented · 64%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GEMS Logo

Version License: MPL 2.0 Validation Tests Documentation Status

🚀 Getting Started🔎 Overview📚 UserGuide↔️ Interoperability💡 Examples🤝 Support & Contributing

What is GEMS?

GEMS is a high-level modelling language, close to mathematical syntax, and a data structure for describing energy systems. Compared to other algebraic modelling languages, GEMS is object- and graph-oriented, making it particularly well-suited to representing energy systems.

<a href="https://gems-energy.readthedocs.io/en/latest/">🌐 Visit Website</a>

Vision and Ambitions for GEMS

The ambition behind the GEMS language is to build and support a community of energy modellers and energy foresight practitioners who can easily share models, assumptions, and studies. This approach is particularly important as future energy systems — strategic by nature — are increasingly conceived in a multi-energy, multi-actor landscape, characterised by rising systemic complexity and tightly coupled interactions across scales.

<img src="https://github.com/AntaresSimulatorTeam/GEMS/raw/v0.3.4/doc/assets/Communaute.jpg" alt="GEMS Logo" width="150px"/>

GEMS has the key attributes required to support and sustain such a community.

  • Versatility: GEMS is a generic optimisation language capable of representing a wide range of energy systems and use cases, from operational studies to long-term planning, across multiple energy carriers and scales.

  • Code Stability and Maintainability: By clearly separating model definition from problem resolution, GEMS promotes robust, modular, and maintainable code that can evolve over time without breaking existing models.

  • Interoperability: GEMS relies on a self-contained and exhaustive mathematical formulation, ensuring that all modelling assumptions, variables, and constraints are explicitly defined. This guarantees unambiguous interpretability of models, which is a key enabler for true interoperability between tools, solvers, and modelling frameworks.

    GEMS Logo

Resources

The GEMS documentation, pre-defined model libraries and quick-start examples are hosted in the GitHub repository: GEMS

The following interpreters can be used to run Gems modelling language :

  • Antares Simulator, an open-source power system simulator
  • GemsPy, a stand-alone Python package, maintained for prototyping purposes

Converters are available to translate existing studies into the GEMS modelling language:

Core symbols most depended-on inside this repo

escapeHtml
called by 34
doc/javascripts/yaml-loader.js
copy_study_dir_to_tmp
called by 7
tests/e2e_tests/utils.py
get_gems_objective_function_value
called by 6
tests/e2e_tests/utils.py
createPopup
called by 5
doc/javascripts/yaml-loader.js
get_notebook_objective
called by 4
tests/e2e_tests/utils.py
copy_model_library
called by 4
tests/e2e_tests/utils.py
get_gems_study_objective
called by 4
tests/e2e_tests/utils.py
_read_antares_version
called by 4
tests/e2e_tests/env.py

Shape

Function 68
Class 1

Languages

Python65%
TypeScript35%

Modules by API surface

doc/javascripts/yaml-loader.js24 symbols
tests/e2e_tests/utils.py11 symbols
tests/unit_tests/test_objective_parsing.py7 symbols
tests/e2e_tests/test_doc_tutorial_three_investment.py5 symbols
tests/unit_tests/test_study_copy_utils.py4 symbols
tests/e2e_tests/conftest.py4 symbols
tests/unit_tests/test_env_paths.py3 symbols
tests/e2e_tests/test_doc_tutorial_one_unit_commitment.py3 symbols
tests/e2e_tests/env.py3 symbols
tests/e2e_tests/test_doc_qse_examples.py2 symbols
tests/e2e_tests/test_pypsa_eur_tutorial.py1 symbols
tests/e2e_tests/test_antares_legacy_models_equivalence.py1 symbols

For agents

$ claude mcp add GEMS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact