Differentiable Holography, Documented as a Framework
An open-source computer-generated holography framework built on top of PADO, a PyTorch differentiable optics library.
This site is the high-level guide to the repository: what it is trying to become, how it is organized, which workflows already exist, and where contributors can help grow it next. The underlying PADO optics core was originally developed by the POSTECH Computer Graphics Lab.
PADO can also be read as PADO (파도), the Korean word
for wave. The repository uses that name both literally, for the optical waves it simulates, and socially,
for the momentum of a research community building reusable holography tools together.
What You Will Find Here
This MkDocs site is meant to be self-contained and practical. It focuses on architecture, workflows, reference maps, and contributor-facing context before you dive into the lower-level API details.
-
Why
PADO Hologramexists, how it relates to upstreamPADO, and what kind of long-term research stack it aims to become. -
Where the optics core ends, where
pado_hologrambegins, and why that split matters for maintainability. -
Phase-only CGH, display-aware encoding, multi-plane composition, and Hydra-based experiment entry points.
-
A human-readable map of the main modules before you dive into the code or the deeper Sphinx API reference.
Find What You Need
If you are here for something specific, start from one of these pages:
-
I want to install and run something quickly
Start with installation, imports, and the smallest CLI-backed or Hydra-compatible experiments.
-
I want to understand the repository structure
See how
pado,pado_hologram, MkDocs, Sphinx, tests, and notebooks fit together. -
I want to understand the architecture choices
Learn why the optics core and the holography layer are intentionally kept separate.
-
I want the experiment entry points
Find CLI commands, Hydra compatibility, backend choices, and the current workflow scope.
-
I want device-aware SLM details
Go straight to LCOS/LUT-based phase encoding and the current display-model bridge.
-
I want to help build this project
Jump to contribution priorities, scope, and the broader project direction.
Current Capabilities
-
Compact Gerchberg-Saxton helpers and pipeline composition for first-pass hologram generation.
-
Double-phase amplitude coding as part of the growing higher-level CGH algorithm layer.
-
pado.displayremains a compatibility bridge for LUT-based LCOS/SLM behavior while higher-level wrappers live inpado_hologram. -
CLI-backed and Hydra-compatible runs for reproducibility without pushing configuration complexity into the lower-level optics core.
Recommended Reading Path
- Start with Vision for the repository’s long-term direction.
- Move to Installation and Quickstart for a first working run.
- Read Architecture Overview and Core vs Hologram.
- Continue with Phase-Only CGH, Device Modeling, and Experiments and Hydra.
- Use Module Reference Map when you want to jump into the codebase.
Audience
PADO Hologram is intended as a shared home for people working on holography and computational imaging from backgrounds such as computer science, electrical engineering, optics, physics, perception science, and neighboring areas that care about wave-based computation and display.
The goal is to move beyond fragmented one-off codebases and toward a maintained, reusable, and well-documented stack for differentiable holography.