Pytorch Automatic Differentiable Optics
Project description
PADO
Pytorch Automatic Differentiable Optics
📚 Documentation• 🚀 Quickstart • ✨ Features • ⚙️ Installation • 📄 License
📋 Overview
🌊PADO (파도) is a cutting-edge framework for differentiable optical simulations powered by PyTorch. Inspired by the Korean word for "wave," PADO enables seamless and fully differentiable simulation workflows, perfect for researchers and developers in optical physics, computational imaging, and beyond.
✨ Features
- 🔥 Fully Differentiable: Integrates effortlessly with PyTorch Autograd.
- 🏎️ CUDA Acceleration: Leverages GPU hardware for ultra-fast simulations.
- 🧩 Modular Components: Easily customizable optical elements and simulation environments.
- 📊 Visualization Tools: Rich visualization with Matplotlib.
- ⚡ Easy-to-use API: Beginner-friendly API for rapid experimentation.
⚙️ Installation
You can install PADO via pip:
pip install pado-optics
Or via conda:
conda install -c conda-forge pado-optics
Or install directly from GitHub:
pip install git+https://github.com/shwbaek/pado.git
For development installation:
git clone https://github.com/shwbaek/pado.git
cd pado
pip install -e .
📚 Documentation
Comprehensive documentation is available at https://shwbaek.github.io/pado.
🚀 Quickstart
PADO includes a comprehensive set of example notebooks organized by topic:
Exploring Examples
Browse our examples by category:
-
- 1.1 Pado fundamentals - Learn about core components and building blocks
- 1.2 RGB multi-wavelength - Working with multiple wavelengths
- 1.3 4-F with batch - Batch processing in 4-F systems
- 1.4 How to use ASM options - Angular Spectrum Method configuration
-
2. Computer Generated Holography
- 2.1 DPAC - Double Phase Amplitude Coding
- 2.2 Multi-depth CGH - Multi-plane holography
- 2.3 CGH optimization - GS, SGD, and Adam methods
- 2.4 Multi-depth hologram with Adam - Complex loss-based optimization
- 2.5 Phase-only SLM optimization - Optimization with phase-only spatial light modulators
- 2.6 Multi-depth hologram with phase-only SLM - Multi-plane optimization with phase-only SLMs
-
- 3.1 Lens comparison - Different lens models and wavefront observation
- 3.2 Coded aperture comparison - Coded aperture techniques
- 3.3 Seeing through DOE - Imaging through diffractive optical elements
-
- 4.1 Polarization light - Polarized light simulation
-
- 5.1 Chromatic aberration singlet - Chromatic aberration simulation
ℹ️ About
Developed and maintained by the POSTECH Computer Graphics Lab.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📝 Citation
If you use Pado in your research, please cite Pado using the following BibText template:
@misc{Pado,
Author = {Seung-Hwan Baek, Dong-Ha Shin, Yujin Jeon, Seung-Woo Yoon, Eunsue Choi, Gawoon Ban, Hyunmo Kang},
Year = {2025},
Note = {https://github.com/shwbaek/pado},
Title = {Pado: Pytorch Automatic Differentiable Optics}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pado_optics-1.0.1.tar.gz.
File metadata
- Download URL: pado_optics-1.0.1.tar.gz
- Upload date:
- Size: 42.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f36311130208b2a22c93286c4462f70e02b1768432d75b489f99c3ebd9f5732
|
|
| MD5 |
cc51c2315bd3463f8bd963fda303e0c3
|
|
| BLAKE2b-256 |
6d273a66a4beedc5d405e56a7b0e54e2d3eabfaded971fc06d318526c1a49658
|
File details
Details for the file pado_optics-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pado_optics-1.0.1-py3-none-any.whl
- Upload date:
- Size: 44.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63513535e68a43bdb646d6fc011c8b5fd953d9fe4520c7d427c30fea387d6adc
|
|
| MD5 |
d0487e0ac599250a0bf7c2dbedb740e6
|
|
| BLAKE2b-256 |
6becbf65c1b122f23fd709b5130f39102401beac24dd673d23fba6a3d16c4f5c
|