MONAI is Project MONAI: an open-source PyTorch toolkit for medical imaging (transforms, networks, losses, a dictionary dataset). This page is what it is and how you start. It is not a 3D preprocessing notebook. It is not a 3D augmentation notebook. It is not a PYCAD product.
If you meant load / resample / window / crop a volume → preprocessing 3D volumes in MONAI. If you meant RandAffine / rotate / noise → 3D volume augmentation in MONAI. If you meant DICOM → NIfTI first → DICOM to NIfTI. If you meant imaging ML as a job → machine learning for medical imaging.
The slug is monaigpt because this URL used to sell a 2023 Streamlit docs assistant. That demo is a side note below. The evergreen job is the framework.
PYCAD builds custom web DICOM viewers and imaging models. It does not sell MONAI, a MONAI SaaS, or a “MONAIGPT” product.
What MONAI actually is
Project MONAI (Medical Open Network for AI) is a Linux Foundation project. The useful mental model is three boxes that share a name:
| Box | Job | What it is not |
|---|---|---|
| MONAI Core | PyTorch library: dictionary transforms, Dataset / DataLoader, U-Net-family nets, Dice / Hausdorff losses, sliding-window infer |
A viewer. A PACS. A cleared device |
| MONAI Label | Active-learning server that sits next to 3D Slicer (or a similar annotator) and proposes the next mask | A public annotation SaaS. Not this page |
| MONAI Deploy | Packaging so a trained bundle can run as an inference app | A hospital integration product. Not this page |
Most people who say “I installed MONAI” mean Core. The 2021 notebooks on this site are Core. Docs: docs.monai.io. Code and tutorials: github.com/Project-MONAI.
It is a library, not a diagnosis. A UNet you train on public NIfTI is not a CAD. A transform compose is not a PYCAD SKU.
How to start (Core)
Use a venv. Current MONAI wants a matching PyTorch. Then:
pip install monai nibabel
python -c "import monai; print(monai.__version__)"
The first real program is a dictionary of paths, not two parallel lists you hope stay aligned. Every transform takes keys=, so intensity hits the CT and spacing hits the CT and the mask:
from monai.transforms import Compose, LoadImaged, EnsureChannelFirstd, Spacingd, ScaleIntensityRanged, ToTensord
train_files = [{"image": "case_001.nii.gz", "label": "case_001_seg.nii.gz"}]
xform = Compose([
LoadImaged(keys=["image", "label"]),
EnsureChannelFirstd(keys=["image", "label"]),
Spacingd(keys=["image", "label"], pixdim=(1.5, 1.5, 2.0), mode=("bilinear", "nearest")),
ScaleIntensityRanged(keys=["image"], a_min=-200, a_max=200, b_min=0.0, b_max=1.0, clip=True),
ToTensord(keys=["image", "label"]),
])
EnsureChannelFirstd is the current name. Older notebooks (including the 2021 ones on this site) still say AddChanneld. Same channel dim; different year. Do not copy a 2021 import into a 2026 env and call the traceback a MONAI bug.
After that, the official tutorials repo is the next hour: spleen / BTCV segmentation, a 2D classification, sliding-window infer. The two PYCAD notebooks that stay on their own URLs are the 3D preprocess compose and the 3D aug compose — they are not this page restated.
What this URL used to be
In May 2023 the PYCAD Team shipped a Streamlit demo, monaigpt.streamlit.app, that answered MONAI Core docs questions with GPT-3.5. It did not cover Label or Deploy. It was a community demo, not a product. Official docs and the tutorials repo are the start path. If the Streamlit app is up, it is still just a chatbot over Core docs — not a substitute for running the compose above.
What not to do
- Do not train on PNG screenshots of a viewer and call it a MONAI pipeline. The file is NIfTI (or a DICOM series you converted).
- Do not skip spacing. Two sites with 0.7 mm and 2.5 mm slices are not the same grid.
- Do not treat Dice on a public challenge as a clearance. Metrics live on the evaluation URL; this page is the toolkit.
- Do not invent a PYCAD MONAI cloud. Viewer / model work can use Core. That is not a SKU named MONAI.
Start: pip install monai, the dictionary compose, then one official tutorial. Preprocess and aug stay on 3050 and 3063.