Models Library Try Protos
← Home · Models Library
The Models Library is a registry of all computational models available in your workspace — physics models, ML models, kinetic models, domain-specific solvers, and custom scripts. Models are registered once, reusable across any project, fully versioned, and traceable.
On This Page
- Why It Exists
- Registering a Model
- Model Source Types
- Finding a Model
- Model Versioning
- Best Practices
Why It Exists
Without a shared model library, teams rebuild the same models for each project — wasting time and introducing inconsistencies. Protos solves this by registering models at the workspace level:
The Co-Engineer can register models for you. Upload a Python script or point it at a GitHub repo and ask it to register the model — it will infer the input/output schema automatically.
- Register once, call from any project
- Every simulation run references the exact model version it used
- Results remain reproducible indefinitely
- All inputs, outputs, and provenance are traceable
Registering a Model
- Go to Models Library in the sidebar.
- Click Register Model.
- Fill in the required fields:
| Field | Description |
|---|---|
| Name | Clear, searchable name (e.g. Doyle-Fuller-Newman Electrochemical Model) |
| Key | A unique identifier for the model, required when registering via the Local code intake option |
| Description | What the model does, when to use it, known limitations |
Define the Input schema and Output schema — the JSON schema builders let you specify each parameter's name, type, and whether it's required.
- Click Register model. After registering, a launcher token download step appears for local-runner models.
Tip: Document inputs and outputs fully — include units, valid ranges, and edge case notes. Future users (including you, six months from now) will thank you.
Model Source Types
The first step is to choose an Execution type: Local runner (your model runs on your own machine; the platform dispatches inputs) or Cloud (upload Python code; the platform containerises and runs it).
The dialog opens with three intake options — Local code (upload or paste code), Endpoint (point to an existing API endpoint), and GitHub/GitLab/etc. (build from a repo).
| Source type | How it works in Protos |
|---|---|
| Python script | Upload the script; Protos executes it in a managed environment |
| COMSOL / MATLAB | Select as the runtime under Local runner. Protos dispatches inputs to a launcher script that runs on your machine. |
| External API | Provide the endpoint URL and auth config; Protos calls it on run. You can supply a personal API key and choose whether to share it with your team or keep it private |
| Public repo | Paste a public repo URL (GitHub, GitLab, Bitbucket, or Codeberg). Protos builds a container from it; you can optionally auto-draft the wrapper with AI. A live build progress indicator shows three steps: Preparing build context → Building image → Finalising — the build may take a few minutes |
Finding a Model
Protos includes a set of ready-to-use physics models you can add to any canvas without registering anything:
| Model | What it does |
|---|---|
| Cell Performance | Equilibrium KPIs (capacity, energy, N/P ratio, mass) from electrode design; optional SPMe electrochemical simulation for DCIR, power, and drive cycles |
| Cell Optimizer | Multi-objective optimisation (NSGA-II + PyBaMM) to find Pareto-optimal cell designs against up to 5 targets |
| DFN Calendar Ageing | Capacity fade and SoH prediction during storage over days to years using the Doyle-Fuller-Newman model |
| DFN Cyclic Ageing | Cycle-life simulation with SEI growth, particle cracking, swelling, and loss of active material |
| SPMeT Power | Maximum power envelope across SOC, temperature, and pulse duration |
| SPMeT DCIR | Direct Current Internal Resistance at configurable time points across a SOC/temperature/C-rate sweep |
| SPMeT Dynamic Load | Drive cycle simulation with full voltage, current, temperature, and energy timeseries |
Beyond the built-in models, you can search and add any model your team has registered:
- Search by name or tag.
- Filter by tags or scope (mine, shared with me, public).
- Sort by Last updated, Name A-Z, or Newest first.
- Click any model to see its full documentation, input/output schema, and version history.
Model Versioning
Every update to a model creates a new version. This is critical for reproducibility.
| What versioning gives you | Detail |
|---|---|
| Reproducibility | Old simulation runs always reference the exact model version they used — results never change retroactively |
| Comparison | Old canvas runs always reference the exact model version they used, so you can see how results changed between versions |
| Audit trail | Full history of who changed what and when |
To update a model: Open the model and click Edit to update its name, description, or tags — this mints a new version automatically. There's no way to update a model's code in place — you have to register a new model instead. If the old one isn't referenced by any canvas, delete it first to free up its key; if it is in use, register the new code under a different key so existing canvases keep working.
Note: Deleting a model is possible from its management page (with a confirmation step). If a canvas already references it, Protos deprecates it instead of fully deleting it, so existing canvases keep working — only a model with no references is removed outright. Even so, avoid deleting old versions you might still need to reproduce past simulation runs.
Best Practices
- Use semantic versioning:
v1.0.0→v1.1.0for non-breaking updates,v2.0.0for breaking changes to inputs or outputs. - Tag models by domain — makes them far easier to find in Simulation Studio.
- Note known limitations in the description — an honest description of edge cases prevents misuse and prevents future users from discovering limitations the hard way.
- Don't rebuild models already in the library — search before registering. If a close match exists, consider extending it with a new version instead.
See Also
- Simulation Studio — run models registered here
- Schemas — model input/output schemas follow the same field conventions
- Knowledge Library — link model results to knowledge assets
- Glossary → Version