Skip to main content
v2026.11,858 entries · CC-BY 4.0
LAC HealthMedical & Research SuppliesReagents, PPE & instruments — chain-of-custody documented.Fast, traceable sourcing built for regulated research environments, from bench consumables to instrumentation.Shop lac.us CodeCASRAIlac.us
GuideResearch Tools & Software

Also relevant to: Climate & Sustainability

Brightway LCA: Open-Source Python Framework Guide

A practical guide to the Brightway open-source Python LCA framework, covering Brightway 2.5 installation, project management, and matrix calculations.

Written and maintained by CASRAI Editorial Board

Last updated

Brightway is an open-source Python framework designed for matrix-based Life Cycle Assessment (LCA) and computational environmental impact modeling. Rather than relying on a closed graphical user interface, Brightway provides high-performance libraries that allow environmental scientists, industrial ecologists, and sustainability analysts to automate life cycle inventory (LCI) processing, execute parameterized scenarios, and conduct rapid life cycle impact assessment (LCIA) calculations.

For researchers evaluating complex industrial systems or regional supply chains, Brightway provides direct programmatic control over underlying linear systems. It integrates with NumPy, SciPy, and pandas, enabling reproducible workflows that connect directly into scientific computing pipelines.

What Brightway is

Brightway is a specialized computational platform developed to solve the matrix mathematics of life cycle assessment. In LCA methodology, industrial processes, economic inputs, and environmental elementary flows are represented through systems of linear equations: the technosphere matrix A describing inter-process exchanges, the intervention or biosphere matrix B describing resource extraction and emissions, and the characterization matrix C mapping flows to impact categories.

Brightway exposes these relationships directly through dedicated modular packages:

  • bw2data: Manages project workspaces, database storage, activities, exchanges, and metadata through an embedded SQLite backend.
  • bw2calc: Solves sparse matrix linear systems (such as inventory calculation g = B · A-1 · f for functional demand f), executing static calculations, characterization, and Monte Carlo iterations.
  • bw2io: Manages data extraction, schema mapping, and import strategies for external inventories, including ecoinvent, SimaPro CSV, and Ecospold formats.
  • bw2analyzer: Provides tools for contribution analysis, supply chain graph traversal, and impact category diagnostics.

The current stable generation is Brightway 2.5 (distributed via the brightway25 metapackage). It utilizes the bw_processing standardized data package format to accelerate calculations on large background databases.

Who maintains Brightway and what it covers

Brightway was created by Dr. Chris Mutel during doctoral research, supported by Professor Stefanie Hellweg at ETH Zürich and the Paul Scherrer Institute (PSI). The primary academic reference is Mutel’s 2017 publication in the Journal of Open Source Software (DOI: 10.21105/joss.00236). The ecosystem is maintained by the Brightway Developers community across academia and industry under permissive BSD licensing terms (predominantly the BSD 3-Clause license, copyright held by Brightway Developers, ETH Zürich, and Paul Scherrer Institute).

Brightway covers the core analytical lifecycle of an environmental assessment study:

  • Inventory management: Importing and searching background databases (such as ecoinvent, USEEIO, and FORWAST) alongside foreground system inventories.
  • Impact assessment libraries: Housing characterization factors across standard LCIA methods, including IPCC global warming potentials, ReCiPe, EF, and TRACI.
  • Matrix calculations: Solving linear systems with sparse solvers such as PARDISO and SuiteSparse (via scikit-umfpack).
  • Uncertainty analysis: Propagating parameter distributions through Monte Carlo sampling.

How to install and run Brightway: Step-by-step workflow

Executing an LCA calculation in Brightway follows a structured sequence: configuring the environment, opening an isolated project, installing baseline biosphere flows, loading inventory data, preparing functional inputs, and solving the matrix equations.

Step 1: Set up the environment and install packages

Brightway requires Python 3.9 or newer. Using an isolated Conda or virtual environment is recommended. For environment setup instructions, see our guide to install Anaconda Python.

To install Brightway 2.5 with its linear algebra solver via Conda or Mamba on 64-bit Linux, Windows, or macOS (x86_64):

conda create -n brightway -c conda-forge -c cmutel brightway25
conda activate brightway

Alternatively, via pip in a virtual environment:

pip install brightway25 pypardiso

On Apple Silicon (ARM) macOS, install SuiteSparse via Homebrew (brew install swig suite-sparse) and install scikit-umfpack alongside brightway25, as pypardiso is x86-only.

Step 2: Initialize or switch project workspaces

Brightway organizes databases and calculation configurations into distinct project directories:

import bw2data as bd

# Check current active project
print(bd.projects.current)

# Set active project workspace
bd.projects.set_current("building_materials_lca")

In Brightway 2.5, legacy bw2setup() is deprecated and must not be used, as it installs outdated flow schemas that conflict with current databases.

Step 3: Install baseline biosphere data

Before importing background databases, install standard elementary biosphere flows and LCIA methods via bw2io:

import bw2io as bi

# Install modern biosphere and default LCIA methods
bi.remote.install_project("ecoinvent-3.10-biosphere", "building_materials_lca")

Step 4: Import foreground and background databases

Users with an ecoinvent account can import release datasets directly through the automated interface:

bi.import_ecoinvent_release(
    version="3.10",
    system_model="cutoff",
    username="ecoinvent_user",
    password="ecoinvent_password"
)

For custom institutional datasets stored in Ecospold2, SimaPro CSV, or Excel format, run the corresponding importer:

importer = bi.SingleOutputEcospold2Importer(
    dirpath="/path/to/ecospold_files",
    db_name="custom_facility_inventory"
)
importer.apply_strategies()
importer.match_database("ecoinvent-3.10-cutoff")

if importer.all_linked:
    importer.write_database()

For principles of structuring external datasets, review our guides on what is data integration and what is data lineage.

Step 5: Define the functional unit and prepare calculation inputs

Define a demand dictionary specifying the target activity and quantity, then assemble calculation objects with prepare_lca_inputs:

import bw2calc as bc

# Find activity in database
db = bd.Database("custom_facility_inventory")
activity = db.search("structural steel beam")[0]

# Define functional unit (e.g., 1000 kg steel) and impact method
functional_unit = {activity: 1000.0}
method = ("IPCC 2021", "climate change", "global warming potential (GWP100)")

# Assemble calculation inputs
demand, data_objs, _ = bd.prepare_lca_inputs(functional_unit, method=method)

Step 6: Compute LCI and characterized LCIA results

Initialize the LCA object with prepared inputs and execute the inventory and characterization steps:

# Solve matrix equations
lca = bc.LCA(demand=demand, data_objs=data_objs)
lca.lci()
lca.lcia()

# Retrieve cumulative impact score
print("Total Impact:", lca.score)

Step 7: Export results for downstream analysis

Export the characterized inventory matrix directly to a pandas DataFrame for reporting:

# Convert results to DataFrame
df_results = lca.to_dataframe(matrix_label="characterized_inventory")

To inspect and reshape tabular outputs, see our tutorial on how to create a DataFrame in Python.

Strengths and limitations for research workflows

Brightway offers distinct trade-offs for academic and technical research compared to desktop LCA tools.

Core strengths

  • Computational flexibility: Allows arbitrary looping, parameterized scenario analysis, and custom optimization routines impossible in GUI tools.
  • Direct matrix visibility: Exposes raw A, B, and C matrices for custom linear algebra and sensitivity inspection.
  • High computational speed: Sparse matrix solvers like PARDISO invert large technosphere networks in milliseconds.
  • Reproducibility: Model definitions, code, and calculation pipelines can be version-controlled in Git repositories.

Key limitations

  • Programming prerequisites: Requires practical knowledge of Python and matrix mathematics.
  • No native GUI: Exploring supply chain graphs requires external tools or custom visualization scripts.
  • Strict user responsibility: The framework does not guard against ill-conditioned systems or non-invertible matrices created by incorrect user input.

Alternatives to Brightway

Researchers balance programmatic automation against graphical convenience when choosing an LCA modeling environment:

Platform Primary Interface Licensing Model Scripting & Automation Best Suited For
Brightway Python API & CLI Open Source (BSD 3-Clause) Native Python (NumPy, SciPy, pandas) Scripted pipelines, Monte Carlo simulations, and academic research
Activity Browser Desktop GUI (PyQt) Open Source (LGPL / GPL) Runs Brightway backend underneath GUI Visual project navigation and process exploration using Brightway data
openLCA Desktop GUI (Java) Open Source (MPL 2.0) Python IPC and REST API plugins Standardized institutional modeling with graphical process flows
SimaPro Desktop & Web GUI Commercial Proprietary COM interface / REST API (tiered) Industrial environmental product declarations (EPD) and consulting

Frequently asked questions

What is the difference between brightway2 and brightway25?

brightway2 was the initial release series of the framework. brightway25 (Brightway 2.5) is the modern package architecture requiring Python 3.9 or higher. It introduces the bw_processing standardized datapackage format, updates database backend storage, and incorporates accelerated linear algebra solvers including pypardiso and scikit-umfpack.

Why is bw2setup() deprecated in Brightway?

In older tutorials, projects were initialized with bw2setup(). In Brightway 2.5, this command is deprecated because it installs hardcoded elementary flow schemas that conflict with newer ecoinvent versions (3.8 and above). Users should use bi.remote.install_project() or bi.import_ecoinvent_release() instead.

Does Brightway include a graphical user interface?

No, core Brightway is a Python programming library for scripts and Jupyter Notebooks. Practitioners seeking a point-and-click GUI while retaining Brightway’s underlying data model can use Activity Browser, an open-source PyQt desktop application built on top of Brightway.

Can Brightway perform Monte Carlo uncertainty analysis?

Yes. Brightway natively supports stochastic calculations through bw2calc. Exchange parameters containing uncertainty distributions (such as lognormal, normal, or uniform distributions) can be evaluated across thousands of Monte Carlo iterations to calculate output distributions.

Sources

  • Mutel, C. (2017). Brightway: An open source framework for Life Cycle Assessment. Journal of Open Source Software, 2(12), 236. https://doi.org/10.21105/joss.00236 (Read 2026-11-07).
  • Brightway Documentation: Installation Guide. https://docs.brightway.dev/en/latest/content/installation/index.html (Read 2026-11-07).
  • Brightway Documentation: Projects & Database Cheatsheet. https://docs.brightway.dev/en/latest/content/cheatsheet/projects.html and https://docs.brightway.dev/en/latest/content/cheatsheet/databases.html (Read 2026-11-07).
  • Brightway Documentation: Importing Data & Ecoinvent. https://docs.brightway.dev/en/latest/content/cheatsheet/importing.html (Read 2026-11-07).
  • Brightway Documentation: LCA Calculations Cheatsheet. https://docs.brightway.dev/en/latest/content/cheatsheet/lca.html (Read 2026-11-07).
  • Brightway Documentation: Credits and Licensing. https://docs.brightway.dev/en/latest/content/other/credits.html (Read 2026-11-07).

Follow CASRAI

Research-administration guidance, standards updates and independent tool reviews.

Ask CASRAI · free to try

Ask about Brightway LCA: Open-Source Python Framework Guide

Ask your first 2 questions free below. Subscribers get 150 a day for $29 a month.

An AI assistant specialized in research administration. It cites the sources behind every answer, labels web answers and says when it can't answer.

Answers draw on CASRAI's guides and dictionary plus the federal and funder documents we index: Federal Register, Grants.gov, Regulations.gov and UKRI.

Works on this site and inside Claude, Cursor and the AI tools you already use.

Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo

View CASRAI adoption →