# Dependencies

Runtime pieces of the portfolio workbench:

| Piece | Where | Required to start the page | Required to solve |
| --- | --- | --- | --- |
| CPython 3.12 | `.venv312` | Yes, for the server | Yes |
| NumPy, SciPy | that environment | Imported by solvers | Yes for a solve |
| matplotlib | that environment | No, for the page | Used when a run writes figures |
| Three.js r160 | vendored | Yes, in the browser | No |
| BodyParts3D OBJ | `assets/anatomy/obj/` | Yes, for the default body | No |
| Pulse 4.4.0 PyPulse | `third_party/pulse-build/install` | No | Only for a Pulse schedule |

The page binds to `127.0.0.1`. It does not fetch BodyParts3D or Pulse at runtime.

`reference/` is immutable research code and is not on the import path of `src/hdt`. PK-Sim, MoBi, PhysiCell, and BioFVM are not installed as libraries.

A static host cannot run Pulse or the Python solvers. The honest published form is this local server, plus the Methods & Credits page. Replaying a stored `visualization.json` is playback of a finished local run, and the workbench labels that hold. It is not a substitute Pulse session.
