Skip to main content

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
  1. Open ebm-audit-demo/report/report.html locally and inspect the matching ebm-audit-demo/report/report.json, ebm-audit-demo/report/universes.csv, and ebm-audit-demo/report/warnings.jsonl files. Inspect warnings.jsonl for visible cautions and diagnostics.
  2. 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.
  3. To start a researcher-owned worker project, run ebm-audit adapter init /approved/local-config/my-ebm-worker, then follow the generated README.md. The generated backend is a SYNTHETIC-ONLY transport example, not an EBM.
  4. 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_CAPABILITY means the worker cannot perform a requested output. It is an explicit non-success universe, not missing evidence and not a pass.
  • UNAVAILABLE in the training-stage status fields means required evidence cannot be supplied. It remains visible. It is neither pass nor fail.
  • NOT_APPLICABLE in 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, and capability_evidence.training_stage.expected_stage.status for the declared training-stage capability state.
  • Failed universes remain visible with their terminal final_status in candidate_records[].final_status and ebm-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

anim-0.1.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anim-0.1.1-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

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

Hashes for anim-0.1.1.tar.gz
Algorithm Hash digest
SHA256 6ee1ff6e2428a5639255d13a65757289112410e49e835163c36b22f96cb7470d
MD5 f3b7c9c0b558cd7e8e44eea691c3f616
BLAKE2b-256 4b78fcec1c530694fd9ac2cca3a5c39e967560e66599ba837b735ee8972cf084

See more details on using hashes here.

Provenance

The following attestation bundles were made for anim-0.1.1.tar.gz:

Publisher: release.yml on timigod/anim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for anim-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b44da7bd75cf6816fea502d043631481a21ae7e26cd153d4a23f19b6aa96da34
MD5 46a93d8cc64e56fad46758636093a51d
BLAKE2b-256 48b4cc514a77ae92a339e6e2dee3255c634f013cf9d7a22a77e16a90d803aff2

See more details on using hashes here.

Provenance

The following attestation bundles were made for anim-0.1.1-py3-none-any.whl:

Publisher: release.yml on timigod/anim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page