Anim
Anim is local research software that checks whether an event-based model (EBM) result changes when you run predeclared, scientifically reasonable alternatives. You connect your EBM as a local worker. Anim does not import, select, download, certify, or silently replace your model.
It is not a diagnostic, prognostic, treatment, causal, regulatory, or medical-device tool. An emitted event order is not evidence that a recoverable disease-order signal exists.
Installation
Anim 0.1.1 requires CPython 3.12:
python3.12 -m pip install anim
ebm-audit doctor
Anim 0.1.1 installs and runs doctor on macOS and Linux. Worker execution uses
the reviewed Seatbelt path on macOS. On Linux, it uses /usr/bin/bwrap when
Bubblewrap is installed and otherwise fails closed with
PRIVACY.CONTAINMENT_UNAVAILABLE. The 0.1.1 release does not claim full Linux
worker-execution support.
For development from a source checkout:
python3.12 --version
uv sync --frozen
uv run ebm-audit doctor
Smallest Runnable Example
Run the project-owned synthetic demo before opening or connecting any participant data:
ebm-audit demo --conformance-ebm
It runs offline and uses only synthetic project-owned data. Its expected bounded
outcome is PARTIAL with an INCOMPLETE report at
ebm-audit-demo/report/. That result exercises the worker and report paths.
It is not scientific validation and does not accept a backend.
For a transferred offline kit, follow the offline kit guide. Its installed command can be run from the supplied virtual environment:
cd "$PROOF_ROOT" || exit 1
"$VENV_ROOT/bin/ebm-audit" demo --conformance-ebm
- Open
ebm-audit-demo/report/report.htmllocally and inspect the matchingebm-audit-demo/report/report.json,ebm-audit-demo/report/universes.csv, andebm-audit-demo/report/warnings.jsonlfiles. Inspectwarnings.jsonlfor visible cautions and diagnostics. - Read How the synthetic route works before changing a worker. It follows a deliberately tiny two-event synthetic example from a request shape to the visible audit artifacts.
- To start a researcher-owned worker project, run
ebm-audit adapter init /approved/local-config/my-ebm-worker, then follow the generatedREADME.md. The generated backend is aSYNTHETIC-ONLYtransport example, not an EBM. - If the model lives in a private Jupyter notebook, follow the frozen notebook handoff. The notebook and data remain private and local.
What The Audit Checks
For evidence that a worker can actually supply, the auditor keeps these questions separate:
- How much order or stage uncertainty exists within one fit.
- How much results change across independent chains or seeds.
- How sampling, declared analyst decisions, and participant removal change it.
- Whether synthetic no-signal controls show an apparent result when they should not.
- Whether a worker omitted a capability, failed, or returned invalid evidence.
An emitted order is not proof that a disease-order signal is recoverable. The auditor makes sensitivity and missing evidence visible; it does not diagnose, predict, recommend treatment, or establish a causal result.
Read Next
| Need | Read |
|---|---|
| See the end-to-end synthetic route and public Fit SDK | How the synthetic route works |
| Build a local worker around an EBM | Custom worker guide |
| Preserve a private Jupyter baseline | Frozen notebook handoff |
| Understand accepted input and privacy rules | Input-data dictionary |
| Understand the optional real-data handoff and current report limit | Optional downstream real-data integration |
| Verify a transferred offline kit instead of using this checkout | Offline kit verification |
| Read the exact worker wire contract | Worker protocol schema and canonical records schema |
| Read the readiness claim boundary | EBM integration readiness contract |
| Read the execution-boundary specification | Adapter protocol |
| Read report and claim wording rules | Reporting and claim language |
Do not copy participant rows, private column names, raw values, reversible mappings, or local paths into this repository, reports, tickets, chat, or a corpus note. A real-data integration is optional downstream work that needs its own local permission, privacy review, scientific review, and worker evidence.
The supported public integration surface is the ebm-audit CLI and the Python
package ebm_audit.worker_sdk. cli_workflows and reporting modules are
auditor internals, not alternate worker-integration APIs.
Read the result states
- Warnings are visible cautions or diagnostics, not automatic failure or permission to ignore a scientific gate.
UNSUPPORTED_CAPABILITYmeans the worker cannot perform a requested output. It is an explicit non-success universe, not missing evidence and not a pass.UNAVAILABLEin the training-stage status fields means required evidence cannot be supplied. It remains visible. It is neither pass nor fail.NOT_APPLICABLEin the training-stage status fields means evidence is outside the declared capability or analysis scope. It remains visible. It is neither pass nor fail.- Inspect
capability_evidence.training_stage.posterior.status,capability_evidence.training_stage.hard_stage.status, andcapability_evidence.training_stage.expected_stage.statusfor the declared training-stage capability state. - Failed universes remain visible with their terminal
final_statusincandidate_records[].final_statusandebm-audit-demo/report/universes.csv. Do not silently drop them or interpret them as successful scientific evidence.
What this PARTIAL/INCOMPLETE result can establish
A PARTIAL/INCOMPLETE audit supports only the visible protocol and
capability-limited synthetic evidence actually present in its report. It does
not establish a recoverable disease-order signal, scientific validity,
diagnosis, prognosis, treatment, or causal claims. Unavailable evidence remains
missing and is neither pass nor fail. Product readiness and worker integration do
not certify pysaebm, PySuStaIn, or any named or future EBM backend.
Status And Authority
The only product-readiness state is:
READY FOR RESEARCHERS TO INTEGRATE AN EBM AND RUN THE AUDITOR LOCALLY
The backend-neutral integration and local audit path has completed the project's synthetic readiness review. This is software readiness, not scientific approval of an EBM or dataset.
It means a researcher can connect a local EBM worker and run the auditor without the original developer's help. It does not accept a named backend, validate an untested integration, establish a disease-order signal, or authorize participant-data use. The exact claim boundary is the normative EBM integration readiness contract.
See the 0.1.1 changelog for the public release scope.
Anim is licensed under the Apache License 2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anim-0.1.1.tar.gz.
File metadata
- Download URL: anim-0.1.1.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ee1ff6e2428a5639255d13a65757289112410e49e835163c36b22f96cb7470d
|
|
| MD5 |
f3b7c9c0b558cd7e8e44eea691c3f616
|
|
| BLAKE2b-256 |
4b78fcec1c530694fd9ac2cca3a5c39e967560e66599ba837b735ee8972cf084
|
Provenance
The following attestation bundles were made for anim-0.1.1.tar.gz:
Publisher:
release.yml on timigod/anim
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anim-0.1.1.tar.gz -
Subject digest:
6ee1ff6e2428a5639255d13a65757289112410e49e835163c36b22f96cb7470d - Sigstore transparency entry: 2582753224
- Sigstore integration time:
-
Permalink:
timigod/anim@2dd1391870d7d9d804b1426d5005af16fb310676 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/timigod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2dd1391870d7d9d804b1426d5005af16fb310676 -
Trigger Event:
push
-
Statement type:
File details
Details for the file anim-0.1.1-py3-none-any.whl.
File metadata
- Download URL: anim-0.1.1-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b44da7bd75cf6816fea502d043631481a21ae7e26cd153d4a23f19b6aa96da34
|
|
| MD5 |
46a93d8cc64e56fad46758636093a51d
|
|
| BLAKE2b-256 |
48b4cc514a77ae92a339e6e2dee3255c634f013cf9d7a22a77e16a90d803aff2
|
Provenance
The following attestation bundles were made for anim-0.1.1-py3-none-any.whl:
Publisher:
release.yml on timigod/anim
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anim-0.1.1-py3-none-any.whl -
Subject digest:
b44da7bd75cf6816fea502d043631481a21ae7e26cd153d4a23f19b6aa96da34 - Sigstore transparency entry: 2582753231
- Sigstore integration time:
-
Permalink:
timigod/anim@2dd1391870d7d9d804b1426d5005af16fb310676 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/timigod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@2dd1391870d7d9d804b1426d5005af16fb310676 -
Trigger Event:
push
-
Statement type: