Skip to main content

A CUDA-based library for computed tomography (CT) projection and reconstruction with differentiable operators

Project description

DiffCT: Differentiable Computed Tomography Operators

License DOI PyPI version Ask DeepWiki

A high-performance, CUDA-accelerated library for circular orbits CT reconstruction with end-to-end differentiable operators, enabling advanced optimization and deep learning integration.

Please star this project if you find it useful!

✨ Features

  • Fast: CUDA-accelerated projection and backprojection operations
  • Differentiable: End-to-end gradient propagation for deep learning workflows

📐 Supported Geometries

  • Parallel Beam: 2D parallel-beam geometry
  • Fan Beam: 2D fan-beam geometry
  • Cone Beam: 3D cone-beam geometry

🧩 Code Structure

diffct/
├── diffct/
│   ├── __init__.py            # Package initialization   ├── differentiable.py      # Differentiable CT operators
├── examples/                  # Example usages   ├── fbp_parallel.py
│   ├── fbp_fan.py
│   ├── fdk_cone.py
│   ├── iterative_reco_cone.py
│   ├── iterative_reco_fan.py
├── pyproject.toml             # Project metadata
├── README.md                  # README
├── LICENSE                    # License
├── requirements.txt           # Dependencies

🚀 Quick Start

Prerequisites

  • CUDA-capable GPU
  • Python 3.10+
  • PyTorch, NumPy, Numba with CUDA support

Installation

# Create and activate environment
conda create -n diffct python=3.10
conda activate diffct

# Install CUDA support
conda install cudatoolkit

git clone https://github.com/sypsyp97/diffct.git
cd diffct

pip install -r requirements.txt
pip install diffct

📝 Citation

If you use this library in your research, please cite:

@software{DiffCT2025,
  author       = {Yipeng Sun},
  title        = {DiffCT: Differentiable Computed Tomography 
                 Reconstruction with CUDA},
  year         = 2025,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.14999333},
  url          = {https://doi.org/10.5281/zenodo.14999333}
}

📄 License

This project is licensed under the Apache 2.0 - see the LICENSE file for details.

🙏 Acknowledgements

This project was highly inspired by:

Issues and contributions are welcome!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diffct-1.1.7.tar.gz (22.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

diffct-1.1.7-py2.py3-none-any.whl (17.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file diffct-1.1.7.tar.gz.

File metadata

  • Download URL: diffct-1.1.7.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for diffct-1.1.7.tar.gz
Algorithm Hash digest
SHA256 6293f25116b16c5579cf2630faed8df3d7702522f15b6a00ba611b8abcce6352
MD5 821cf81c79cbc9403d3290a89ad8a63b
BLAKE2b-256 14ccfe6376600f712a01bc5d988b8129710d96fc1bdf6d7f024e2672950fdf0d

See more details on using hashes here.

File details

Details for the file diffct-1.1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: diffct-1.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for diffct-1.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 19f577ea382df56e6c954ca6db441e6e5316bd127656ad5f03a6b918bc00faa3
MD5 9eb0e1d036312c6fceaf528217da622e
BLAKE2b-256 df3c27262582e007135ddcac7bb1d4e6a5ad643468a7150c9a0eec026d53b794

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page