What is optimex?
optimex is an open-source Python package for time-explicit Life Cycle Optimization (LCO) — a framework that finds optimal technology transition pathways while fully accounting for when emissions occur and how the product systems and technologies evolve over time.
If you already do Life Cycle Assessment (LCA) with Brightway, optimex lets you take your existing product system models, temporalize them, and turn them into fully-fledged optimization problems — without having to rebuild anything from scratch.
Why LCA users need this
Standard LCA tells you the environmental impact of a predefined product system. But what if you want to choose between competing technologies, or find the best deployment schedule for a set of processes over a 25-year horizon? That's the domain of Life Cycle Optimization. LCO extends LCA by treating technology selection and capacity planning as decision variables, and minimizes an environmental objective subject to system constraints.
However, both LCA and LCO are traditionally static: all flows are collapsed to a single point in time, background supply chains are fixed, and the timing of real-world activities — construction, multi-year operation, end-of-life — is ignored. This matters enormously in a rapidly decarbonizing world where the same technology installed in 2025 versus 2035 carries very different lifecycle impacts.
optimex solves this by making both the assessment and the optimization time-explicit.
Why go time-explicit?
Making your optimization time-explicit unlocks insights that static approaches simply cannot provide:
- Temporal distribution of flows — Construction, operation, and end-of-life happen at different points in time. An electric vehicle built today will consume electricity over the next, say, 15 years; the underlying electricity mix might change a lot over this time period, affecting environmental impacts.
- Temporal evolution of technologies — A process installed in 2030 will be more efficient than one installed today.
optimexlocks in technology parameters at the time of installation (the vintage), so improving technologies are correctly credited when they are actually deployed. - Time-varying background systems — Upstream supply chains decarbonize.
optimexlinks foreground demands to time-specific background databases (e.g., generated with premise), so that future electricity, hydrogen, or steel inputs are assessed against future grid mixes rather than today's. - Flexible process operation - Because
optimexcan differentiate process installation from operation, it can also scale their operation independent of installation. Together with the vintage-tracking abilities, this enables vintage-specific dispatch preferring more efficient vintages. - Dynamic impact assessment — Characterization factors can vary over time. For climate change,
optimexdirectly integrates dynamic LCIA methods from dynamic_characterization, enabling radiative forcing, AGWP, or AGTP as objective metrics. - Novel transition strategies — Time-explicit LCO reveals strategies invisible to static models: strategic overcapacity that accepts stranded fossil assets to accelerate clean deployment, preferential dispatch of cleaner vintages, and technology diversification to navigate transient resource bottlenecks.
Use Cases
optimex is broadly applicable across sectors where temporal dynamics are decisive for sustainability:
- Evolving supply chains — Systems depending on electricity, steel, or hydrogen undergoing rapid decarbonization
- Early-stage technologies — Processes with significant vintage-dependent performance improvements (e.g., electrolyzers, DAC)
- Circular economy planning — Temporal mismatches between primary demand and secondary supply from long material residence times
- Time-resolved carbon accounting — Biogenic feedstocks, temporary carbon storage, or CO2 removal with varying temporal profiles
- Multi-regional supply chains — Sourcing across regions with divergent decarbonization trajectories
Built on Brightway
optimex is deeply integrated with the Brightway LCA ecosystem. You model your foreground system exactly as you would for a standard LCA — defining products, processes, and exchanges. You then add temporal metadata (relative temporal distributions, vintage-dependent scaling factors, operation-vs-installation flow classifications) as flow-level attributes. The rest is handled by optimex.
This means:
- No lock-in — Use any Brightway-compatible inventory database (ecoinvent, custom databases, etc.).
- Familiar workflows — If you know Brightway, you already know how to build foreground systems for
optimex. - Reuse existing models — Temporalize and optimize a product system you have already built for standard LCA.
Tip: you can also directly re-use temporalized product system models made with
bw_timex, our time-explicit assessment framework.
For optimization, optimex uses Pyomo, a powerful open-source algebraic modeling language for mathematical programming.
Installation
pip install optimex
More complete installation instructions are available here.
Documentation
Full documentation, tutorials, and examples are available at optimex.readthedocs.io.
optimex builds on Pyomo and Brightway. For time-explicit LCA without optimization, see bw_timex.
Citation
If you use optimex in your research, please consider citing our preprint:
Diepers, T., Tautorus, J., Hartmann, J. M., & von der Assen, N. (2026). A Framework for Time-Explicit Life Cycle Optimization. Preprint. https://doi.org/10.21203/rs.3.rs-9630408/v1
Support
- Timo Diepers (timo.diepers@ltt.rwth-aachen.de)
- Jan Tautorus (jan.tautorus@rwth-aachen.de)
Contributing
Open an Issue or Send a Pull Request — contributions are welcome. See CONTRIBUTING.md for the full contributor setup and workflow.
License
Metadata
Release files for optimex 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| optimex-0.7.0.tar.gz | 119.0 kB | With provenance | Details for optimex-0.7.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| optimex-0.7.0-py3-none-any.whl | Python 3 | none | any | Details for optimex-0.7.0-py3-none-any.whl |
Total release size: 186.2 kB
Release files / optimex-0.7.0.tar.gz
| Download URL | optimex-0.7.0.tar.gz |
|---|---|
| Size | 119.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b9c13d285a2c97ba540aa111a55737c54728e266ad05f5d8155daeb121bf5a01
|
|
BLAKE2b-256 checksum How to use checksums |
4d8767ef0c1611b60cd0db56221bcb2259b6853f9bfb8d22203da4fa42484260
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / optimex-0.7.0-py3-none-any.whl
| Download URL | optimex-0.7.0-py3-none-any.whl |
|---|---|
| Size | 67.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
36814a23417e0bcf2e7e6a6749bf23113a1df87a291922edc3802a550e5e01ba
|
|
BLAKE2b-256 checksum How to use checksums |
0b5f78b3375cbf92b33835084fdd45649d984f7ecf62af09d80dbf31ab103d38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logSecurity for optimex 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for optimex-0.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.