Skip to content
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.


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