Edit this page

NA-MIC Project Weeks

Back to Projects List

AppImage for 3D Slicer on Linux

Key Investigators

Project Description

This project aims to create a portable AppImage distribution of 3D Slicer for Linux systems. AppImage is a universal software package format that allows applications to run on various Linux distributions without installation, making 3D Slicer more accessible and easier to deploy across different Linux environments. The project will streamline the distribution process and reduce dependency conflicts that users often encounter when installing 3D Slicer on different Linux distributions.

Objective

  1. Objective A. Create a functional 3D Slicer AppImage that bundles all necessary dependencies and libraries to run 3D Slicer on major Linux distributions without requiring system-wide installation.
  2. Objective B. Establish an automated build pipeline for generating AppImages from 3D Slicer releases, ensuring consistency and maintainability for future versions.
  3. Objective C. Validate cross-distribution compatibility by testing the AppImage on multiple Linux distributions (Ubuntu, Fedora, openSUSE, Arch Linux, etc.) to ensure broad compatibility.
  4. Objective D. Document the build process and usage instructions to enable community contributions and provide clear guidance for end users.

Approach and Plan

  1. Analyze 3D Slicer’s dependency requirements and identify all libraries, Qt components, Python modules, and system dependencies needed for a standalone package.
  2. Set up AppImage build environment using linuxdeploy tools and configure the build process to bundle 3D Slicer with all required dependencies.
  3. Create AppImage recipe and build scripts that can automatically generate the AppImage from existing 3D Slicer builds, including proper library linking and Qt plugin configuration.
  4. Implement continuous integration pipeline to automatically build AppImages for new 3D Slicer releases using GitHub Actions or similar CI/CD platforms.
  5. Test the generated AppImage across different Linux distributions in virtual machines or containers to verify functionality and identify compatibility issues.
  6. Optimize AppImage size and performance by removing unnecessary components and ensuring efficient library bundling without compromising functionality.
  7. Create comprehensive documentation including build instructions, troubleshooting guide, and user installation/usage documentation.

Progress and Next Steps

TODO

Illustrations

Screenshots and demonstration videos will be added as the project progresses, showing the AppImage creation process and cross-platform testing results.

Background and References

Background

3D Slicer Community Discourse

References

3D Slicer:

AppImage:

Misc: