Skip to content

GEMS

GEMS Logo

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.

To go further, see the Key Principles behind the language and the Features it supports today.

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 are increasingly conceived in a multi-energy, multi-sector landscape, characterised by rising complexity and tightly coupled interactions between energy carriers and sectors.

GEMS Logo

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/Interpretability : 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:

Documentation Highlights

Sections

  • User Guide


    Detailed presentation of GEMS syntax, file structure, and how to configure optimization studies.

    User Guide

  • Examples


    Examples can be found here from the first steps with GEMS to handling hybrid studies.

    Examples

  • Interoperability


    How to export PyPSA and Antares Legacy study cases in GEMS format and run them with GEMS interpreters.

    Interoperability

  • Support and Contributing


    Find here Support for using GEMS. How to Contribute to GEMS.

    Support

    Contributing