Tulipa Energy Model
An energy system modelling framework for investment (expansion) and dispatch (operations) optimisations using mixed-integer linear programming (MILP) - primarily for informing policy-maker & stakeholder decisions in the energy transition. Focuses on generalized & compact formulations (peer-reviewed publications) and efficient code implementation to handle large-scale problems (i.e. European) while maintaining sufficient granularity.
https://github.com/tulipaenergy/tulipaenergymodel.jl
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords
energy-systems energy-transition milp modelling-tool optimization
Keywords from Contributors
electricity-market-modelling energy-system-modelling modelling-framework climate-change
Last synced: about 10 hours ago
JSON representation
Repository metadata
An energy system optimization model that is flexible, computationally efficient, and academically robust.
- Host: GitHub
- URL: https://github.com/tulipaenergy/tulipaenergymodel.jl
- Owner: TulipaEnergy
- License: apache-2.0
- Created: 2023-08-09T11:43:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-08-05T12:01:02.000Z (6 days ago)
- Last Synced: 2026-08-05T13:17:44.878Z (6 days ago)
- Topics: energy-systems, energy-transition, milp, modelling-tool, optimization
- Language: Julia
- Homepage:
- Size: 208 MB
- Stars: 79
- Watchers: 1
- Forks: 37
- Open Issues: 48
- Releases: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
- Agents: AGENTS.md
README.md
TulipaEnergyModel
This package provides an optimization model for the electricity market and its coupling with other energy sectors (e.g., hydrogen, heat, natural gas, etc.). The main objective is to determine the optimal investment and operation decisions for different types of assets (e.g., producers, consumers, conversions, storages, and transports).
How to Cite
If you use TulipaEnergyModel.jl in your work, please cite using the reference given in CITATION.cff.
Installation
pkg> add TulipaEnergyModel
See the documentation for details on the model and the package.
Bug reports and discussions
If you think you have found a bug, feel free to open an issue.
If you have a general question or idea, start a discussion.
Contributing
If you want to contribute (awesome!), please read our Contributing Guidelines and follow the setup in our Developer Documentation.
If you contribute with AI agents, please also follow the "Working with AI Agents" section in the developer docs, including the recommendation to configure your agent to always read AGENTS.md.
License
This content is released under the Apache License 2.0 License.
AI Coding Assistant Attribution
We use and accepts pull requests with AI coding assistants to help with development, but we expect the committers to understand and be responsible for the code that they introduce.
All commits that receive AI assistance should be signed off with:
Co-authored-by: MODEL NAME (FULL MODEL VERSION) <EMAIL>
For example:
Co-authored-by: Claude Code (claude-sonnet-4-20250514) <noreply@anthropic.com>
Contributors
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Tulipa Energy Model
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Abel
family-names: Soares Siqueira
email: abel.siqueira@esciencecenter.nl
affiliation: Netherlands eScience Center
orcid: "https://orcid.org/0000-0003-4451-281X"
- given-names: Diego A.
family-names: Tejada-Arango
email: diego.tejadaarango@tno.nl
affiliation: TNO
orcid: "https://orcid.org/0000-0002-3278-9283"
- given-names: Germán
family-names: Morales-España
email: german.morales@tno.nl
affiliation: TNO
orcid: "https://orcid.org/0000-0002-6372-6197"
- given-names: Grigory
family-names: Neustroev
email: g.neustroev@tudelft.nl
affiliation: Delft University of Technology
orcid: "https://orcid.org/0000-0002-7706-7778"
- given-names: Juha
family-names: Kiviluoma
email: juha.kiviluoma@nodal-tools.fi
affiliation: Nodal Tools, Finland
orcid: "https://orcid.org/0000-0002-1299-9056"
- given-names: Lauren
family-names: Clisby
email: lauren.clisby@tno.nl
affiliation: TNO
orcid: "https://orcid.org/0009-0008-7848-4144"
- given-names: Maaike
family-names: Elgersma
email: m.b.elgersma@tudelft.nl
affiliation: TU Delft
- given-names: Ni
family-names: Wang
email: ni.wang@tno.nl
affiliation: TNO
orcid: "https://orcid.org/0000-0001-7037-7004"
- given-names: Suvayu
family-names: Ali
email: s.ali@esciencecenter.nl
affiliation: Netherlands eScience Center
- given-names: Zhi
family-names: Gao
email: z.gao1@uu.nl
affiliation: Utrecht University
orcid: "https://orcid.org/0000-0002-3817-8037"
identifiers:
- type: other
value: arXiv.2309.07711
description: The ArXiv preprint of the mathematical formulation
- type: doi
value: 10.5281/zenodo.8363262
description: Concept DOI for Zenodo deposition
repository-code: "https://github.com/TulipaEnergy/TulipaEnergyModel.jl"
abstract: >-
The Tulipa Energy Model is a Julia package for energy
planning that considers the electricity market and sector
couplings.
keywords:
- Open source tool
- Energy system modelling
- Energy system analysis
- Integrated energy systems
- Investment planning
- Sector coupling
license: Apache-2.0
Owner metadata
- Name: Tulipa
- Login: TulipaEnergy
- Email:
- Kind: organization
- Description: Electricity Market and Sector-Coupling Modelling Tools from TNO
- Website:
- Location: Netherlands
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/137513646?v=4
- Repositories: 1
- Last ynced at: 2023-09-14T03:44:06.203Z
- Profile URL: https://github.com/TulipaEnergy
GitHub Events
Total
- Create event: 146
- Commit comment event: 29
- Release event: 10
- Delete event: 160
- Member event: 2
- Pull request event: 439
- Fork event: 13
- Discussion event: 2
- Issues event: 412
- Watch event: 34
- Issue comment event: 909
- Push event: 873
- Pull request review comment event: 463
- Pull request review event: 641
Last Year
- Create event: 45
- Commit comment event: 8
- Release event: 1
- Delete event: 57
- Pull request event: 101
- Discussion event: 2
- Issues event: 131
- Watch event: 13
- Issue comment event: 165
- Push event: 291
- Pull request review event: 89
- Pull request review comment event: 71
Committers metadata
Last synced: 4 days ago
Total Commits: 808
Total Committers: 20
Avg Commits per committer: 40.4
Development Distribution Score (DDS): 0.684
Commits in past year: 215
Committers in past year: 13
Avg Commits per committer in past year: 16.538
Development Distribution Score (DDS) in past year: 0.763
| Name | Commits | |
|---|---|---|
| Abel Soares Siqueira | a****a@g****m | 255 |
| Diego Alejandro Tejada Arango | 1****a | 202 |
| Ni Wang | 1****n | 117 |
| Lauren Clisby | l****y@g****m | 87 |
| dependabot[bot] | 4****] | 44 |
| github-actions[bot] | 4****] | 43 |
| allcontributors[bot] | 4****] | 16 |
| Copilot | 1****t | 10 |
| Greg Neustroev | G****v@t****l | 6 |
| Florine LASEUR | 7****r | 5 |
| Suvayu Ali | s****u | 5 |
| Isaï Magan | 1****O | 4 |
| Sander van Rijn | s****n@e****l | 4 |
| urosgluscevic | 5****c | 3 |
| Germán Morales | 4****a | 2 |
| Dheepak Krishnamurthy | 1****k | 1 |
| Joaquim Dias Garcia | j****a@g****m | 1 |
| Yurian Lagrand | 5****2 | 1 |
| mauro-gs | 6****s | 1 |
| nope82 | 8****2 | 1 |
Committer domains:
- esciencecenter.nl: 1
- tudelft.nl: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 546
Total pull requests: 976
Average time to close issues: about 2 months
Average time to close pull requests: 6 days
Total issue authors: 12
Total pull request authors: 19
Average comments per issue: 1.49
Average comments per pull request: 2.01
Merged pull request: 773
Bot issues: 0
Bot pull requests: 116
Past year issues: 72
Past year pull requests: 129
Past year average time to close issues: 3 months
Past year average time to close pull requests: 9 days
Past year issue authors: 6
Past year pull request authors: 11
Past year average comments per issue: 1.31
Past year average comments per pull request: 1.99
Past year merged pull request: 86
Past year bot issues: 0
Past year bot pull requests: 36
Top Issue Authors
- datejada (196)
- abelsiqueira (146)
- clizbe (95)
- gnawin (94)
- suvayu (3)
- lsoucasse (2)
- urosgluscevic (2)
- trulsf (2)
- gzclarence (2)
- aporrasc (2)
- IsaiMaganTNO (1)
- greg-neustroev (1)
Top Pull Request Authors
- abelsiqueira (303)
- datejada (230)
- gnawin (169)
- clizbe (114)
- github-actions[bot] (50)
- dependabot[bot] (37)
- allcontributors[bot] (29)
- Copilot (8)
- IsaiMaganTNO (7)
- urosgluscevic (6)
- suvayu (6)
- florinelaseur (4)
- greg-neustroev (3)
- kdheepak (2)
- nope82 (2)
Top Issue Labels
- Type: improvement (155)
- Zone: documentation (55)
- Type: addition (53)
- good first issue (53)
- Zone: data & import (46)
- Zone: optimisation model (46)
- Zone: code architecture (25)
- Zone: setup/admin (22)
- Type: bug (19)
- stale (18)
- Zone: testing (16)
- epic (15)
- Type: epic (12)
- Zone: export & visualisation (7)
- Type: research (6)
- question (3)
- chore (1)
- benchmark (1)
- Zone: import/export (1)
- bug (1)
Top Pull Request Labels
- benchmark (168)
- dependencies (37)
- chore (22)
- github_actions (14)
- julia (10)
- pr-test-all (10)
- Zone: data & import (2)
- question (1)
Package metadata
- Total packages: 3
-
Total downloads:
- julia: 196 last-month
- Total dependent packages: 1 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 120
proxy.golang.org: github.com/tulipaenergy/tulipaenergymodel.jl
- Homepage:
- Documentation: https://pkg.go.dev/github.com/tulipaenergy/tulipaenergymodel.jl#section-documentation
- Licenses: apache-2.0
- Latest release: v0.22.2 (published about 1 month ago)
- Last Synced: 2026-08-10T18:51:58.397Z (1 day ago)
- Versions: 41
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
proxy.golang.org: github.com/TulipaEnergy/TulipaEnergyModel.jl
- Homepage:
- Documentation: https://pkg.go.dev/github.com/TulipaEnergy/TulipaEnergyModel.jl#section-documentation
- Licenses: apache-2.0
- Latest release: v0.22.2 (published about 1 month ago)
- Last Synced: 2026-08-10T18:51:58.405Z (1 day ago)
- Versions: 41
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
juliahub.com: TulipaEnergyModel
An energy system optimization model that is flexible, computationally efficient, and academically robust.
- Homepage:
- Documentation: https://docs.juliahub.com/General/TulipaEnergyModel/stable/
- Licenses: Apache-2.0
- Latest release: 0.21.0 (published 5 months ago)
- Last Synced: 2026-04-01T04:02:16.845Z (4 months ago)
- Versions: 38
- Dependent Packages: 1
- Dependent Repositories: 0
- Downloads: 196 Last month
-
Rankings:
- Dependent repos count: 10.054%
- Forks count: 15.872%
- Average: 30.449%
- Dependent packages count: 36.985%
- Stargazers count: 58.886%
Dependencies
- actions/checkout v3 composite
- julia-actions/julia-buildpkg latest composite
- julia-actions/setup-julia latest composite
- julia-actions/setup-julia v1 composite
- actions/checkout v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-docdeploy v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- julia-actions/cache v1 composite
- julia-actions/setup-julia v1 composite
- actions/stale v4.1.1 composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v3 composite
- codecov/codecov-action v3 composite
- julia-actions/cache v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
Score: 13.123123088750571