Automatic dental and craniofacial analysis in 3D Slicer — segmentation,
landmark identification, orientation, registration and classification of CBCT
scans, intraoral surface scans and MRI. Every computation runs on a remote tool
server, so a laptop that cannot run a segmentation can still ask for one: a
ported module installs nothing into Slicer's interpreter and downloads no model.
MRI2CBCT is temporarily unavailable: it is not shipped until it is ported
to the server.
Compatible with the stable and nightly versions of 3D Slicer. Modules appear
under the Automated Dental Tools Remote category.
This extension is a client. The modules listed as server-backed below upload
the files you select to a tool server over the network, where the computation
happens, and download the result back into the scene. The remaining modules —
Medical Data Anonymizer, VISU and Agent — run on this machine and send
nothing.
There is no de-identification in the current client. Files are streamed to the server as they are on disk, with their names, their DICOM headers and whatever identifiers they contain. The de-identification pipeline is specified in DEIDENTIFICATION_SPEC.md but is not yet implemented.
Consequences you must accept before using this extension on patient data:
- Out of the box the client points at a loopback address with a development token, so nothing leaves the machine until you change it. Set the address in the Server Tools Settings module, and point it only at a server you or your institution control. See Connecting this client to a server.
- TLS certificate verification is on, and is not a setting: no panel offers to turn it off, because a client that cannot tell the real server from something answering in its place protects neither the images nor the API key. What this asks of you is the other half — the server has to present a certificate this client can verify. See Connecting this client to a server.
- De-identify your data before selecting it, or confine use to data that carries no protected health information.
- Check that the arrangement between your institution and whoever operates the server covers the data you are about to send.
MRI2CBCT is temporarily unavailable until it is ported to the server.
Installing and sharing a server is the server repository's subject — VISOR-serve's README covers joining a workstation to the tailnet, on Ubuntu, Windows and macOS. What follows is only what happens on this side of the wire.
The server listens on loopback with a self-signed certificate this client does
not accept. The client talks to it only through a public address: an
https:// URL whose certificate a public authority signed — for a server on
this very computer too. Any of these gives it one:
tailscale serve(scripts/setup-tailscale.sh) publishes it ashttps://<name>.<tailnet>.ts.netand fetches and renews the certificate itself;- a reverse proxy in front of it with a Let's Encrypt or institutional
certificate, its address set as
PUBLIC_URLin the server's.env; - the server itself on its own domain, with its own public certificate,
likewise named in
PUBLIC_URL.
In Server Tools Settings, this means:
- URL — that
https://address, printed at the end of the server install; - Token — the server's API token, never its admin token.
That is the whole configuration. Until it is saved, the URL is a placeholder
(https://set-your-server.invalid) that reaches nothing.
The rules have no setting, flag or file that relaxes them
(ServerToolsCoreLib/tls.py):
https://only. Everyhttp://URL is refused,http://localhostincluded; the server has no plain-HTTP listener at all. Anhttp://URL saved by an older client is ignored at startup (logged; the other settings still apply) until anhttps://one is saved.- Publicly-signed certificates only, verified against the authorities in
certifi's bundle (the one
requestsships), named explicitly so thatREQUESTS_CA_BUNDLEand its kin change nothing, hostname included. There is no custom CA, no certificate pinning and neververify=False. - No redirect is ever followed, and no request to an
http://URL ever leaves the client: a redirect is howhttps://would becomehttp://. - What the server says is shown as text. Its error messages, a text tool's answer and a schema's descriptions never render as HTML in a dialog, a label or a tooltip, and a result archive is unpacked only inside its folder, under a size and entry-count ceiling.
Behind tailscale serve, a device that has not joined the tailnet cannot reach
the address at all, which is the access control; removing it from the
Tailscale admin console is how access is withdrawn. Behind a reverse proxy,
that control is the proxy's and the network's to provide.
Two layers, and the second wins:
ServerToolsCore/ServerToolsCoreLib/config.py |
the compiled-in defaults |
| Server Tools Settings | what you saved in the panel, stored by Slicer per installation |
settings_qt.apply_saved_overrides runs at Slicer startup and lays the saved
values over the defaults, so editing config.py changes nothing on a machine
where that panel has ever been saved. It is the first thing to check when an
edit to config.py appears to be ignored. settings_qt.clear_overrides()
removes the saved group and gives config.py the last word again.
Slicer Cloud can start a server on this machine, and asks under Network access which address to publish it on. The choice decides who can reach it:
| Choice | Who reaches it |
|---|---|
| This computer only | nobody else — the default, and it keeps the server off the network entirely |
an interface named tailscale, wg, tun or zt, shown as private network, encrypted |
the machines in that mesh, over the mesh's own encryption |
| an ordinary interface, shown as local network | anyone on that network |
| Every network on this machine | anyone who can route to it |
Whatever the choice, the address the panel hands every module is the
deployment's public one (public_url from server_ctl.py: PUBLIC_URL when
set, otherwise the tailscale serve address), never the server's own port:
that port presents a self-signed certificate, which this client refuses.
Without a public address the panel saves nothing and says how to get one.
deploy.host_addresses classifies the interfaces and skips Docker's own
bridges — binding to one of those publishes the server to containers and to
nothing else.
- ARCHITECTURE.md — how the client works, file by file. Start here; it is the authoritative reference.
- VISOR-serve — the server:
routes, auth, dispatch, the
/DATAstore. It knows no dental tool. - SADT-VISOR — the tools: one isolated project per tool, each with its own interpreter and its own pins. What a tool computes, and what it was validated against, is in its README there.
- SlicerAutomatedDentalTools — the upstream extension, where every algorithm here originates, and which runs the same tools locally.
A module's panel is generated from the server's tool descriptor (GET /tools) rather than written by hand, so a field added to a tool server-side
appears in Slicer with no client release. This is why most modules ship no .ui
file: that is the design, not an omission.
Do not install this extension alongside SlicerAutomatedDentalTools. Use one or the other: this client is meant to replace the local extension, not to run next to it.
They cannot share a Slicer. 34 of this extension's 41 modules carry the same names as the upstream ones, and four of its helper packages do too (
MRI2CBCT_utils,Agent_CLI_utils,MRI2CBCT_CLI_utils,Testing). Slicer registers whichever of two same-named modules comes first in the module search path and silently drops the other — no warning, no error — so which extension you are running would depend on install order, with nothing in the interface to tell you. Shared package names are worse: because each module directory goes onsys.path, they make the upstream modules fail to import.Both extensions are listed in the Extensions Catalog during the transition, so either can be downloaded. Installing them together is what is unsupported.
Panels that send work to the server:
| Name | Description |
|---|---|
| AMASSS | Segments the skull structures of a CBCT scan. Acronym for Automatic Multi-Anatomical Skull Structure Segmentation. |
| ALI | Places anatomical landmarks on a CBCT scan or an intraoral surface scan; the server picks the engine from what the input holds. Acronym for Automatic Landmark Identification. |
| ASO | Reorients CBCT scans or intraoral surface scans into a standardized frame. Acronym for Automated Standardized Orientation. |
| AReg | Registers two timepoints of the same patient, for CBCT or intraoral surface scans. Acronym for Automated REGistration. |
| Crown Segmentation | Labels an intraoral surface scan tooth by tooth. Its output is the precondition for ALI's IOS landmarks and for the IOS modes of ASO, AReg and FlexReg. |
| AutoCrop3D | Crops a folder of CBCT scans to one region of interest drawn in Slicer. |
| AutoMatrix | Applies one or several transformation matrices to a folder of scans or landmark files. |
| FlexReg | Registers two intraoral arches on a patch the clinician draws, rather than on the whole mesh, because teeth move between timepoints and the palate does not. |
| GreedyReg | Affine registration of CBCT scans with the Greedy engine, in landmark, automatic or combined mode, single or batch. |
| BatchDentalSegmentator | Segments teeth and jaw structures on dental CT and CBCT in batch, for mixed or permanent dentition. |
| CLI-C | Localizes and classifies impacted canines on CBCT. Acronym for Classification and Localization of Impacted Canines. |
| DOCShapeAXI | Grades a 3D surface and returns the GradCAM surface that explains the grade. Acronym for Dental Oral and Craniofacial Shape Analysis eXplainability and Interpretability. |
| VFACE | Measures facial asymmetry and longitudinal change, then classifies it. Acronym for Visual Facial Asymmetry Classification Engine. |
| SurgMovPred | Predicts the soft-tissue outcome of a planned surgical movement. |
| CNE | Extracts structured findings from free-text clinical notes with a language model hosted on the server. Successor of the former MedX module. |
Panels that do not send work to the server:
| Name | Description |
|---|---|
| VISU | Opens a folder a tool has already produced and pairs scan, mask and landmarks for review, one case at a time, with the arrow keys to step through a cohort. Computes nothing. |
| Medical Data Anonymizer | Anonymizes identifiers in medical documents (DOCX, PDF, TXT, CSV, XML, ODT) on this machine. |
| Agent | Runs the other modules from a request in plain language, using a local LLM. |
| Slicer Cloud | Stands a tool server up from inside Slicer and keeps it current: clones the server repository, starts the container, and chooses which model bundles land on disk. |
| Server Tools Settings | Sets the server address and credentials every other module uses, and tests the connection. |
Two modules carry no panel of their own and sit in the
Automated Dental Tools Remote.Advanced category:
| Name | Description |
|---|---|
| Server Tools Core | Hidden module whose only purpose is to make ServerToolsCoreLib — the HTTP client, the panel generator and the background worker — importable by every other module. |
| Example Tool | Minimal reference panel, kept as the worked example of what a module built on the generated-panel base class reduces to. |
These two directories are CLI modules of the former local extension that the
panels above still drive. They are built, so they appear under
Automated Dental Tools Remote.Advanced.
| Name | Description | Driven by |
|---|---|---|
| Agent_CLI | Routes a request in plain language to the right tool, extracts its parameters and builds the command to run. | Agent |
The CLI modules of the other tools — landmark identification, orientation, registration, the asymmetry classification and clinical-note extraction — are gone: the sequencing they existed for is the server's now, and they had already been dropped from the build, so nothing shipped them and nothing imported them.
Input — a single file or a whole folder. If the input is a file already loaded in the scene, the result is shown on the slice views when it comes back.
Output — the result can be written next to the input or into a folder you choose, grouped per patient, with a prediction identifier of your choosing in the output file names.
- 3D Slicer, stable or nightly. See the Slicer system requirements.
- A reachable tool server. Set its address in Server Tools Settings, or deploy one with Slicer Cloud — see Connecting this client to a server. Without it, every server-backed module is inert.
- No GPU, no conda environment and no model download are needed for the server-backed modules — that is the point of this client.
A DOI is registered for this software; see CITATION.cff (10.5281/zenodo.22150410). The algorithms themselves are published through the upstream extension, SlicerAutomatedDentalTools.
AMASSS module will allow you to segment CBCT scan using AMASSS algortihm.
- Download the trained models for AMASSS using the
Download latest modelsbutton in the moduleInput section.
Input file: The input has to be an oriented CBCT. It can be a single CBCT scan loaded on slicer or a folder containg CBCTs with the following extention:
.nrrd / .nrrd.gz
.nii / .nii.gz
.gipl / .gipl.gz
Available sample data for testing: MG_test_scan.nii.gz
Load models: The user has to indicate the path of the folder containing the trained models for AMASSS.
Segmentation selection:
The user can choose the structure to segment using the selection table.
Depending on the type of CBCT to segment, the user can select the "Use small FOV models" checkbox to use on higher definition scans.

Output option: By selecting the "Generate surface files" checkbox. The user will also get a surface model of the segmentation that will be saved in a "VTK files" folder and will be automatically loaded in slicer at the end of the prediction if working on a single file.
Advanced option:
- You can increase/decrease the precision of the segmentation (going above 50 will drastically increase the prediction time and is not necesary worth it, going under 50 will make the prediction much faster but less accurate)
- If the user whant to generate surface files, he can choose the smothness applied on the model.
- Depending on your computer power, you can increase the CPU and GPU usage to increase the predictio speed.
ALI module provide a convenient user interface allowing to identify landmarks on different type of scans:
The implementation is based on the ALI-CBCT algortihm originally developed by Maxime Gillot at https://github.com/Maxlo24/ALI_CBCT.
- Download the trained models for ALI-CBCT using the
Download latest modelsbutton in the moduleInput section.
Input file: The input has to be an oriented CBCT. It can be a single CBCT scan loaded on slicer or a folder containg CBCTs with the following extention:
.nrrd / .nrrd.gz
.nii / .nii.gz
.gipl / .gipl.gz
Available sample data for testing: MG_test_scan.nii.gz
Load models: The user has to indicate the path of the folder containing the trained models for ALI-CBCT.
Landmark selection:
Once the folder containing the trained models is loaded. The user can choose the landmark he want to identify with the table showing the available landmarks:

The implementation is based on the ALI-IOS algortihm originally developed by Baptiste Baquero at https://github.com/baptistebaquero/ALIDDM.
- Download the trained models for ALI-IOS using the
Download latest modelsbutton in the moduleInput section.
Input file: The input has to be an oriented IOS segmented with the Universal Numbering System. This segmentation can be automatically done using the SlicerJawSegmentation extention. The input can be a single IOS loaded on slicer or a folder containg IOS with the following extention: The array name of labels in the vtk surface is: "Universal_ID" or "predictionid" or "PredictionID"
.vtk
Available sample data for testing: T1_01_L_segmented.vtk and T1_01_U_segmented.vtk
Load models: The user has to indicate the path of the folder containing the trained models for ALI-IOS.
Landmark selection:
For the IOS landmarks, the user has to choose which tooth he need the landmakrs on by checking the label of the tooth on the left table.
Once the folder containing the trained models is loaded. The user can choose the landmark he want to identify with the table on the right showing the available landmarks:

If you want more information and a descriptive tutorial of this tool, take a look at this github page: Automated Standardized Orientation
ASO module provide a convenient user interface allowing to orient different type of scans:
- CBCT scan
- IOS scan
- Semi-Automated (to only run the landmark-based registration with landmark and scans as input)
- Fully-Automated (to perform Pre Orientation steps, landmark Identification and ASO with only scans as input)
| Mode | Input |
|---|---|
| Semi-Automated | Scans, Landmark files |
| Fully-Automated | Scans, ALI Models, Pre ASO Models (for CBCT files), Segmentation Models (for IOS files) |
| Input Type | Input Extension Type |
|---|---|
| CBCT | .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz |
| IOS | .vtk .stl .vtp .off .obj |
Test Files Available:
You can either download them using the link or by using the Test Files button.
| Module Selected | Download Link to Test Files | Information |
|---|---|---|
| Semi-CBCT | Test Files | Scan and Fiducial List for this Reference |
| Fully-CBCT | Test File | Only Scan |
| Semi-IOS | Test Files | Mesh and Fiducial List Reference |
| Fully-IOS | Test Files | Only Mesh Reference |
The user has to choose a folder containing a Reference Gold File with an oriented scan with landmarks.
You can either use your own files or download ours using the Download Reference button in the module Input section.
| Input Type | Reference Gold Files |
|---|---|
| CBCT | CBCT Reference Files |
| IOS | IOS Reference Files |
The user has to decide which landmarks he will use to run ASO.
| Input Type | Landmarks Available |
|---|---|
| CBCT | Cranial Base, Lower Bones, Upper Bones, Lower and Upper Teeth |
| IOS | Upper and Lower Jaw |
The landmark selection is handled in the
Landmark ReferenceSection:
For the Fully-Automated Mode, models are required as input, use the Select Button to automatically download, extract and select the selected models.
AReg module provide a convenient user interface allowing to orient different type of scans:
- CBCT scan
- IOS scan
- Semi-Automated (to only run the automatic registration with masks segmentation and scans as input - only for CBCT)
- Fully-Automated (to perform the automatic registration with only scans as input)
- Orientation and Registration (to perform the automatic orientation using ASO process and the automatic registration with only scans as input)
| Mode | Input |
|---|---|
| Semi-Automated (only for CBCT) | Scans, Masks segmentation |
| Fully-Automated | Scans, Segmentation Models |
| Orientation and Registration | Scans, ALI Models (for CBCT files), Segmentation Models |
For CBCT, a final step is added and consist of segmenting different skeletal structures using AMASSS process within each mode.
| Input Type | Input Extension Type |
|---|---|
| CBCT | .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz |
| IOS | .vtk .stl .vtp .off .obj |
Test Files Available:
You can either download them using the link or by using the Test Files button.
| Module Selected | Download Link to Test Files | Information |
|---|---|---|
| Semi-CBCT | Test Files | Scan and Masks segmentation |
| Fully-CBCT | Test File | Only Oriented Scan |
| Orientation and Registration for CBCT | Test File | Only Scan |
| Fully-IOS | Test Files | Only Mesh ) |
| Orientation and Registration for IOS | Test Files | Only Mesh |
For the Fully-Automated Mode, models are required as input, use the Select Button to automatically download, extract and select the selected models.
AutoCrop3D stands for "Scans automatically cropped" according to a Region Of Interest (ROI).
This module has the same utility as "Crop Volume", which offers more interactive feedbacks to the user, but "AutoCrop3D" allows you to easily trim the ROI of all the cases in your study. Then you can load your files into Slicer to view them. More Information about Crop Volume
It solves the issue of files that may be too heavy for "Crop Volume Sequence" More Information about Crop volume Sequence.
| Input | Input Type | Input Extension Type | Files to Test |
|---|---|---|---|
| File or Folder | CBCT | .nii, .nii.gz, .gipl.gz, .nrrd, .nrrd.gz | Segmentation.zip |
| Region of Interest* | Volume | .json | ROI.mrk.zip |
You can choose a suffix which will be added to the existing name of your file(s).
If you want to generate VTK files from your Segmentations, the Segmentation files must have "Seg" somewhere in the name.
For example: patientName_Seg.nii.gz
Use the module "Volume Rendering" to create your ROI and then save it as a .json file.
- Upload a scan file
- Choose the option
Display ROI - Change the ROI as you like
- Save it
The AutoMatrix module provides a user interface to apply a matrix to a folder for different types of scans or segmentations:
- CBCT
- IOS
The module will replicate the folder structure from your input folder inside the output folder. Each new file will keep the original filename, followed by the suffix you specify. If the "Add matrix name to filename" option is enabled, the matrix filename will also be appended.
Example:
| With matrix name | Without matrix name |
|---|---|
| Input file: patient1_T1_MA.nii.gz | Input file: patient1_T1_MA.nii.gz |
| Input matrix: patient1_matrix1.tfm | Input matrix: Matrix_mirror.tfm |
| Suffix: _apply | Suffix: _mir |
| Output file: patient1_T1_MA_apply_matrix1.nii.gz | Output file: patient1_T1_MA_mir.nii.gz |
Sometimes a LinkName is required. See the information below.
| Mode | Download Link to Test Files | Information |
|---|---|---|
| File patient and file matrix | Test Files | LinkName is not required. The matrix is applied to the input file. This new file is save in the output folder. |
| File patient and folder matrix | Test Files | LinkName required. For each matrix applied, a new file is created. |
| Folder patient and file matrix | Test Files | LinkName is not required. The matrix will be applied to all files in the input folder. |
| Folder patient and folder matrix | Test Files | LinkName required. For each matrix applied, a new file is created. You can have more than one file with the same patient name. |
The name of the matrix files and the name of the seg/scan files must begin with the same patient name. After the patient name, you must put and underscore before any other information. Example : Name file patient : patient1_T1_MA.nii.gz Name matrix files : patient1_left_MA.tfm
There is button "Mirror" that will automatically download the matrix mirror and put in input.
| Input Type | Input Extension Type | Input Matrix Extension |
|---|---|---|
| CBCT | .nii.gz | .tfm .npy .h5 .mat .txt |
| IOS | .vtk .stl .vtp .off .obj | .tfm .npy .h5 .mat .txt |
| Landmark | .mrk.json | .tfm .npy .h5 .mat .txt |
The CNE module extracts structured findings from free-text clinical notes.
It is the successor of the former MedX module.
The language model runs on the server: nothing is installed into Slicer and no model is downloaded to this machine.
- Input: one clinical note or a folder of them (
.txt,.pdfor.docx), searched recursively. A scanned, image-only PDF has no text and is skipped rather than answered from nothing. - Note type:
TMJorOrtho. It selects the fine-tuned model, its prompt and its context window; leave Model on automatic and the server uses the model fine-tuned for that note type. - Output: per note,
Extraction_<note>.jsonand a readableExtraction_<note>.txt, plusCNE_report.json, which says how many notes were extracted and why any were not.
The Medical Data Anonymizer module provides automated anonymization of sensitive information in medical documents using AI-powered text analysis. It helps ensure HIPAA compliance and patient privacy protection by identifying and removing or replacing personally identifiable information (PII) and protected health information (PHI) from various document formats.
Supported File Formats:
- PDF documents
- Word documents (.docx)
- Text files (.txt)
- CSV files (.csv)
- XML files (.xml)
- OpenDocument Text (.odt)
Anonymization Options:
- Names (patients, doctors, healthcare providers)
- Phone Numbers
- Email Addresses
- Dates and Times
- Addresses and Locations
- Social Security Numbers
- Medical License Numbers
- Driver's License Numbers (optional)
- Credit Card Numbers (optional)
- Bank Account Numbers (optional)
- IP Addresses (optional)
- URLs/Websites (optional)
Anonymization Methods:
- Replace with Label: Replaces sensitive data with generic labels (e.g.,
<PERSON>,<DATE>) - Redact: Completely removes sensitive information
- Hash: Replaces with cryptographic hashes for consistent anonymization
- Mask: Replaces with asterisks or other masking characters
-
Install Dependencies:
- Click "Install Dependencies" to automatically install required libraries (Presidio, file processing tools)
- Restart 3D Slicer after installation
-
Select Input and Output:
- Input Directory: Folder containing documents to be anonymized
- Output Directory: Folder where anonymized documents will be saved
-
Configure Anonymization:
- Choose Entity Types: Select which types of sensitive information to anonymize
- Advanced Options:
- Anonymization Method: Choose how to handle detected sensitive data
- Confidence Threshold: Set detection sensitivity (0.0-1.0, default: 0.5)
-
Process Files:
- Click "Anonymize Files" to start processing
- Progress bar shows real-time status
- Anonymized files are saved with "_anonymized" suffix
- Anonymized Documents: Each input file generates an anonymized version in the selected format
- File Mapping CSV:
file_mappings.csvtracks original and anonymized filenames with unique identifiers - Processing Log: Detailed logging of the anonymization process
- Research Data Preparation: Remove PHI from clinical notes and research documents
- Data Sharing: Prepare medical documents for sharing with external collaborators
- Compliance: Ensure HIPAA compliance when processing medical documents
- Archive Management: Create anonymized versions of medical records for long-term storage
- Dependencies: Automatically installed via the "Install Dependencies" button
- Language Models: English language model is automatically downloaded
- Supported Systems: Windows, macOS, Linux
Temporarily unavailable. MRI2CBCT is not shipped with this extension until it is ported to the tool server. Its source stays in
MRI2CBCTRemote/andMRI2CBCT_CLIRemote/; the description below documents the module as it will return.
The MRI2CBCT module provides a user interface to perform the registration between MRI and CBCT scans.
-
Orient and Center CBCT:
- Input: CBCT folder path
- Download Models: You can download the models required for segmentation and orientation by clicking on "Download."
-
Orient and Center MRI:
- Bilateral mode: When enabled, additional options become available:
This option is intended for bilateral TMJ scans, which contains two slices between left and right separated by a large distance.When such DICOM volumes are saved as NIfTI, the original slice spacing is lost or misrepresented, which distorts the image.
Enabling bilateral mode lets you select a loaded DICOM node to automatically retrieve the true acquisition spacing (from DICOM metadata) and apply it before orientation. This ensures that the image is correctly resampled and anatomically accurate. > If **Bilateral** is disabled, the spacing from the input scan is used as-is. - **Input:** MRI folder path - **Axis Direction:** You need to choose the new direction for each axis. - Bilateral mode: When enabled, additional options become available:
-
Left and Right Cropping:
- Inputs: Folder paths for CBCT and/or MRI.
- Options: You can resample T1 and/or T2 scans for MRI, CBCT, and Segmentation independently.
- Slice/Number of Slices: Decide the new slices/number of slices or retain the same size as before running it.
- Spacing: Choose the new spacing or keep the same spacing as in the input.
- Center Image: When enabled, padding is added equally in all directions to center the content.
This step aligns the MRI and CBCT volumes to prepare for precise registration.
- Inputs: Resampled MRI and CBCT volumes.
Currently, cropping is done using the AutoCrop method. In the future, this step will be replaced by a trained model that automatically identifies and extracts the TMJ region of interest.
- Inputs: CBCT, CBCT segmentation, and MRI scans after completing the preprocessing steps, including manual approximation and cropping.
- Normalization Options: Select the normalization method and specify the percentile to apply to both MRI and CBCT scans. Default values are provided for convenience.
FlexReg is a module that allows you to register patient-specific Intra Oral Scans. It lets you create custom patches for registration.
-
Load your files:
- Choose your path by clicking on "Select" and load it by clicking on "View".
-
Draw your own patch:
- Butterfly Patch:
- Custom Patch:
- You can combine multiple patches by creating them one by one. All your patches will be used as a single patch for the registration.
-
Registration:
- After creating your patch for both the fixed and moving scans, choose the output folder and the suffix you would like. If you have a lower arch to move, you can select it.
- Register them by clicking on "Registration".
This integrates advanced deep learning algorithms enabling the classification of nasopharynx airways obstruction, mandibular condyles, and alveolar bone defect in cleft. The tool facilitates the automated classification of medical shapes, assisting in clinical diagnosis and decision-making. The extension was originally developped https://github.com/lucieDLE/DOC-ShapeAXI/
- This extension works with Linux and Windows.
- This extension requires the installation of SlicerConda. Follows the instructions for more information.
Currently, the extension supports only three types of datasets:
- Nasopharynx Airway Obstruction: Three models are available for this dataset.
- Severity model: classifies 4 levels of airway obstruction ranging from 0 to 3, where 0 is the lowest level and 3 is the greatest level.
- Binary model: classifies between 0 and 1, where 0 is the absence and 1 is the presence of adenoid hypertrophy-related obstruction.
- Regression model: directly predicts the ratio of obstruction ranging between 0 and 100%.
- Mandibular Condyle:
- Severity model: classifies the condylar changes into 4 levels of severity ranging from 0 to 3.
- Alveolar Bone Defect in Cleft:
- Severity model: classifies the defect into 4 levels of severity ranging from 0 to 3.
- Select a Data Type: nasopharynx airways obstruction, mandibular condyles, and alveolar bone defect in cleft.
Note
This step allow to select automatically the appropriate classification model.
- Select an Input folder: a folder that contains 3D models stored as VTK files.
- Select an Output directory: a folder that will contain all the outputs (model, predictions results stored in a CSV file, and explainability visualizations).

- Run the module: Click on the Run Prediction button.
Note
The progress will be display in the UI with a progress bar.
All the results are saved in the Output directory specified by the user. you can find:
A. the csv file containing the prediction made by the network.
B. a folder named Explainability containing the visualization results:
- Open the folder and drag and drop a shape in Slicer
- Go to the module Models

- In the Display drop-down menu, click on the Scalar section
- check the visibility box and change the color table to ColdToHotRainbow
- Set the Data Scalar Range to Auto if not set

- Change the Active Scalar to the class you want to visualize
3D Slicer extension for fully-automatic segmentation of CT and CBCT dental volumes in batch using Dentalsegmentator model (for adults scans), PediatricDentalsegmentator model (for children scans), UniversalLabDentalSegmentator (for labeling all the teeth), NasoMaxillaDentalSegmentator (for segment separatly the upper skull and the Naso Maxillary Complex.
After selecting the following:
- Input folder (containing volumes to process)
- Output folder (where segmentations will be saved)
- Model (the pretrained network that best fits your scans)
this module generates the following labeled regions for each volume:
(Identical to DentalSegmentator)
- Maxilla & Upper Skull
- Mandible
- Upper Teeth
- Lower Teeth
- Mandibular canal
- Maxilla & Upper Skull
- Mandible
- Upper Teeth
- Lower Teeth
- Mandibular canal
This model splits the upper skull into two regions and also segments teeth and mandible:
- Upper Skull (excluding nasal/maxillary complex)
- Naso-Maxilla Complex
- Mandible
- Upper Teeth
- Lower Teeth
- Mandibular canal
Same as DentalSegmentator, but each tooth receives its own unique label:
- Maxilla & Upper Skull
- Mandible
- Upper Teeth (each tooth labeled separately)
- Lower Teeth (each tooth labeled separately)
- Mandibular canal
DentalSegmentator is based on nnU-Net framework. It has been trained on 470 dento-maxillo-facial CT and CBCT scans from 7 institutions by Dot G, et al, here is their paper and nnUnet paper:
Dot G, et al. DentalSegmentator: robust open source deep learning-based CT and CBCT image segmentation. Journal of Dentistry (2024) doi:10.1016/j.jdent.2024.105130
Isensee F, et al. nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation. Nat Methods. 2021;18(2):203-211. doi:10.1038/s41592-020-01008-z
As DentalSegmentator, PediatricDentalSegmentator is also based on nnUnet. It has been trained on 513 dento-maxillo-facial CBCT scans including scans withs primary teeth.
As PediatricDentalSegmentator, UniversalLabDentalSegmentator is also based on nnUnet. It has been trained on 513 dento-maxillo-facial CBCT scans including scans withs primary teeth
As DentalSegmentator, NasoMaxillaryDentalSegmentator is also based on nnUnet. It has been trained on 135 dento-maxillo-facial CBCT scans including scans withs primary teeth.
This extension is compatible with 3D Slicer Stable Release (version 5.8.0, or later), downloadable from the official website.
The plugin can be installed in Slicer using the extension manager. It's a module in the Automated Dental Tools extension so it can be can be found using the search bar by typing "Automated Dental Tools".
After the installation process and restart of Slicer, the extension can be found in the module file explorer under Automated Dental Tools>BatchDentalSegmentator.
It can also be found by using the find module button and searching for the keyword BatchDentalSegmentator.
You will also need to install the NNUNet extension, you can find it by using the find module button and searching for the keyword NNUNet
To use the extension, click on Select Folder to select the folder where your scans are and click on Select Output Folder to select the folder where your segmentations will be save.
Then choose the model that you want to use :
Finally click on the Apply button to start the segmentations.
If your device doesn't include CUDA, the processing may be very long and a dialog will ask for confirmation before starting the segmentation process.
During execution, the processing can be canceled using the Stop button.
The progress will be reported in the console logs.
After the segmentation process has run, the segmentation will be loaded into the application.
The segmentation results can be modified using the Segment Editor tools.
The segmentation can be exported using the Export segmentation menu and selecting the export format to use.
The Surface smoothing slider allows to change the 3D view surface smoothing algorithm.
CLI-C (Classification and Localization of Impacted Canines) is a 3D Slicer extension designed for automated segmentation of dental Cone-Beam Computed Tomography (CBCT) images using a deep learning Mask R-CNN model. It streamlines dental segmentation workflows for intra-osseous teeth, facilitating accurate identification and visualization of impacted canines for orthodontic and dental surgical planning.
- Automatic Segmentation: Precisely segments and classify impacted teeth, determininng the intra-osseous localization including buccal, bicortical, and palatal regions from CBCT scans.
- Mask R-CNN Model Integration: Utilizes advanced deep learning architectures to provide accurate and robust segmentation.
- Progress Monitoring: Real-time progress bar and log updates during segmentation tasks.
- User-Friendly Interface: Simple GUI integrated seamlessly within 3D Slicer.
- Batch Processing: Supports segmentation of single files or batch processing of entire directories of CBCT scans.
- 3D Slicer 5.6+
- Python packages:
torch,torchvision,nibabel,numpy,scipy,requests
The module checks and automatically installs these dependencies upon first usage.
Load the Module in 3D Slicer
- Open 3D Slicer.
- Navigate to
Module → Slicer Automated Dental Tools → CLIC.
- Use the file dialog to select your CBCT image or directory containing multiple CBCT images.
- Available sample data for testing: MN138.nii , UM06.nii
- Click "Download Model" if using for the first time, or specify your existing model directory.
- Click "Choose save folder" if you want to a specific output folder or clic on save in input folder if you want the outputs in the same folder than the input
- write the suffix you want for th outputs
- Click Predict to begin segmentation, if it s the first time you run a pop up will maybe ask you to install some dependency, clic on 'yes', the process will take a little time to start.
- Observe the progress bar and log output for real-time feedback.
- Segmentations automatically load into Slicer's viewer with clear labeling.
- A color-coded legend (Buccal, Bicortical, Palatal) appears in slice views.
- Be carefull, if you have scans with differents field of view in your input folder and you try to navigate through the scans when th process is end the views can turn black, in this case you have to clic on the button reset field of view.
VFACE (Visual Facial Asymmetry Classification Engine) is a 3D Slicer extension designed for automated classification of facial asymmetry. It provides advanced measurement extraction and machine learning-based classification of facial structures including the mandible and maxilla.
- Automated Asymmetry Classification: Automatically classifies facial asymmetry patterns based on facial structure analysis.
- Facial Measurement Extraction: Extracts key measurements from facial structures for quantitative analysis.
- Machine Learning Based: Uses trained deep learning models for accurate asymmetry classification.
- User-Friendly Interface: Simple GUI integrated seamlessly within 3D Slicer for easy access and use.
- Batch Processing: Supports analysis of single files or batch processing of multiple datasets.
- Required Python packages will be automatically installed upon first usage.
Load the Module in 3D Slicer
- Open 3D Slicer.
- Navigate to
Module → Slicer Automated Dental Tools → VFACE.
The module provides an intuitive interface for facial asymmetry classification. Simply load your facial data, select the appropriate models and parameters, and run the analysis to obtain automated classification results and measurements.
For detailed usage instructions and tutorials, please refer to the module's built-in help documentation.
GreedyReg performs ITK-SNAP style registration of CBCT scans using the Greedy registration engine. It combines manual approximation tools with automatic registration, and can process a single pair of scans or a whole folder in batch.
- The Greedy binary is required. If it is not found, the module shows a Download Greedy button that installs it automatically (~60MB).
- The Distant Registration mode additionally relies on the ALI-CBCT Python libraries. If they are missing, the module offers to install them.
- Input Volumes: select the fixed (T1) and moving (T2) CBCT scans to register.
- Create Mask (optional): paint a region to focus the registration on a specific area.
- Manual Alignment: roughly pre-align the moving scan using rotation/translation sliders and the manual approximation tools.
- Automatic Registration: run the Greedy registration, save the registered volume, or use Run Batch Registration to process an entire folder of scans.
- Distant Registration (Large Misalignment): when the two scans start far apart, this mode uses ALI-CBCT landmarks to first bring them close together before registering. It is also available in batch.
The Agent module is the graphical front-end of the AI Agent extension. Instead of opening each module by hand, you describe what you want to do with your dental/orthodontic imaging data in natural language, and the agent selects the right Automated Dental Tools module, extracts its parameters and runs it for you.
The agent runs fully locally: it is powered by the qwen3:8b model through Ollama, so no data leaves your machine.
- Ollama must be installed.
- Click the Check button once to install the required Python dependencies and pull the
qwen3:8bmodel. This step is only needed the first time.
- Describe your task: Type your request in plain language (e.g. "orient these CBCT scans" or "segment this folder").
- Add your data: Drag & drop one or more files or folders into the drop zone.
- Choose a mode:
- Agent (Automated): the agent picks the matching tool, fills in its parameters and runs it automatically.
- Consultant: the agent recommends the most appropriate tool(s) for your request without running them.
- Run: the agent routes your request to the corresponding module. If a tool execution fails, the agent automatically tries to fix the parameters from the error and retries (up to a few attempts).
The routing, parameter extraction and command building are handled by the internal Agent_CLI module.
Authors: Maxime Gillot (University of Michigan), Baptiste Baquero (UoM), Luc Anchling (UoM), Nathan Hutin (UoM), Alexandre Buisson (UNC), Paul Dumont (UNC), Enzo Tulissi (UoM), Alban Gaydamour (UoM), Jeanne Claret (UoM),Gaelle Leroux (UoM), Lucia Cevidanes (UoM), Juan Carlos Prieto (UNC), David Allemang (Kitware), Jean-Christophe Fillion-Robin (Kitware), Connor Bowley (Kitware), James Butler (Kitware).
Supported by NIDCR R01DE 024450, AA0F Grabber Family Teaching and Research Award and by Research Enhancement Award Activity 141 from the University of the Pacific, Arthur A. Dugoni School of Dentistry.
This software is distributed under the terms of the 3D Slicer License, a BSD-style license with additional clauses covering contributions and issues specific to 3D Slicer. The full text is in LICENSE.txt.




















