Skip to main content

Modular Optical Microscopy with JAX

Project description

PyPI Downloads License PyPI version Python Versions Documentation Status DOI Code style: black codecov jax_badge Lines of Code

Janssen: Optical Microscopy with JAX

Janssen is a JAX-based library for optical microscopy simulations and ptychographic reconstructions. It provides differentiable implementations of optical propagation, lens simulations, and phase retrieval algorithms, all optimized for GPU acceleration through JAX.

Architecture

Janssen Architecture

Janssen follows a layered architecture built on JAX's functional paradigm:

  • Foundation Layer: Core data structures (types) as JAX PyTrees for automatic differentiation, plus math utilities (utils) including Bessel functions and Wirtinger gradients
  • Physics Core: Optical propagation (prop), lens models (lenses), beam profiles (models), and wavefront manipulation (optics)
  • Coherence Layer: Partial coherence simulation (cohere) with spatial/temporal modes and source models
  • Application Layer: Forward microscope models (scopes), phase retrieval algorithms (invert), and visualization (plots)

Every optical element is a pure function Wavefront → Wavefront, enabling JAX to trace computation graphs and compute gradients automatically for inverse problems like ptychography.

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

janssen-2025.10.31.tar.gz (152.5 kB view details)

Uploaded Source

Built Distribution

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

janssen-2025.10.31-py3-none-any.whl (178.7 kB view details)

Uploaded Python 3

File details

Details for the file janssen-2025.10.31.tar.gz.

File metadata

  • Download URL: janssen-2025.10.31.tar.gz
  • Upload date:
  • Size: 152.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for janssen-2025.10.31.tar.gz
Algorithm Hash digest
SHA256 dc1f8836457e01b9a1f629a99198f1c0ded40d5f785e2f4f40a9de8047fb40d0
MD5 821f6d8686eee35d6865abc6edd2b035
BLAKE2b-256 d17df9f31eb975736c5ab2fa2d9305e0667069f6ce14f2460bc993e0e9cc553f

See more details on using hashes here.

File details

Details for the file janssen-2025.10.31-py3-none-any.whl.

File metadata

  • Download URL: janssen-2025.10.31-py3-none-any.whl
  • Upload date:
  • Size: 178.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for janssen-2025.10.31-py3-none-any.whl
Algorithm Hash digest
SHA256 3103bbf249e30fe44ca45ad80ffc624d186aab5918cd73870cc79f01b70c3900
MD5 09cc89cf50d5028215d9edc89afcd0da
BLAKE2b-256 32072487afc1fc055e2c03efa99538549d1009d0e79bfb2a73f112b5d1f90f6e

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