How vivarium-collective/vivarium-workbench works
Vivarium Workbench is a web workbench for Process-Bigraph workspaces: users author and browse workspace assets, run studies, inspect results, and render visualizations. The main compute path resolves a study’s declared producer inputs, reuses matching artifacts or executes a run, then exposes study runs and reports for inspection. It also supports investigations, composite/state-tree exploration, Git-backed workstreams, remote viva-api compute, and read-only published snapshots. The graph reflects README capabilities; unsampled route wiring is kept conservative.
Main entry points: app.py HTTP API · pipeline.py Pull-or-compute resolver · App.tsx State-tree explorer · api.ts Explorer API client
Components 20
Workbench interface
- HTTP API
vivarium_workbench/api/app.py - State-tree explorer
vivarium_workbench/loom/src/App.tsx - Explorer API client
vivarium_workbench/loom/src/api.ts
Workspace authoring
- Workspace assets
- Process registry
vivarium_workbench/lib/registry.py - Composite discovery
vivarium_workbench/lib/composites_query.py - Git workstream
vivarium_workbench/lib/work_mutations.py
Study compute
- Study definitions
vivarium_workbench/lib/study_spec.py - Pull-or-compute resolver
vivarium_workbench/lib/artifacts/pipeline.py - Artifact store
vivarium_workbench/lib/artifacts/store.py - Run executor
vivarium_workbench/lib/run_runner.py - Environment worker
vivarium_workbench/env_worker.py
Research outputs
- Investigation workflows
vivarium_workbench/lib/investigations.py - Run records
vivarium_workbench/lib/run_store.py - Study reports
vivarium_workbench/lib/report.py - Visualization rendering
vivarium_workbench/lib/viz_render.py
Deployment modes
- Remote compute client
vivarium_workbench/lib/sms_api_client.py - Published snapshot
vivarium_workbench/publish.py
Other components
- Workbench user
- viva-api service
Connections 23
- Workbench user → HTTP API: uses
- HTTP API → Workspace assets: reads and updates
- HTTP API → Process registry: serves registry
- HTTP API → Composite discovery: requests composites
- HTTP API → Git workstream: records workstream actions
- HTTP API → Investigation workflows: serves investigations
- HTTP API → Study definitions: serves study data
- HTTP API → Pull-or-compute resolver: starts study runs
- Pull-or-compute resolver → Study definitions: resolves producer inputs
- Pull-or-compute resolver → Artifact store: checks and stores artifacts
- Pull-or-compute resolver → Run executor: executes cache misses
- Run executor → Environment worker: dispatches workspace work
- Pull-or-compute resolver → Run records: writes run request data
- HTTP API → Run records: serves run status
- HTTP API → Study reports: serves reports
- HTTP API → Visualization rendering: serves visualization features
- Workbench user → State-tree explorer: explores composites
- State-tree explorer → Explorer API client: requests composite state
- Explorer API client → HTTP API: calls explorer endpoints
- HTTP API → Remote compute client: routes remote runs
- Remote compute client → viva-api service: builds and submits runs
- Workbench user → Published snapshot: publishes workspace
- Published snapshot → Workspace assets: packages committed snapshot