June 1, 2026
Faster default simulation solver, structured error details on failed pipelines and optimizations, Wasserstein weighted mode and MSMRFullCell dQ/dU output
Faster default simulation solver
Simulations now default to a new solver that is a drop-in replacement for the previous PyBaMM-based solver, with substantially reduced per-step cost on supported model types and automatic fallback for models it doesn’t yet cover. Piecewise interpolation now also acceptssmoothing=0 so a hard step function can be modelled directly.Structured error details on failed pipelines and optimizations
Pipeline element and optimization failures now carry a structurederror_detail with the exception type and a link to the captured
diagnostic event. Two new job error codes — CONFIGURATION_ERROR and
SOLVER_ERROR — separate user-fixable config mistakes from
solver-side failures. In Studio, failed optimizations now show a
View diagnostic button (superadmin only) that opens the captured
event directly; the exception message itself is stripped before
serialization so user-visible diagnostics stay safe to share.Wasserstein weighted-point-cloud mode and MSMRFullCell dQ/dU output
iws.costs.Wasserstein gains optional position_variable and
weight_variable fields. When both are set, the cost computes one
Wasserstein-1 distance per objective comparing two weighted point
clouds — useful for full-cell MSMR fits where peak-location error in
Voltage [V] should be measured by the |dQ/dV| weights instead of
sample-by-sample. MSMRFullCell also now emits
Differential capacity [Ah/V] when listed in objective variables,
derived from Full voltage [V] / Full capacity [A.h] and
interpolated to the data voltage grid.Pipelines documentation moved to schema-first Docs section
The runnable “how do I actually run this” pipelines content has moved out of the Guide into a new schema-first Pipelines section under the Documentation tab, with every code sample rewritten to useionworks-schema + ionworks-api. The Guide retains the theory —
equations, parameter tables, intuition — and its existing “Pipelines”
group is renamed to Parameterization. The Japanese tab mirrors
the new section.Studio
Studio
Fixes
- Project-scoped ECM fitting from existing measurements no longer fails with a validation error: the frontend now sends the payload shape the backend expects for per-measurement initial SOC, and shows a per-measurement initial-SOC input next to each selected measurement.
Pipeline
Pipeline
Improvements
client.simulation.protocol(...)acceptsdesign_parametersagain as a flat dict — the single-simulation convenience that was accidentally removed when the protocol-template flow landed. Supplying bothdesign_parametersanddesign_parameters_doe, or a DOE that expands to more than one simulation, now raises explicitly instead of silently billing for the extra runs.- BioLogic
.mpsprotocols with large embedded drive-cycle tables (e.g. ~96k-row Urban Profile traces inlined as YAML block scalars) no longer time out when parsed via/protocols/parse-to-template. iws.direct_entries.DirectEntryaccepts apybamm.ParameterValuesdirectly. Callable values (concentration- / temperature-dependent interpolants) are serialized automatically and deserialized back into pybamm symbols so local and API consumption paths behave the same.
- Logging configuration now correctly governs all pipeline submodule loggers, so log-level settings apply consistently across the package.
Python API
Python API
Improvements
client.simple_pipeline.create(...)accepts aPipelineOptions(e.g.live_progress_updates=False), wiring this option through end to end from the SDK client.
- Outbound JSON payloads no longer raise
TypeErrorwhen a request body contains a pandas DataFrame with datetime columns.pd.Timestampis serialized viaisoformat()andpd.NaTbecomesnull.
Protocol Simulator
Protocol Simulator
Fixes
- BioLogic
.mpsparser no longer hangs on protocols likelfp_gr_cccv.mpswhere an internal sub-cycle pointer could be misread as a forward jump. Only genuine forward jumps emit gotos; backward or equal values are treated as plain step-ends.
Skills
Skills
Improvements
- Ionworks skills can now be installed as a Gemini CLI extension; the Coding agents docs page is updated to cover Gemini CLI, Cursor, and GitHub Copilot install paths alongside Codex and Claude Code.
- New half-cell MSMR template and helper scripts in the parameterize skill. The reference page mandates the template and lays out a discover → inspect → scaffold → dry-run → submit → validate workflow so every half-cell OCP fit uses the same canonical priors, multistarts, and method.
- The process-data skill now documents the platform’s actual current
sign convention (
positive = discharge), matches the validator and corresponding transform, and calls out the double-flip trap.