pimm documentation#
pimm is research infrastructure for variable-length, three-dimensional point clouds from particle-imaging detectors. It provides model families, datasets, training and evaluation loops, distributed launchers, and portable exports.
Install#
curl -sSL https://raw.githubusercontent.com/DeepLearnPhysics/particle-imaging-models/main/install.sh | bash
The installer creates the locked environment and checks the native operators. See Installation for requirements, containers, manual setup, and hardware-specific settings.
Load a local export or a published checkpoint, reproduce its preprocessing, and run a forward pass.
Select a checkpoint, map its weights into a task model, freeze or unfreeze the right parameters, and evaluate the result.
Choose a real recipe, set the data root, make a small smoke run, then scale it without changing the training config.
Implement a dataset that emits pimm’s packed sample contract, validate one batch, and register it for use in a config.
Describe your Slurm site once, dry-run the generated job, submit it, monitor it, and resume safely.
Trace one batch through registries, transforms, model, trainer, hooks, evaluator, and checkpoint code before adding a component.
Verify an installation#
This command resolves the launcher and the bundled tiny configuration, then prints the command it would run. It does not read data or start training.
uv run pimm launch \
--train.config tests/tiny_semseg \
--resources.nproc-per-node 1 \
--dry-run
For an actual training run, follow the ten-minute quickstart. Training requires Linux x86-64 and an NVIDIA driver compatible with the locked CUDA 12.6 environment.
The experiment lifecycle#
The Python config defines what is trained. Launch YAML and launcher flags define where it runs. Every run records the resolved config, source snapshot, command metadata, logs, and checkpoint state together. The experiment anatomy page connects those objects to their exact implementation.
Supported scope#
Need |
Included |
|---|---|
Sparse backbones |
Point Transformer v1/v2/v3, SparseUNet, LitePT, Volt |
Representation learning |
Panda/Sonata, PoLAr-MAE |
Downstream tasks |
semantic segmentation, PointGroup, Panda Detector |
Scale |
local |
Portability |
structured checkpoints, plain model weights, Hugging Face exports |
Important
pimm currently supports 3D sparse point clouds. A model is only scientifically reusable when its coordinate convention, units, feature order, transforms, dataset revision, and checkpoint revision are known. Start with Data conventions and the model chooser; do not infer preprocessing from an architecture name.
Need an exact answer?#
CLI reference — launcher, submitter, and export syntax.
Configuration reference — precedence, inheritance, and common keys.
Checkpoint semantics — what is saved and when a resume is exact.
Troubleshooting — symptoms, diagnostics, and fixes.
Python API — generated classes, functions, and registries.