Pyxu#
Pyxu
Modular & Scalable Computational Imaging
Pyxu (pronounced [piksu], formerly known as Pycsou) is an open-source Python framework allowing scientists at any level to quickly prototype/deploy hardware accelerated and out-of-core computational imaging pipelines at scale. Thanks to its hardware-agnostic microservice architecture and its tight integration with the PyData ecosystem, Pyxu supports a wide range of imaging applications, scales, and computation architectures.
Key Features & Capabilities#
Microservice architecture
Loosely coupled software components that are composable via an advanced operator algebra.
Plug-and-play API
Simple interface for beginners with theory-informed automatic hyperparameter selection.
Experts may still fine-tune parameters via a guru interface.
Application agnostic
Generic software components with wide applicability across imaging modalities.
Flexible computation backends
The same code executes for multiple array backends, including CPU and GPU, with a unified, easily
maintainable codebase.
High-performance computing
Just-in-time compilation, batch processing, automatic parallelization, out-of-core computing, and
controllable computation precision.
Quality controlled
Extensive logical and functional unit testing of software components.
Templated test classes for custom operators.
Extensible
Powerful plugin mechanism and community marketplace (Pyxu FAIR) for
discovering and sharing custom operators.
Ecosystem#
Pyxu is highly interoperable with the wider scientific Python ecosystem. It is built on a minimal set of foundational and robust scientific computing librairies from the PyData stack. Pyxu notably supports multiple array backends –NumPy, Dask, and optionally CuPy–, allowing users to choose array backends that work best for their application/computation. Aside from SciPy and Numba – which we use for scientific computing and JIT-compilation respectively– these are Pyxu’s only dependencies, making the software very easy to ship, install, deploy in production, and sustain in the long term.
Pyxu is also interoperable with (but does not depend on) major deep learning frameworks such as JAX and PyTorch, allowing users to benefit from the latest incursions of deep learning in the field of computational imaging (e.g., PnP methods, unrolled neural networks, deep generative priors). Our wrappers can moreover leverage the autograd engine to auto-infer gradients or adjoint operations.
NumPy-aware dynamic compiler using LLVM.
Governance and Team#
Pyxu is an open-source project developed and maintained primarily by members of the EPFL Center for Imaging, but the repository itself is public and external contributions are welcome. We are committed to keeping the project public and owned by the community through a meritocratic and consensus-based governance. Anyone with an interest in the project can join the community, contribute to the project design, and participate in the decision-making process.
Steering Council#
The role of Pyxu’s Steering Council is to ensure the long-term sustainability of the project, both technically and as a community. Pyxu’s Steering Council meets regularly (every two weeks or so) and currently consists of the following members:
Contributors#
In addition to the steering council, you can also check the full list of contributors.