Skip to content

Adding ATLAS extension to the catalogue - #2375

Open
agporto wants to merge 4 commits into
Slicer:mainfrom
agporto:main
Open

Adding ATLAS extension to the catalogue#2375
agporto wants to merge 4 commits into
Slicer:mainfrom
agporto:main

Conversation

@agporto

@agporto agporto commented Jul 19, 2026

Copy link
Copy Markdown

This pull request adds ATLAS to the official 3D Slicer Extensions Catalog.

ATLAS provides workflows for constructing 3D anatomical atlases and statistical shape models and for automatically transferring landmarks to new surface models. It combines rigid surface registration, shape-model-guided deformable registration, and optional surface projection.

New extension

Tier 1

Any extension that is listed in the Extensions Catalog must fulfill these requirements.

  • Extension has a reasonable name (not too general, not too narrow, suggests what the extension is for). The extension name should not start with Slicer unless it explicitly provides a bridge between Slicer and another tool or library.

  • Repository name is Slicer+ExtensionName, except if the repository also hosts software that can be used without Slicer.

  • Repository is associated with the 3d-slicer-extension GitHub topic.

  • Extension description summarizes in one or two sentences what the extension is usable for and is understandable to non-experts.

  • Any known related patents are mentioned.

    • No related patents are known.
  • LICENSE.txt is present in the repository root and the extension homepage identifies the license.

    • ATLAS is distributed under the BSD 2-Clause License.
  • Extension URL and revision are correct.

    • The catalog entry tracks the main branch.
  • Extension icon URL is a valid raw-content URL.

  • Screenshot URL is a valid raw-content URL and contains an informative screenshot.

  • The submitted JSON file is consistent with the top-level CMakeLists.txt.

    • ATLAS has no required Slicer extension dependencies. SlicerMorph is complementary but optional.

The homepage contains:

  • Extension name.

  • A short description summarizing the extension’s purpose.

  • At least one informative image illustrating the extension.

  • A description of each contained module: BUILDER, DATABASE, PREDICT, and SEGMENTATION.

  • Publication information, if available.

    • The ATLAS manuscript is in preparation. The repository citation and relevant underlying software citations are provided.

Unused GitHub features:

  • Wiki, Projects, and Discussions are disabled if unused.
  • Releases and Packages are hidden if unused.

The extension is safe:

  • It does not include or download binaries from unreliable sources.

    • PREDICT can install the Python packages tiny3d and biocpd from the configured Python package index after explicit user approval.
  • It does not send information anywhere without user consent.

    • Processing is local, and ATLAS does not upload models, landmarks, or other user data.

Tier 3

ATLAS is being submitted initially as a Tier 1 extension.

  • Documentation, tutorial, and test data are provided for most modules.

  • Follows programming and user interface conventions of 3D Slicer.

  • The extension can be successfully built and packaged on all supported platforms.

  • Maintainers respond to issues and pull requests submitted to the extension repository.

  • Maintainers respond to questions addressed to them on the Slicer Forum.

  • A permissive license is used for the main extension functions.

    • ATLAS uses the BSD 2-Clause License.

Tier 5

ATLAS is not being submitted as a Tier 5 extension.

  • A Slicer core developer accepts responsibility for fixing issues caused by Slicer core changes and has commit access to the extension repository.
  • Automated tests cover all critical features.
  • Maintainers provide Tier 5 support through the Slicer Forum.

Additional information

  • ATLAS was tested in a clean 3D Slicer installation.
  • BUILDER, DATABASE, PREDICT, and SEGMENTATION loaded successfully.
  • Runtime Python dependency installation was tested.
  • SlicerMorph is not required and is therefore not listed as a build dependency.

agporto added 2 commits July 19, 2026 03:43
I would like to add the following extension (ATLAS) to the official catalogue
@agporto

agporto commented Jul 19, 2026

Copy link
Copy Markdown
Author

I went ahead and changed the extension name in the repo to SlicerATLAS. Seems like it was causing some automated workflows to fail

@lassoan

lassoan commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Thanks your submission. It looks very nice, there are just a few things that would be good to address:

  • Rename modules to have more specific names. Allowing generic, single-word modules names in extensions, such as BUILDER, DATABASE, PREDICT, SEGMENTATION would cause failures due to name conflicts when installing multiple extensions. It is OK to have these words as module title (these are the name that appears for the user), but please make the module names (folder, class, icon, etc. name) more specific. Better names would be something like AtlasBuilder, AtlBuilder, AgpAtlasBuilder. If you have not published a paper about this yet, I would recommend to choose a brand name that is searchable (ATLAS is such a generic word that you'll never be able to reliably find papers that use your method and don't cite the right paper; and people will have really hard time finding your tool based on its name) - you can then use that name in the extension and module names (it could be a variant of ATLAS, such as ATBLAS, PATLAS, ATLASS, etc.) An AI agent should be able to do the renaming flawlessly in a few minutes, so the difficulty is really just to come up with a good-sounding and somewhat unique name.
  • Remove duplicate license file (they are identical, so not a big issue, but redundant)
  • Instead of custom subprocess.check_call([sys.executable,"-m","pip","install","--upgrade",*specs]) call, please use slicer.util.pip_install, as it provides additional checks, provides progress information, error reporting, etc.
  • Add a section on related 3D Slicer extensions (that do something similar or complement this extension).

@lassoan

lassoan commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

I like the new MorphoWeave name! It is certainly unique and tells that it is about morphology and weave might even give a chance for users to guess what it is about.

@agporto

agporto commented Jul 25, 2026

Copy link
Copy Markdown
Author

Thanks @lassoan . I’ve addressed almost all the requested changes, including renaming (now MorphoWeave), module naming, licensing cleanup, and documentation updates. I am just finishing a quick clenaup of the dependencies and testing it (right now, it is super verbose). I will ping you when done
Please let me know if anything else needs adjustment.

@agporto

agporto commented Jul 25, 2026

Copy link
Copy Markdown
Author

done @lassoan . I am done with all the changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants