Skip to main content
MATLAB and Simulink (Beta) export, 3D simulations, model builders, and plottable raw files
The Download button on a parameterized model’s page is now a menu: the existing model and parameters JSON, MATLAB code, and Simulink block (Beta). The Simulink block has been checked in Octave but not yet run in MATLAB/Simulink. Both exports use the model’s saved simulation settings, so the exported model matches what runs in Studio. Current and ambient temperature are always inputs, and initial SOC is an input for ECM and lithium-ion models. The MATLAB export includes a README and a run_example.m, and models with algebraic equations (such as ECM and DFN) work in both exports.

3D simulations

Models can now start from a 2D (x-z) or 3D (x-y-z) unstructured DFN preset in the model create form, and their results have a new Spatial field plot. It draws the field on the cell’s mesh in the browser, with a time slider, a cutaway along any axis, mesh edges and a fixed colour bar.

Build a model’s parameters from any cell spec

A model builder is a recipe, saved on a model, that turns a cell specification into that model’s parameter set. Each parameter comes from the cell spec (with units converted automatically), a fixed value, or a calculation whose inputs can themselves be read from the spec. Test on example runs an unsaved recipe against an example spec, and Build model in a cell spec’s Parameterized models tab saves the result. Builders are also available in the Python API as client.model_builder.Parameterized models can now keep a calculated parameter as the calculation that produces it rather than a frozen number, so overriding one of its inputs in a simulation (e.g. an active material fraction) recomputes it.

Raw files you can open, plot and triage

Every file in Data → Raw data now opens its own page. A file that parsed is plotted with the same plot card as a measurement (time series, cycles, dV/dQ, step filters); a file that didn’t shows its findings with Retry and Download. Files waiting for a decision or for their cell to be registered are counted on the Measurements sidebar item and announced on project Home and Measurements, linking to a review view. Files in a format no reader recognizes are marked Unsupported and hidden from the list by default, so they no longer bury the failures that need attention.
Improvements
  • Models belong to a project. A model is visible only in its own project, and each project has its own copy of the built-in models. Model names are unique per project.
  • Report a cell or test as failed. A Report failure dialog on a measurement marks either that test or the whole cell as failed, with a reason. A failed cell fails every test on it; a failed test leaves the cell alone.
  • List pages remember their view. Filters, search, sort and page size are kept when you leave a list and come back in the same tab, on raw data, measurements, cells, materials, models, parameterized models, pipelines, protocols, optimizations and dashboards.
  • Simulation plot boards are saved. Plots you add and the layout you arrange on a simulation’s page are restored the next time anyone opens it.
  • Copy a plot to the clipboard from the plot toolbar, ready to paste into a doc or slides. Downloaded and copied PNGs now use the plot’s background colour and have padding on every edge.
  • The Voltage components plot is opt-in. It is shown with a Show voltage components button, and only offered when the current keeps one sign.
  • Filter pills on status columns show ticks for what the grid shows, with Only to keep a single value and Select all to clear the filter.
Fixes
  • Re-uploading a fuller cycler export no longer fails when the cycler renumbered its cycle counter between exports.
  • Auto-fixing a reversed current sign now flips power too, so charge and discharge energy are no longer swapped.
  • Fits whose validation produced no score no longer stay “processing” after they finish, and jobs that will never finish are now marked failed instead of showing “pending” indefinitely.
  • A design optimization or fit where every simulation fails now fails with an error instead of completing with a penalty cost.
  • A cell can no longer be scheduled onto two channels at overlapping times.
  • Icons on light buttons in dark mode match their label’s colour instead of white.
  • A raw file’s page adds one browser history entry and shows one loading screen.
  • Listing a cell’s measurements now returns each measurement’s channel_id.
Improvements
  • New calculations: ElectrodeBalanceFromFirstCycleEfficiency (stoichiometry limits and initial concentrations from electrode geometry, nominal capacity and first-cycle efficiency) and ElectrodeGeometryFromLoading (thickness, active volume fraction and porosity from coating loading and press density).
  • Requires pybamm>=26.10.1.1.
Fixes
  • A fit where every evaluation fails now raises an error instead of returning the initial guess.
  • A composite-electrode MSMR config with hysteresis on only one phase gives a clear configuration error instead of a bare KeyError.
Improvements
  • client.model.create_from_zoo(...) imports a model from the PyBaMM model zoo and creates both a model and a parameterized model in one call. cell_spec_id is optional, and model constructor arguments go in model_kwargs.
  • Cheaper simulation lookup. client.simulation.list takes protocol_id, state (queued/running/completed/failed) and summary, and parameterized models can be listed without their parameter values. Every simulation record carries its protocol_id and protocol_name.
Fixes
  • Large uploads no longer fail with HTTP 524 on a slow part.
  • Dependency floors across the public packages are raised to versions that actually install and import (e.g. pandas>=2.2.2, pyarrow>=16.0.0).
Fixes
  • Step classification ignores a step’s trailing sample when it carries the next step’s setpoint, so constant-current steps are no longer classified as “Unknown step type”.
Fixes
  • BioLogic exports with C-rate steps or end conditions load on the instrument: C-rates are written as absolute currents against the cell’s nominal capacity.
  • Nested repeat blocks keep the right cycle counts through an Arbin export and re-import.
  • A step_block: written with a name: field now takes that name, so two such blocks validate and goto can target them.
  • A C-rate < x end condition now fires on models without a C-rate variable, such as iwp.models.ECM.
Improvements
  • manage-projects covers project-scoped models, importing from the PyBaMM model zoo, and live calculated parameters.
  • run-simulations and search show how to find and reuse an existing simulation.
  • manage-protocols notes that BioLogic exports need the cell’s nominal capacity.