Skip to main content
April 27, 2026
Project-scoped ECM fitting, PyBaMM v26.4.0 support, SDK skills plugin, strict upload validators

Project-scoped ECM fitting

Equivalent-circuit-model fitting is now available directly inside a project. Pick any measurement already attached to one of the project’s cells (or upload a fresh CSV), preview the trace, run the fit, and save the result back to the project as a new model with one click. The new flow adds a model-vs-data plot, an error plot, a fitting-progress indicator, an OCV toggle helper, and auto-scrolls to the results when the fit completes. The standalone ECM demo continues to work for unauthenticated users.

PyBaMM v26.4.0 support

The simulation engine has been updated for PyBaMM v26.4.0, which introduces a dedicated Rest step class in place of the old zero-current step and renames the MSMR electrode-capacity parameters from short keys (e.g. Q_n_1, Q_p_1) to descriptive strings (e.g. “Negative electrode host site occupancy capacity (1) [A.h]”). Existing experiments and MSMR parameter sets continue to parse correctly under the new release.

SDK skills as a Claude Code plugin

The Ionworks Python SDK now ships with a set of installable Claude Code skills covering api-discovery, cell-data, data-upload, simulations, pipelines, and projects-and-studies. Each skill documents the relevant sub-clients, method signatures, and the create-or-get patterns so an AI assistant can drive the SDK against the current API surface. Install via /plugin marketplace add ionworks/ionworks-skills and /plugin install ionworks to get the slash commands and SessionStart hook for any Ionworks project.

Strict upload validators in the Python API

CellMeasurementClient.create and create_or_get now run optional client-side validators before sending data to Studio so processing bugs surface as a local error instead of a confusing upload result. A hard time-gap check (>5 h between consecutive rows) runs by default; passing voltage_window enables a voltage-continuity check (catches chronological misordering from a faulty data split), and passing rated_capacity enables a consecutive same-direction full-step check plus a soft warning for any step whose capacity exceeds 5× rated.
Improvements
  • Measurement chart controls collapse into a compact header summary; per-axis variable selectors now allow adding and removing series dynamically with a unified two-column layout.
Fixes
  • Study visualization no longer collapses to an empty state when switching between studies whose experiment-type tabs differ — the filter resets to All when the previous tab isn’t present.
  • Users with a stale session can recover by signing out via the sign-in page instead of being stuck on the redirect.
  • The empty cells page now uses the correct organization-level permission check, so users who can create cells no longer see a misleading “contact a project admin” message.
  • Pipeline element details view no longer triggers rapid duplicate fetches for Data Fit and Validation configs.
Improvements
  • Simulations now compile faster by default, speeding up repeated runs that share the same model.
  • Simulation objectives with custom mesh or spatial-method settings (such as CycleAgeing) now serialise and reload correctly.
Fixes
  • Time-monotonicity validation error message now reports the correct two adjacent values (the previous off-by-one showed the values just before the actual violation).
Fixes
  • Sign-convention detection no longer misclassifies low-current pulse datasets as all-rest; the rest threshold now scales relative to the 95th-percentile current so violations are caught on small-amplitude data.