OsteoOpt++: Patient-Specific Optimization for Mandibular Reconstruction Planning with Enhanced Bone Union
OsteoOpt++ is the extended version of OsteoOpt, an image-to-decision framework for mandibular reconstruction. It combines virtual surgical planning, ArtiSynth simulation, and Bayesian optimization to search reconstruction variables that improve predicted donor-host bone union.
Extended Journal version: Medical Image Analysis. Earlier conference version: MICCAI 2025.
- August 17, 2026 - Extended version accepted in Medical Image Analysis (Impact Factor: 14).
- September 26, 2025 - Received the MICCAI 2025 Young Scientist Award 🏆.
- August 27, 2025 - Nominated for the MICCAI 2025 Best Paper and Young Scientist Awards.
- May 12, 2025 - Early accepted to MICCAI 2025 (top 9% of approximately 3,700 submissions).
- Fix screw-placement descriptions and code input for the different defect types after the latest update.
Demo: one optimization iteration for the Body (B) defect case.
Optimization_Workflow_V2.mp4
artisynth_JawModel/- ArtiSynth jaw model, simulation code, and MATLAB optimization scripts.artisynth_JawModel/src/artisynth/JawModel/patient_specific/- patient-specific registration and model-construction scripts.artisynth_VSP/- virtual surgical planning and reconstruction components.assets/- README figures.
The optimization loop generates a candidate reconstruction, remeshes the geometry, runs a chewing simulation, evaluates apposition and safety metrics, and sends the cost back to the Bayesian optimizer.
Optimization entry points:
artisynth_JawModel/src/artisynth/JawModel/matlab/MainOneSegment.m
artisynth_JawModel/src/artisynth/JawModel/matlab/MainTwoSegment.m
The patient-specific layer is a registration and model-construction preprocessing step. It registers the generic template model to CT-derived patient anatomy, transfers muscle and ligament attachments, updates muscle and ligament parameters, adapts the TMJ soft tissues, and produces the patient digital twin used by the optimization workflow.
Patient-specific registration entry point:
artisynth_JawModel/src/artisynth/JawModel/patient_specific/matlab/Registration_Artisynth_Main.m
See the registration README for detailed inputs and configuration.
Tested on Windows.
-
Install JDK 8 or higher and Eclipse IDE.
-
Clone ArtiSynth Core:
https://github.com/artisynth/artisynth_core.git -
In Eclipse/ArtiSynth, add the model packages and make
artisynth_VSPandartisynth_JawModelvisible on the external classpath. -
Set
ARTISYNTH_HOMEto the localartisynth_corecheckout. In MATLAB:addpath(fullfile(getenv('ARTISYNTH_HOME'), 'matlab')); setArtisynthClasspath(getenv('ARTISYNTH_HOME'));
-
Create an Anaconda Python environment and install the Python libraries called from MATLAB:
conda create -n osteoopt python=3.8 conda activate osteoopt pip install -r requirements.txt
pyenv('Version', 'C:\path\to\anaconda3\envs\osteoopt\python.exe')
-
Patient-specific registration also requires 3D Slicer with the TotalSegmentator extension and its dependencies initialized. Set
SLICER_EXECUTABLEto the full path ofSlicer.exe; see the registration README for details. This setup is recommended because the extension installs its dependencies; a fully independent PyTorch implementation is also possible.
For generic optimization, open MATLAB in:
artisynth_JawModel/src/artisynth/JawModel/matlab
Run MainOneSegment.m for one-segment defects or MainTwoSegment.m for
two-segment defects.
For patient-specific registration/model construction, open MATLAB in:
artisynth_JawModel/src/artisynth/JawModel/patient_specific/matlab
Follow the input instructions in the registration README, then run:
Registration_Artisynth_MainFor optimization-only or registration-plus-optimization geometry files, check bodyList.txt.
If you use OsteoOpt++, please cite the journal version:
@article{aftabi2026patient,
title = {Towards Patient-Specific Optimization for Mandibular Reconstruction Planning Based on Predicted Bone-Union Propensity},
author = {Aftabi, Hamidreza and Lloyd, John E. and Ding, Amanda and Sagl, Benedikt and Prisman, Eitan and Hodgson, Antony and Fels, Sidney},
journal = {Medical Image Analysis},
year = {2026},
doi = {10.1016/j.media.2026.104281},
url = {https://www.sciencedirect.com/science/article/pii/S1361841526003506}
}Please also cite the earlier OsteoOpt MICCAI conference paper (ResearchGate):
@inproceedings{aftabi2025osteoopt,
title = {{OsteoOpt}: A Bayesian Optimization Framework for Enhancing Bone Union Likelihood in Mandibular Reconstruction Surgery},
author = {Aftabi, Hamidreza and Lloyd, John E. and Ding, Amanda and Sagl, Benedikt and Prisman, Eitan and Hodgson, Antony and Fels, Sidney},
booktitle = {International Conference on Medical Image Computing and Computer-Assisted Intervention},
pages = {448--458},
year = {2025},
organization = {Springer}
}OsteoOpt++ is source-available for noncommercial research and educational use under the PolyForm Noncommercial License 1.0.0. Commercial use requires separate written permission from the authors. See NOTICE for the required copyright notice.
Patient-specific CT volumes and meshes are not included due to ethics and privacy constraints.
Parameter values in this repository may differ from those used in the publications because the codebase continues to support ongoing experiments.

