site_name: ShapeWorks
site_url: https://www.sci.utah.edu/software/shapeworks.html
repo_url: https://github.com/SCIInstitute/ShapeWorks
repo_name: SCIInstitute/ShapeWorks
edit_uri: edit/master/docs/ # should be changed to master branch
site_description: The official documentation of ShapeWorks
site_author: Shireen Elhabian et al.
use_directory_urls: false
docs_dir: 'docs/'
copyright: Copyright © 1998 - 2024 Scientific Computing and Imaging Institute. All rights reserved. This project is supported by the National Institutes of Health under grant numbers NIBIB-U24EB029011, NIAMS-R01AR076120, NHLBI-R01HL135568, and NIBIB-R01EB016701. Software maintenance and support are provided within the funding period.
google_analytics: ['UA-36723568-3', 'mkdocs.org']

nav:
- Home: 'index.md'
- Getting Started:
   - 'Shapes, What & From Where?':           'getting-started/shapes.md'
   - 'Shape Modeling Workflow':              'getting-started/workflow.md'
   - 'ShapeWorks Success Stories':           'getting-started/sw-stories.md'
   - 'ShapeWorks Interfaces':                'getting-started/interfaces.md'
   - 'Examples':                             'getting-started/examples.md'
   - 'How-Tos':                              'getting-started/how-tos.md'
- For Users:
   - 'How to Install ShapeWorks?':           'users/install.md'
   - 'How to Cite ShapeWorks?':              'users/citation.md'
   - 'Revelant Papers':                      'users/papers.md'
- Workflow:
   - 'How to Groom Your Dataset?':           'workflow/groom.md'
   - Shape Model Optimization:
      - 'How to Optimize Your Shape Model?': 'workflow/optimize.md'
      - 'Optimization Parameters':           'workflow/parameters.md'
   - 'How to Analyze Your Shape Model?' :    'workflow/analyze.md'     
- Feature Highlights:
   - 'Studio Features':                      'new/new-studio.md'
   - 'Memory Efficiency with OpenVDB':       'new/openvdb.md'
   - 'Mesh Support':                         'new/sw-meshes.md'
   - 'ShapeWorks Command':                   'new/shapeworks-command.md'
   - 'Shape Model Evaluation':               'new/ssm-eval.md'
   - 'ShapeWorks in Python':                 'new/shapeworks-python.md'
   - 'Ellipsoid Joint Generation':           'new/ellipsoid-joint-generation.md'
   - 'AI Assisted Segmentation':             'new/ai-assisted-segmentation.md'
- ShapeWorks Studio:
   - 'Getting Started':                      'studio/getting-started-with-studio.md'
   - 'Viewer Controls':                      'studio/studio-viewer.md'
   - 'Export Options':                       'studio/studio-export.md'
   - 'Data Module':                          'studio/studio-data.md'
   - 'Groom Module':                         'studio/studio-groom.md'
   - 'Optimize Module':                      'studio/studio-optimize.md'
   - 'Analyze Module':                       'studio/studio-analyze.md'
   - 'Surface Reconstruction':               'studio/surface-reconstruction.md'
   - 'DeepSSM Module':                       'studio/deepssm-in-studio.md'
   - 'Multiple Domains SSM':                 'studio/multiple-domains.md'
   - 'Multi-Domain Reference Frames':        'studio/multi-domain-analysis-reference-frames.md'
   - 'Shared Boundaries':                    'studio/studio-shared-boundary.md'
   - 'Segmentation Tool':                    'studio/segmentation-tool.md'
   - 'AI Assisted Segmentation':             'studio/ai-assisted-segmentation.md'
- ShapeWorks Cloud:
   - 'Getting Started':                      'cloud/getting-started-with-cloud.md'
   - 'Datasets':                             'cloud/cloud-dataset.md'
   - 'Projects':                             'cloud/cloud-project.md'
   - 'Data Module':                          'cloud/cloud-data-module.md'
   - 'Groom Module':                         'cloud/cloud-groom-module.md'
   - 'Optimize Module':                      'cloud/cloud-optimize-module.md'
   - 'Analyze Module':                       'cloud/cloud-analyze-module.md'
   - 'Shape Viewer':                         'cloud/cloud-shape-viewer.md'
   - 'ShapeWorks Cloud Client':              'cloud/swcc.md'
- ShapeWorks Tools:
   - 'ShapeWorks Commands': 'tools/ShapeWorksCommands.md'
- ShapeWorks in Python:
   - 'Getting Started with Notebooks' :               'notebooks/getting-started-with-notebooks.ipynb'
   - 'Getting Started with Segmentations' :           'notebooks/getting-started-with-segmentations.ipynb'
   - 'Getting Started with Meshes' :                  'notebooks/getting-started-with-meshes.ipynb'
   - 'Getting Started with Exploring Segmentations' : 'notebooks/getting-started-with-exploring-segmentations.ipynb'
   - 'Getting Started with Data Augmentation' :       'notebooks/getting-started-with-data-augmentation.ipynb'
   - 'Getting Started with Shape Cohort Generation' : 'notebooks/getting-started-with-shape-cohort-generation.ipynb'
   - 'Array passing without copying' :                'notebooks/array-passing-without-copying.ipynb'
   - 'Create and apply Image transforms' :            'notebooks/create-and-apply-image-transforms.ipynb'
   - 'Create and apply Mesh transforms' :             'notebooks/create-and-apply-mesh-transforms.ipynb'
- Deep Learning & SSMs:
   - 'PyTorch GPU Support for ShapeWorks':   'deep-learning/pytorch-gpu.md'
   - 'Data Augmentation for Deep Learning':  'deep-learning/data-augmentation.md'
   - 'SSMs Directly from Images':            'deep-learning/deep-ssm.md'
- Use Cases:
   - 'Getting Started with Use Cases':                               'use-cases/use-cases.md'
   - Segmentation Based Use Cases:
      - 'Ellipsoid: Basic Example':                                  'use-cases/segmentation-based/ellipsoid.md'
      - 'Left Atrium: Shape Model from Segmentations':               'use-cases/segmentation-based/left-atrium.md'
      - 'Shape Model for Multiple Domains from Segmentations':       'use-cases/segmentation-based/ellipsoid-multiple-domain.md'
   - Mesh Based Use Cases:
      - 'Ellipsoid Mesh: Basic Example':                             'use-cases/mesh-based/ellipsoid_mesh.md'
      - 'Lumps: Shape Model directly from Mesh':                     'use-cases/mesh-based/lumps.md'
      - 'Thin Cavity Bean: Shape Model with Geodesic Distances':     'use-cases/mesh-based/thin-cavity-bean.md'
      - 'Shape Model for Multiple Domains directly from Mesh':       'use-cases/mesh-based/ellipsoid-multiple-domain-mesh.md'
      - 'Hip: Multiple Domains Alignment':                           'use-cases/mesh-based/hip.md'
   - Contour Based Use Cases:
      - 'Supershapes:Shape Model for Contour Domains':               'use-cases/contour-based/supershapes-contour.md'
   - Constraints Based Use Cases:
      - 'Ellipsoid: Shape Model with Cutting Planes':                'use-cases/constraint-based/ellipsoid-cutting-planes.md'
      - 'Femur:Shape Model with Cutting Planes':                     'use-cases//constraint-based/femur-cutting-planes.md'
      - 'Studio Femur: Shape Model from Meshes with Cutting Planes Using Studio': 'use-cases//constraint-based/femur-cutting-planes-studio.md'
   - Multi-Step Optimization Use Cases:
      - 'Fixed Domains Ellipsoid: Shape Model on New Shapes':        'use-cases/multistep/fixed-domain-ellipsoid.md'
      - 'Incremental Supershapes: Building a Shape Model Incrementally': 'use-cases/multistep/incremental_supershapes.md'
   - Statistics Based Use Cases:
      - 'Ellipsoid: Shape Statistics in Python':                     'use-cases/stats-based/ellipsoid-pca.md'
      - 'Femur: Group Difference Statistics in Python':              'use-cases/stats-based/femur-pvalues.md'
      - 'Ellipsoid: Shape Evaluation in Python':                     'use-cases/stats-based/ellipsoid-evaluate.md'
   - Deep Learning Based Use Cases:
      - 'Femur SSM Directly from Images':                            'use-cases/deep-learning-based/deep-ssm-femur.md'
   - Shared Boundary Use Cases:
      - 'Peanut:Shape Model of Multiple Domains with Shared Boundaries': 'use-cases/shared-boundary-based/peanut.md'
   - 'Right Ventricle: Highly Variable Shapes':                      'use-cases/right-ventricle.md'

- For Developers:
   - 'Onboarding':                           'dev/onboarding.md'
   - 'How to Build ShapeWorks from Source?': 'dev/build.md'
   - 'How to Contribute to ShapeWorks?':     'dev/contribute.md'
   - 'How to Add ShapeWorks Commands?':      'dev/commands.md'
   - 'How to Add Python APIs?':              'dev/python-apis.md'
   - 'How to Add and Run Unit Tests?':       'dev/tests.md'
   - 'How to Add New Use Cases?':            'dev/new-use-case.md'
   - 'How to Add New Notebooks?':            'dev/new-notebook.md'
   - 'Getting Started with Documentation':   'dev/docs.md'
   - 'Getting Started with GitHub Actions':  'dev/gh-actions.md'
   - 'Getting Started with Markdown':        'dev/markdown.md'
   - 'Adding to PATH Environment Variable':  'dev/paths.md'
   - 'Release Process':                      'dev/release-process.md'

- Python API Reference: 'python/python-api.md'
     
- C++ API Reference:
   - ShapeWorks as a Library: 'dev/shapeworks-library.md'
   - Groups:     'api/Modules/index_groups.md'
   - Namespaces: 'api/Namespaces/index_namespaces.md'
   - Classes:    'api/Classes/index_classes.md'
   - Files:      'api/Files/index_files.md'

- Java/Matlab Interface:
   - Java Interface: 'java/java.md'
   - Matlab Interface: 'java/matlab.md'
     
- About:
   - 'Meet ShapeWorkers!':  'about/team.md'
   - 'Release Notes':      'about/release-notes.md'
   - 'License':            'about/license.md'
   - 'Contact Us':         'about/contact.md'


theme:
   name: material #readthedocs #rtd-dropdown #readthedocs #yeti  #united  #spacelab  #sandstone  #minty #lumen #flatly
   logo: assets/shapeworks-logo-small.png
   include_sidebar: true
   highlightjs: true
   hljs_languages:
      - yaml
      - python
      - c++
   # features:     // pretty cool, and not necessarily problems, but leaving it off for now
   #  - navigation.instant
   palette:
    - scheme: default
      toggle:
        icon: material/eye-outline
        name: Switch to dark mode
    - scheme: slate
      toggle:
        icon: material/eye
        name: Switch to light mode

markdown_extensions:
   - attr_list
   - pymdownx.tasklist
   - mdx_math
   - admonition
   - pymdownx.superfences
   - pymdownx.details
   - pymdownx.arithmatex:
      generic: true

extra_css:
    - css/custom.css

extra_javascript:
  - assets/mathjaxhelper.js
  - https://polyfill.io/v3/polyfill.min.js?features=es6
  - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js

plugins:
  - search
  - mkdocstrings:
      handlers:
        python:
          selection:
            docstring_style: google
            docstring_options:
              ignore_init_summary: yes
          setup_commands:
            - "import sys"
            - "print(sys.path)"
            - "import shapeworks"
          rendering:
            merge_init_into_class: yes
  - mkdocs-jupyter:
      execute: False
      include_source: True
  - mike:
      # these fields are all optional; the defaults are as below...
      version_selector: true   # set to false to leave out the version selector
      css_dir: css             # the directory to put the version selector's CSS
      javascript_dir: js       # the directory to put the version selector's JS
      canonical_version: null  # the version for <link rel="canonical">; `null`
                               # uses the version specified via `mike deploy`

# for material theme, mike versioning is supported as an extra
extra:
  version:
    provider: mike
  analytics:
    provider: google
    property: UA-36723568-3
