Skip to main content

project logo

Static Badge Static Badge PyPI Version Static Badge Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.

Description

aprict is a Python module for simulating transmission experiments in X-ray Computed Tomography, and for performing reconstructions from real and simulated data. In addition to the Python API, there is a commandline interface for some common operations.

Disclaimer

This software is provided with no warranty or guarantee of correctness. This is my research code sandbox, subject to breaking changes on a whim. This is not mature software. So, if you like it and wish to use it, then it is best to download a fixed version and use that. Updates may break things.

Features

aprict uses the GPU for all the heavy operations. The terminology 'in-core' an 'out-of-core' here refers to whether the relevant data must fit entirely within the GPU VRAM (in-core) or not (out-of-core). Most operations have no minimum RAM requirement in practice. Included features as of aprict==0.0.33:

  • Out-of-core calculation of projection data for arbitrary flat-panel geometries. Supports voxelised volumes and (almost) any FORBILD phantom. (Exact line integrals in all cases.)
  • Out-of-core analytic reconstruction for special geometries:
    • Fan-beam data with circular scan
    • Cone-beam data with cylindrical scan
  • In-core iterative reconstruction (Landweber and SIRT) for arbitrary geometries.

Documentation

Viewing online

The documentation for the latest release can be viewed online at https://docs.aprict.au/.

Viewing locally

The documentation may be viewed locally by cloning the repository and running python3 -m http.server -d aprict/docs/ 8080, then navigating to http://localhost:8080 in a browser window.

Caveats

Hardware Requirements

This software requires at least one relatively recent CUDA-capable GPU. An RTX 3090 is recent enough. The relevant drivers will also need to be installed. You may need up-to-date drivers, depending on when the code was last updated.

It is strongly recommended to use high-speed mass storage, such as an NVMe drive. The software has not been tested on slower mass storage, and is not expected to perform well without it.

This software has been tested with the following GPUs:

  • NVIDIA RTX 3090
  • NVIDIA RTX PRO 6000 Blackwell

Known limitations

  • Only flat-panel X-ray data with square pixels is supported, at this time.
  • Lack of documentation:
    • The way that geometry is encoded in *.json files is not yet documented.
    • The encoding of projection data and volume data is not yet documented. (Numpy arrays; memory-mapped in the case of projections.)
  • Implementation-related issues which could be alleviated in the future:
    • Volume size is limited by CUDA texture limit. For example, a (2400,2400,4800) volume can be reconstructed, but not a (30000,30000,1) volume, due to a volume of this size not fitting within a single CUDA texture
    • The FORBILD shape Tetrahedron is not yet implemented, and no primitive shape is permitted to have more than 3 clipping planes applied, due to internal limitations. All other FORBILD phantoms should be supported.
    • Only one GPU is utilised by this module, at the present time. There is no defined behaviour for which GPU will be chosen.
    • Not fully optimised
    • CPU and GPU work not completely asynchronous: due to unresolved bugs, various asynchronous GPU operations have been disabled. This may not have much impact on large reconstructions, but could result in poor GPU utilisation for smaller reconstructions.
    • No smart batching of (back)projections: smarter code would analyse the geometry of projections, and batch together (back)projections that involve similar regions of the volume. Currently, the code does not do any kind of clever batching like this, and so the (back)projection code is not as performant as it could be.

Metadata

Release files for aprict 0.0.38

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aprict 0.0.38
File Size Uploaded Provenance Actions
aprict-0.0.38.tar.gz 6.0 MB With provenance Details for aprict-0.0.38.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aprict 0.0.38
File Interpreter ABI Platform Actions
aprict-0.0.38-py3-none-any.whl Python 3 none any Details for aprict-0.0.38-py3-none-any.whl

Total release size: 12.2 MB

Release files / aprict-0.0.38.tar.gz

Download URL aprict-0.0.38.tar.gz
Size 6.0 MB
Tags Source
SHA-256 checksum
How to use checksums
0c62ebcd247e86d2c1ad4e5b8f9c1fdcb90d1ddb97ed9b8799af56084d97cd30
BLAKE2b-256 checksum
How to use checksums
a8b5f2d4f3659f4fe8b07c3860fb846d5190a8662ed8ebeafa785ab1bda0bae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / aprict-0.0.38-py3-none-any.whl

Download URL aprict-0.0.38-py3-none-any.whl
Size 6.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3a00d6b6e9e56c95aad43e8a290a0fb08f3c71dff984ed2631b095685f749ea9
BLAKE2b-256 checksum
How to use checksums
f91d95c719badaba00445cf3fe29b8a06e2f1d612f0f7d89fa0f1012a2262f0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for aprict 0.0.38

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aprict-0.0.38.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page