Full editor for optimization experiments
Optimization experiments now use the same protocol editor as the rest of the app. The bare text field has been replaced with a rich editor featuring YAML syntax highlighting, dark-mode support, frontend pre-validation, and the full protocol-builder dialog for picking templates and tuning steps. New protocols pre-load a “Constant Current Charge” template so users have a working starting point.Iterative metrics for design optimization
Design optimization now supportsCyclewiseMetric and StepwiseMetric
wrappers end-to-end. The optimization form lets you target a metric on a
specific cycle or step with bounded input fields driven by the parsed
experiment, mix pipeline variables alongside PyBaMM variables, and
round-trips wrapped metrics through save/load. A long-standing bug where
repeated protocol blocks were flat-expanded has also been fixed, which broke
solution.cycles indexing for cycle-wise metrics. Two new templates ship: a
simplified Charge optimization and composite system models.Arbin cycler support
ionworksdata now reads native Arbin exports — CSV, XLSX, and the binary
.res format. The .res reader extracts data directly from Arbin’s export
format (no separate Access database tool required), sorts rows chronologically
to handle interleaved multi-session recordings, and reads the absolute start
time from the file’s session metadata. Auto-detection picks the right reader
from file headers, and arbin res is also exposed as an explicit reader name.Maccor protocol coverage
The Maccor parser and simulator now handle several real-world protocol features that previously failed at parse time or during simulation, including per-limit safety gotos,Chg/Dis Func CCCV step types, and robust variable
setvar handling. The Maccor ionworksdata reader also gained support for the
compact short-form column header set used by some firmware versions, which
previously crashed and silently dropped capacity/energy columns.Machine-checkable UCP input schema
The discovery endpoint/discovery/schemas/protocol now exposes a JSON
Schema matching the actual YAML authoring format (single-key dicts like
{Charge: {...}}) rather than the internal parsed shape. Parity tests
round-trip good and bad fixtures through both the schema and the parser so
they cannot drift. Submitting the legacy kind: shape to
POST /protocols/validate now returns a helpful error pointing at the
canonical YAML examples, and the discover-api and run-simulations skills
show local pre-validation via jsonschema.validate(...).Studio
Studio
Improvements
- The Ionworks Agent tab has been replaced with a static instructions page pointing to the Ionworks Agentic Toolkit; the in-app chat agent has been removed in favour of the SKILL.md-based workflow.
- New cell specifications no longer pre-fill a default capacity, so users enter the actual cell capacity from the start.
- Storage permissions are now enforced at the organization level so members of the same org can read each other’s measurement files as expected.
created_by_emailis now consistently populated on cell-spec, cell-instance, and cell-measurement responses across bothgetandlistendpoints.- Simulation usage is aggregated at the organization level (matching the
org-level usage limit that the backend already enforces) and is fetched
from a dedicated
GET /organizations/current/usageendpoint.
Pipeline
Pipeline
Fixes
- Half-cell ECM now exposes anode and cathode potential variables
(
Anode potential [V],Cathode potential [V]) for plotting and metrics. get_cycle_metricskeeps theCycle countcolumn name on output instead of renaming it toCycle number, matching the input convention used throughout the data pipeline.
Python API
Python API
Improvements
validate_measurement_data,CellMeasurement.create, andCellMeasurement.create_or_getaccept askip_checksparameter so callers can relax a single strict validator (e.g.time_gaps) instead of disabling strict mode wholesale. Unknown check names raiseValueError, and the canonical set is exposed asionworks.validators.STRICT_CHECK_NAMES.validate_strict=Trueis now the recommended default.
Data Processing
Data Processing
Improvements
- New Arbin reader covering CSV, XLSX, and native
.resexports (see the highlight above). - Maccor reader now accepts the compact short-form column header set used by some cycler firmware versions.
Documentation
Documentation
Improvements
- New electrolyte parameterization page with a worked Landesfeind fit example.
- Optimization experiment editor, iterative metrics, simplified Charge template, and composite system models are documented.
- Custom variables reference now documents anode/cathode potential exposure on the half-cell ECM (English and Japanese).
- Maccor native
CCCVstep type is documented (English and Japanese). - Arbin is listed in the supported cyclers table.
- SEO metadata (keywords, OG tags, tightened descriptions) added across the docs site, including expanded data-fitting guide descriptions.
Skills
Skills
Improvements
- Each mirrored package (
ionworksdata,ionworks-schema,ionworks-api,iwutil,ionworkspipeline,skills) now ships a per-packageCHANGELOG.mdin Keep-a-Changelog format, written and validated as part of the release workflows. discover-apiandrun-simulationsskills updated to reference the new UCP input JSON Schema and demonstrate local pre-validation.upload-dataskill updated to recommendvalidate_strict=Trueand document the newskip_checksparameter.