Skip to content

About

OsteoOpt is a patient-specific mandibular reconstruction framework combining virtual surgical planning, physics-based simulation, and Bayesian optimization to improve donor–host bone union propensity.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

121 Commits

Folders and files

Repository files navigation

OsteoOpt++: Patient-Specific Optimization for Mandibular Reconstruction Planning with Enhanced Bone Union

License Status

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.

News and Highlights 🎉

  • 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).

TODO

  • 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

Repository Layout

  • 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.

Optimization Workflow

Optimization loop

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

Patient-Specific Modeling

Patient-specific modeling pipeline

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.

Setup

Tested on Windows.

  1. Install JDK 8 or higher and Eclipse IDE.

  2. Clone ArtiSynth Core:

    https://github.com/artisynth/artisynth_core.git
    
  3. In Eclipse/ArtiSynth, add the model packages and make artisynth_VSP and artisynth_JawModel visible on the external classpath.

  4. Set ARTISYNTH_HOME to the local artisynth_core checkout. In MATLAB:

    addpath(fullfile(getenv('ARTISYNTH_HOME'), 'matlab'));
    setArtisynthClasspath(getenv('ARTISYNTH_HOME'));
  5. 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')
  6. Patient-specific registration also requires 3D Slicer with the TotalSegmentator extension and its dependencies initialized. Set SLICER_EXECUTABLE to the full path of Slicer.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.

Running

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_Main

For optimization-only or registration-plus-optimization geometry files, check bodyList.txt.

Citation

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}
}

License

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.

Ethics and Data Access

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.

About

OsteoOpt is a patient-specific mandibular reconstruction framework combining virtual surgical planning, physics-based simulation, and Bayesian optimization to improve donor–host bone union propensity.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages