Your own branding in the nav, new projects that arrive stocked with materials, protocol groups and cycler export, and auto-scheduling proposals for the lab
Your organization in the navigation
Organizations can now show their own logo and name at the top of the navigation. An admin uploads a mark and edits the name in Organization settings → Branding, and the Ionworks lockup moves to the foot of the nav at the same size. An optional dark-mode logo can be uploaded alongside it; each variant falls back to the other, so an organization with a single mark shows it in both themes. An organization that hasn’t uploaded anything gets a neutral placeholder rather than ours — the Ionworks mark is never paired with someone else’s name. Branding is gated on its own permission, so granting it does not hand over anything else about the organization.New projects arrive with a materials library
A new project used to start empty, so building a model meant hand-entering chemistries and their properties first. Every new project is now pre-populated with 27 materials and 55 property datasets drawn from LiionDB — the subset that can actually close a full cell, supplying every required characterization parameter for the negative electrode, positive electrode and electrolyte. Where the same chemistry was measured by two different papers, both are kept as separate materials, because they are two independent parameterizations. Creating a project also returns faster now: the libraries are copied in the background and land moments after the project appears.Group your protocols, and export them to a cycler
Protocols can now be collected into named groups — a formation set, an aging campaign, a requested test matrix. Groups are managed from the Protocols page: create, rename, describe or delete one, then assign a protocol from its row menu or many at once by selecting rows. Deleting a group keeps its protocols and simply ungroups them, and says so with a live count before you confirm. The protocol table filters by group, with “Ungrouped” available as its own choice.A protocol can also be exported to a cycler format from its detail page. In the process we fixed a data-integrity bug worth knowing about: a protocol with unresolved input parameters previously downloaded as a valid-looking Maccor or Arbin file carrying a placeholder expression where a current belonged — a file that previewed cleanly and failed only once it reached the hardware. Export now refuses an unresolved protocol and tells you which inputs need values.Propose a schedule for a batch of test requests
Select a set of requested tests and the Test Scheduler will now propose the earliest reservations that genuinely fit, for you to review and apply. Each request takes the earliest free window across the project’s in-service channels, in the priority order you send them; tests already booked and measurements already running are treated as immutable, so nothing on the wall is ever moved. Setup, run and teardown all sit inside the reserved window, and the search is unbounded in time — a request comes back unscheduled only when no channel in the project could ever take it, which is the one case you can act on. Applying a batch is all-or-nothing: if a later reservation conflicts, the earlier ones are released rather than left half-booked.Studio
Studio
Improvements
- A booked service visit — on a whole cycler or a single channel — now records when it ends, not just when it starts. A firmware update and a two-week send-away calibration are no longer indistinguishable, channel-hours can be counted, and a planned test booked on channels that will be out for service can be spotted before the work slips.
- A new lab operations report compiles the digest a lab manager asks for on a schedule — momentum, utilization now versus 24 hours / 7 days / 30 days ago, what came off test overnight, what frees up today, what is queued behind it, what is still waiting to be scheduled, and equipment out of service. Eight sections, each independently selectable, available as structured data or rendered Markdown.
- Thermal chambers can now be recorded as equipment in their own right, sitting alongside cyclers under a site rather than beneath one — a chamber commonly holds cells driven by several cyclers, or none.
- The Agentic Toolkit can be downloaded as a zip directly from the Agent page’s Bring your own agent tab, for anyone who can’t clone the private mirror.
- Plain-English protocol generation now understands protocol variables, so requests like “discharge, capture the capacity, stop cycling when it drops to 80%” work. It also gained the parts of the protocol language it previously named but couldn’t use — safety limit fields, impedance frequency settings, rate-of-change and temperature end conditions, and ambient-temperature ramps.
- Two protocols can now be compared for semantic equality, reporting the differences that actually affect how a cell is driven rather than differences in document shape.
- The active-organization picker in account settings is now searchable and sorted by name — focus, type, Enter — instead of a flat list in creation order.
- Cell specifications can be found by material: which cells use a given material, and which other cells share a given cell’s anode, cathode or electrolyte.
- The project overview’s pipeline list loads substantially faster.
- Last-modified timestamps are now accurate for designs, models and optimization templates. They previously recorded the creation time and never moved, which quietly misled anything sorting by recency.
- Two cell specifications in different projects can now share a name. Name uniqueness was enforced across the whole organization even though a specification belongs to exactly one project, so a name taken in one project blocked it everywhere. The same fix applies to cell instances.
- Simulation and fit jobs are now sized against the number of sequential rounds a fit really takes and its slowest task, rather than an idealised iteration count and an average — work that should have scaled out was being kept on a single node.
Pipeline
Pipeline
Improvements
- Post-fit analysis is now available as pipeline elements — linear confidence intervals and Sobol sensitivity, returning typed results that decode client-side without any extra code.
- Model, objective and calculation options are now typed rather than free-form dictionaries, so an unrecognised or misspelled option is reported when you submit rather than minutes into a run.
- The model-fitting objectives documented
modelas required but accepted an objective without one, failing deep in the run instead. A missing model is now reported at submission. DataLoadersilently accepted and ignored unknown options — a misspelled key changed your results with no error anywhere. Unknown options are now rejected.- A measurement given as a plain string now requires its
file:/folder:/db:prefix at the point you write it, rather than being accepted and then failing at load time. - A
nullparameter value is now rejected instead of being serialised into a config that cannot run. - A weight naming an objective or variable that doesn’t exist silently fell back
to
1.0, so a fit ran with a weight the user believed was applied. It is now an error. - Fixed a composite-electrode fitting contract: an electrode’s lower excess can now be given either as a known per-phase split or as a single electrode-level value, with a clear error when neither is supplied, and the solved stoichiometry windows are reported back.
- Fixed a lumped single-electrode model leaking its own options into the underlying PyBaMM model.
Python API
Python API
Improvements
client.pipelinegainedupdate,cancelanddelete, matchingclient.simple_pipeline— a run submitted from Python can now be renamed, stopped or removed from Python.- Material property datasets can be written from the client: create one from a DataFrame, replace the stored file while keeping the record, and update or delete it — no more reaching past the SDK to raw HTTP.
- New methods for finding cell specifications by material and for listing the specs related to a given one by shared anode, cathode or electrolyte.
- Auto-scheduling proposals and the new booked-service end times are exposed through the client.
- Step-summary validation now catches swapped charge/discharge capacity and energy columns. The swap is symmetric under every check that existed, so a file with the pair transposed passed strict validation cleanly — found on real uploaded data. A step whose current range picks up a single opposite-sign sample from the preceding step no longer abstains from the check either.
Protocol Simulator
Protocol Simulator
Improvements
- A protocol can be compared with another for semantic equality, reporting the earliest real divergence in how the two would drive a cell.
- A slow step with no explicit duration was cut off at 24 hours. The runaway guard for a step that never meets its end conditions was capped rather than floored, so a genuinely long low-rate step was truncated. Low C-rate steps now run to completion.
- A jump that fires the moment a step is entered is now honoured, instead of the step running once first.
Skills
Skills
Improvements
- Manage planned measurements covers requesting auto-scheduling proposals, reviewing them and applying them.
- Manage equipment covers the new end times on booked cycler and channel service.
- Manage cells covers finding cell specifications by material and listing related specifications.
- New Manage materials skill, covering material and property-dataset management from the SDK, including the new write methods.
- Validate data covers the swapped capacity/energy column check.
- Run simple pipelines covers requiring a model on the fitting objectives and the locator prefix on a string measurement.