mlx-tomo
Copyright 2026 Martin Lachaine

mlx-tomo is an independent implementation of parallel-, fan- and cone-beam
X-ray projection and backprojection for Apple GPUs via Metal/MLX. It adopts the
geometry conventions, field names and sampling semantics of TIGRE so that
existing TIGRE workflows can be adapted with minimal API changes.

TIGRE is distributed under the BSD 3-Clause License:

  Copyright (c) 2015, University of Bath and CERN - European Organization for
  Nuclear Research. All rights reserved.

  https://github.com/CERN/TIGRE

The host-side geometry pipeline in mlx_tomo/ref.py and mlx_tomo/projector.py
implements the coordinate transforms that TIGRE's projector sources define
(computeDeltas, computeDeltas_parallel, eulerZYZ, rollPitchYaw), written from
those definitions in NumPy and Metal. TIGRE was used as a numerical reference
during development. No TIGRE source code is included in or redistributed by
this project.

If you use this software, please also cite TIGRE:

  A. Biguri, M. Dosanjh, S. Hancock, and M. Soleimani, "TIGRE: a MATLAB-GPU
  toolbox for CBCT image reconstruction," Biomedical Physics & Engineering
  Express 2(5), 055010 (2016). doi:10.1088/2057-1976/2/5/055010

The three-dimensional Shepp-Logan ellipsoid table in mlx_tomo/phantom3d.py is
the standard modified Shepp-Logan phantom as published in the imaging
literature and as distributed by ODL (odl.phantom.shepp_logan).
