Anomaly Factory 3D: A Modular Framework for Diverse Pseudo-Anomaly Synthesis in Unsupervised 3D Anomaly Detection
Paper • 2606.29181 • Published
Pretrained AF3AD PO3AD-style checkpoints for Real3D-AD and AnomalyShapeNet. AF3AD was accepted to ECCV 2026.
These files are discriminator-only PyTorch state_dict checkpoints, packaged with a small YAML config per category.
The current AnomalyShapeNet release includes 30 categories; the remaining categories will be added later.
Clone or download this repository into the project as ckpts/:
ckpts/Real3DAD/[category]/ckpts/[category].pth
ckpts/Real3DAD/[category]/po3ad_eval_real3d.yaml
ckpts/AnomalyShapeNet/[category]/ckpts/[category].pth
ckpts/AnomalyShapeNet/[category]/po3ad_eval_anomalyshapenet.yaml
From the AF3AD repo root:
export PYTHONPATH="$PWD:$PYTHONPATH"
python3 scripts/evaluate_po3ad_checkpoint.py --checkpoint ckpts/Real3DAD/airplane/ckpts/airplane.pth --config ckpts/Real3DAD/airplane/po3ad_eval_real3d.yaml
python3 scripts/evaluate_po3ad_checkpoint.py --checkpoint ckpts/AnomalyShapeNet/ashtray0/ckpts/ashtray0.pth --config ckpts/AnomalyShapeNet/ashtray0/po3ad_eval_anomalyshapenet.yaml
Replace airplane or ashtray0 with any available category from the matching dataset.
To evaluate all currently packaged AnomalyShapeNet categories:
bash ckpts/AnomalyShapeNet/eval_commands.sh
@misc{balapour2026anomalyfactory3dmodular,
title={Anomaly Factory 3D: A Modular Framework for Diverse Pseudo-Anomaly Synthesis in Unsupervised 3D Anomaly Detection},
author={Ali Balapour and Faraz Hach},
year={2026},
eprint={2606.29181},
archivePrefix={arXiv},
primaryClass={cs.CV}
}