1.5.0: ecosystem and collaboration#
Status: proposed · Base: 1.4.0
By 1.5.0 a single researcher can build, calibrate, scale and publish a model. 1.5.0 is about everyone else: the colleague who wants to reuse it, the policy team that has to decide with it, the R or Julia user who never writes Python, the student, the reviewer. A model hub, model cards, decision and causal tools, richer language-model agents, R and Julia bindings, accessibility and a stable plugin API. Eleven epics, eight sprints, all on Windows, macOS and Linux (see Platforms). Backward compatible with 1.4; it is also the last release before 2.0, so every deprecation 2.0 needs is announced here.
Where we start#
1.4.0 gives |
1.5.0 adds |
|---|---|
Run bundles, manifests, |
A hub where bundles and models are published, found, installed and cited |
ODD skeletons and zoo validations |
Model cards: purpose, validation, limits, generated and kept up to date |
Calibration, sensitivity, emulators |
Decision tools: scenario comparison, robust decision making, intervention optimisation |
Seeded replicates |
Causal analysis with common random numbers; explanations of outcomes |
LLM agents with caching and budgets |
Memory, planning, tools, conversation, and an evaluation harness |
A Python API |
R and Julia packages; Studio for non-programmers |
Who 1.5.0 is for#
Audience |
What 1.5.0 unlocks |
|---|---|
Research groups |
Publish a model to the hub with a DOI; colleagues install it with one command |
Policy analysts and public agencies |
Compare interventions with confidence intervals and costs, without writing code, in Studio |
R users (epidemiology, ecology, social science) |
|
Julia users |
Call Modelly from Julia and pass arrays without copies |
Reviewers and journals |
Model cards and verifiable bundles attached to papers |
Educators |
A visual builder that writes real Modelly code; a course pack v2 |
People using assistive technology |
Studio conformant with WCAG 2.2 AA |
Epics#
G1 · Modelly Hub#
Goal: publish, discover, install and cite models and studies.
Platforms: the hub is a static index on GitHub Pages plus Zenodo for archives: no server to run or pay for; the client is pure Python on all three.
User stories
As an author,
modelly hub publishturns my project into an installable package with a model card and a DOI.As a researcher,
modelly hub search "malaria"lists published models with their validation status, andmodelly hub installgets one with its exact environment.As a reviewer, a paper’s DOI resolves to a bundle I can
modelly verify.
Design: packages are ordinary Python packages with an entry point and a model card; the index is a JSON file in a public repository, updated by pull request (reviewed, with automatic checks: lint clean, determinism test, card complete); archives on Zenodo; signatures with Sigstore.
Done when: ten zoo models and three community models are on the hub; install and verify work on all three platforms; publishing a model takes under ten minutes, timed.
Size: L · Depends on: 1.3 E4, E10
G2 · Model cards#
Goal: every model carries a short, standard, honest description of what it is for, how it was validated, and where it should not be used.
Design: generated from the ODD skeleton, the scenario, the zoo or user validation tests and the calibration report; sections for intended use, out-of-scope use, data, validation, known limits, ethical considerations; rendered in docs, Studio and the hub; a lint check that the card exists and is not stale (validation re-run since the last model change).
Size: M · Depends on: 1.3 E4
G3 · Decision and policy toolkit (modelly.decide)#
Goal: turn model runs into decisions people can defend.
Work items: scenario comparison with paired replicates and intervals; cost and cost-effectiveness outputs (per-scenario costs, incremental ratios); robust decision making (many futures, find policies that do well across them); intervention optimisation through an optional Optuna extra, with the optimiser’s randomness seeded from the experiment; Studio “compare scenarios” view for non-programmers.
Done when: a vaccination-strategy tutorial produces a ranked comparison with intervals and costs; the same study rerun gives the same ranking.
Size: L · Depends on: 1.3 E3, 1.4 F7
G4 · Causal analysis and explanations (modelly.explain)#
Goal: say why an outcome happened, not only that it did.
Work items: common random numbers so paired scenarios differ only by the intervention (variance reduction, reported); average treatment effects with intervals across replicates; agent- and event-level attribution (which agents or events, removed, change the outcome); SHAP-style explanations on emulators; counterfactual replay through time travel.
Done when: a tutorial shows the variance reduction of common random numbers on a zoo model (measured); attribution finds the seeded “patient zero” in a synthetic outbreak.
Size: M · Depends on: 1.3 E6, 1.4 F7
G5 · Language-model agents II#
Goal: richer generative agents that stay reproducible and affordable.
Work items: memory (episodic and summarised, stored in checkpoints); planning and reflection loops; tool use (agents calling model functions); agent-to-agent conversation with turn scheduling; an evaluation harness (behavioural benchmarks, consistency across seeds, cost reports); every response still cached and part of the bundle.
Done when: a 500-agent conversational market runs, caches and replays offline; the evaluation harness reports cost, consistency and behaviour metrics for three providers or local models.
Size: L · Depends on: 1.3 E7
G6 · R and Julia bindings#
Goal: Modelly for people who do not write Python.
Platforms: the R package through reticulate and the Julia package through PythonCall, both tested on Windows, macOS and Linux, with an installer that sets up the Python side automatically.
Work items: R: build and run models from R, scenario objects as lists, results as data frames or tibbles, calibration and sensitivity results with ggplot2 methods; CRAN-ready package. Julia: zero-copy array access to columns, results as DataFrames.jl.
Done when: the SIR calibration tutorial runs end to end in R and in Julia on all three OSs.
Size: L
G7 · Studio for everyone#
Work items: a no-code mode (open a published model, change parameters, run experiments, compare scenarios, export a report); a visual model builder for teaching that writes ordinary Modelly code; report export (HTML and PDF) with the model card, figures and the run manifest.
Size: L · Depends on: 1.4 F10
G8 · Accessibility and languages#
Work items: WCAG 2.2 AA audit and fixes for Studio and the docs (keyboard navigation, screen readers, contrast, colour-blind-safe palettes by default); translations of Studio and the getting-started docs (French, Spanish, Portuguese, Chinese, then by demand); right-to-left layout support.
Size: M
G9 · Plugin API v1#
Goal: a stable, documented way to extend Modelly from separate packages.
Design: entry-point groups for spaces, executors, samplers, collectors, Studio views, lint
rules and hub sources; a compatibility declaration per plugin; a plugin template
(modelly new --template plugin); the API is frozen for the 1.x line and carried into 2.0
unchanged or with a migration path.
Done when: three third-party plugins (one space, one executor, one Studio view) are listed on the hub and tested against 1.5 on all three platforms.
Size: M
G10 · Education II#
Work items: course pack v2 (twelve sessions, assessments, instructor notes); classroom mode in Studio (shared parameters, collect students’ runs); a “from NetLogo” track for instructors moving their courses.
Size: M · Depends on: G7
G11 · Quality, 2.0 preparation and platforms#
Work items: every 2.0 change deprecated with a warning naming the replacement; modelly migrate --check-2.0 reports what a project must change; the bindings, hub client and Studio in
the three-OS test matrix; installer guide for locked-down Windows machines (no admin rights).
Size: M (continuous)
Priorities#
Priority |
Epics |
|---|---|
Must |
G1 Hub, G2 Model cards, G9 Plugin API v1, G11 Quality and 2.0 preparation |
Should |
G3 Decisions, G4 Causal, G5 LLM agents II, G6 R and Julia |
Could |
G7 Studio for everyone, G8 Accessibility and languages, G10 Education II |
Won’t |
A hosted service with accounts; breaking changes |
Sprint plan#
Sprint |
Goal |
Main items |
Exit |
|---|---|---|---|
S1 |
Foundations |
Model card schema and generator; plugin entry-point groups; 2.0 deprecation inventory |
Every zoo model has a card |
S2 |
Hub |
Index format, |
A zoo model published and installed on all three OSs |
S3 |
Decisions · a1 |
Scenario comparison, costs, robust decision making |
Vaccination tutorial ranks strategies reproducibly |
S4 |
Causal and R |
Common random numbers, effects, attribution; R package core |
Variance reduction measured; R runs the SIR tutorial |
S5 |
LLM agents II and Julia |
Memory, planning, conversation, evaluation; Julia package |
Conversational market replays offline |
S6 |
Studio for everyone · b1 |
No-code mode, report export, builder preview |
Feature complete; API frozen |
S7 |
Access and education · rc1 |
WCAG fixes, translations, course pack v2 |
No open blocker |
S8 |
Hardening · 1.5.0 |
Three-OS matrix for bindings and hub; |
All gates pass |
Release gates#
Release |
Gate |
|---|---|
1.5.0a1 |
Hub publish and install on all three OSs; model cards for the zoo |
1.5.0b1 |
Must and Should epics feature complete; plugin API frozen |
1.5.0rc1 |
No open blocker; R and Julia tutorials pass on all three OSs |
1.5.0 |
Every 2.0 change has a deprecation warning; |
Success metrics#
Metric |
1.4.0 |
1.5.0 target |
|---|---|---|
Models on the hub |
0 |
10 zoo plus at least 3 community |
Languages with a binding |
Python |
Python, R, Julia |
Third-party plugins |
0 |
at least 3 |
Studio accessibility |
not audited |
WCAG 2.2 AA |
Docs languages |
English, French, Spanish (getting started) |
plus Portuguese and Chinese |
2.0 changes with a deprecation warning |
partial |
all |
Risks#
Risk |
Likelihood |
Impact |
Mitigation |
|---|---|---|---|
The hub needs moderation effort |
Medium |
Medium |
Automatic checks on every pull request; clear inclusion rules |
R and Julia bindings break with Python environment changes |
High |
Medium |
Installer pins the Python side; three-OS CI for both packages |
Decision tools are misused as forecasts |
Medium |
High |
Model cards, intervals shown by default, wording reviewed by domain users |
LLM agent costs |
Medium |
Medium |
Budgets, caching, local models; evaluation harness reports cost |
Open questions#
[ ] Hub index: one repository for everything, or one per field?
[ ] R package on CRAN (strict policies) or r-universe first?
[ ] Which translations first, by user demand or by community volunteers?
Sprint review log#
Sprint |
Shipped |
Slipped |
Notes |
|---|---|---|---|
S1 |
|||
S2 |
|||
S3 |
|||
S4 |
|||
S5 |
|||
S6 |
|||
S7 |
|||
S8 |