Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
22bccd2
docs: list all the algorithms and the shapers, with a link to slmsuite
claude Oct 30, 2026
b053a79
docs: single overview table of the algorithms and a dedicated slmsuit…
claude Oct 30, 2026
ec861ff
Merge branch 'feature/shaper-interface' into docs/algorithms-shapers
claude Oct 30, 2026
8c67fed
docs: algorithm reference page with the settings of each algorithm, d…
claude Oct 30, 2026
8662fe0
Merge branch 'feature/shaper-interface' into docs/algorithms-shapers
claude Oct 30, 2026
733761e
docs: warn about the Bowman implementations, default shaper from the …
claude Oct 30, 2026
d29c62b
docs: fix the algorithms table broken by a misplaced sentence (Minimi…
claude Oct 30, 2026
e7bfa54
docs: fix the warnings and errors of the Sphinx build (titles, math, …
claude Oct 30, 2026
636f9ea
docs: the Bowman warning concerns only the losses shaping amplitude a…
claude Oct 30, 2026
5ec4845
docs: bibliography generated from bibtex.bib and cited in the algorit…
claude Oct 30, 2026
e209744
docs: link to the text of Gerchberg and Saxton 1972
claude Oct 30, 2026
62e0a32
docs: render equations with MathJax (no LaTeX needed on Read the Docs)
claude Oct 30, 2026
33f2c38
docs: give rediraffe a (still empty) redirects file
claude Oct 30, 2026
76d80fe
docs: hideable sidebar, full-width content and tables kept within it …
claude Oct 30, 2026
0d0c5be
docs: a shaper can be phase only, amplitude only (DMD) or both
claude Oct 30, 2026
58d2af4
docs: shaper properties come from the Shaper actuator, not from the p…
claude Oct 30, 2026
be40d6c
docs: use_internal_calibration is a preference of BeamShaping imposed…
claude Oct 30, 2026
900c646
docs: use_internal_calibration is in the calibration section of the p…
claude Oct 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions docs/src/_static/css/layout.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/* Let the page content use the whole browser width instead of the
theme's fixed 800px column. */
.wy-nav-content {
max-width: none;
}

/* Table cells wrap their text instead of pushing the table out of the page. */
.rst-content table.docutils td,
.rst-content table.docutils th,
.wy-table-responsive table td,
.wy-table-responsive table th {
white-space: normal;
}

/* Button showing/hiding the navigation sidebar (see sidebar_toggle.js). */
.pmq-sidebar-toggle {
position: fixed;
top: 8px;
left: 308px;
z-index: 300;
width: 32px;
height: 32px;
padding: 0;
border: 1px solid #c9c9c9;
border-radius: 4px;
background: #fcfcfc;
color: #404040;
font-size: 18px;
line-height: 30px;
text-align: center;
cursor: pointer;
opacity: 0.8;
}
.pmq-sidebar-toggle:hover {
opacity: 1;
background: #e7f2fa;
}

body.pmq-sidebar-hidden .wy-nav-side {
display: none;
}
body.pmq-sidebar-hidden .wy-nav-content-wrap {
margin-left: 0;
}
body.pmq-sidebar-hidden .pmq-sidebar-toggle {
left: 8px;
}

/* On small screens the theme already has its own menu button. */
@media screen and (max-width: 768px) {
.pmq-sidebar-toggle {
display: none;
}
}

/* Keep the breadcrumbs clear of the toggle button. */
@media screen and (min-width: 769px) {
.wy-breadcrumbs {
padding-left: 36px;
}
}
11 changes: 11 additions & 0 deletions docs/src/_static/css/overflow.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.rst-content img {
max-width: none !important;
height: auto;
}
.wy-table-responsive {
overflow: visible;
}

.dataTables_wrapper {
overflow: auto;
}
44 changes: 44 additions & 0 deletions docs/src/_static/js/sidebar_toggle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Adds a button to show/hide the navigation sidebar of the Read the Docs theme.
// The choice is remembered between pages.
(function () {
var KEY = "beamshaping-docs-sidebar-hidden";

function stored() {
try {
return window.localStorage.getItem(KEY) === "1";
} catch (e) {
return false;
}
}

function store(hidden) {
try {
window.localStorage.setItem(KEY, hidden ? "1" : "0");
} catch (e) {
// storage unavailable: the choice only lasts for this page
}
}

document.addEventListener("DOMContentLoaded", function () {
var button = document.createElement("button");
button.type = "button";
button.className = "pmq-sidebar-toggle";

function apply(hidden) {
document.body.classList.toggle("pmq-sidebar-hidden", hidden);
button.innerHTML = hidden ? "☰" : "«";
button.title = hidden ? "Show the navigation sidebar" : "Hide the navigation sidebar";
button.setAttribute("aria-label", button.title);
button.setAttribute("aria-expanded", hidden ? "false" : "true");
}

button.addEventListener("click", function () {
var hidden = !document.body.classList.contains("pmq-sidebar-hidden");
apply(hidden);
store(hidden);
});

apply(stored());
document.body.appendChild(button);
});
})();
6 changes: 3 additions & 3 deletions docs/src/acknowledgments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Main Sources
- `GitHub: pymodaq_plugins_beam_shaping <https://github.com/PyMoDAQ/pymodaq_plugins_beam_shaping>`_
* - **Scientific Article**
- Full manuscript (PDF/LaTeX) provided by the authors (Rollo, Arbouet, Weber)
- `To be cited <>`_
- To be cited
* - **PyMoDAQ Documentation**
- Official guide for extensions and documentation style
- `pymodaq.cnrs.fr <https://pymodaq.cnrs.fr/en/latest/>`_
Expand All @@ -54,10 +54,10 @@ Main Sources


Tools Used
---------
----------
- **Sphinx** (with ``sphinx-rtd-theme``) for documentation generation.
- **reStructuredText** (``.rst``) for writing.
- **LaTeX** for mathematical equations (integrated via ``sphinx.ext.imgmath``).
- **LaTeX** syntax for mathematical equations (rendered in the browser by MathJax via ``sphinx.ext.mathjax``).
- **HDF5** for describing the structure of ``.h5beam`` files.


Expand Down
1 change: 1 addition & 0 deletions docs/src/bibtex.bib
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ @Article{gerchberg_practical_1972
year = {1972},
pages = {237},
volume = {35},
url = {https://web.archive.org/web/20160328053000/http://www.u.arizona.edu/~ppoon/GerchbergandSaxton1972.pdf},
abstract = {An algorithm is presented for the rapid solution of the phase of the complete wave function whose intensity in the diffraction and imaging planes of an imaging system are known. A proof is given showing that a defined error between the estimated function and the correct function must decrease as the algorithm iterates. The problem of uniqueness is discussed and results are presented demonstrating the power of the method.},
groups = {pulse shaping},
}
Expand Down
21 changes: 10 additions & 11 deletions docs/src/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"sphinx_autodoc_typehints",
'sphinx.ext.doctest',
'sphinx.ext.coverage',
'sphinx.ext.imgmath',
'sphinx.ext.mathjax', # equations rendered in the browser, no LaTeX needed on the build machine (Read the Docs)
'sphinx.ext.githubpages',
'sphinx.ext.autosummary',
'releases',
Expand All @@ -53,19 +53,9 @@
'section': 'Section %s',
}

html_css_files = [
'https://fonts.googleapis.com/icon?family=Material+Icons',
'css/custom.css', # Pour styliser les icônes
]

bibtex_bibfiles = ['bibtex.bib'] # Chemin relatif à docs/
bibtex_reference_style = 'author_year' # Style de citation (ex: "Weber 2021")

# Configuration pour imgmath (équations LaTeX)
imgmath_image_format = 'png' # ou 'svg'
imgmath_font_size = 14
imgmath_dpi = 150

# -- Options for autodocumentation ---------------------------------------------
autodoc_member_order = "groupwise"
autoclass_content = "class"
Expand Down Expand Up @@ -120,7 +110,12 @@
}

html_css_files = [
'https://fonts.googleapis.com/icon?family=Material+Icons',
'css/overflow.css',
'css/layout.css', # full-width content, tables kept within it
]
html_js_files = [
'js/sidebar_toggle.js', # button to hide the navigation sidebar
]

html_static_path = ["_static", "_images"] # NOUVEAU: Ajout de "_images"
Expand All @@ -134,6 +129,10 @@
'paging': True,
}

# -- Options for rediraffe -----------------------------------------------------
# Redirections of the pages that are renamed or removed, one "old_page new_page" per line (without the extension)
rediraffe_redirects = 'redirects.txt'

# -- Options for intersphinx ---------------------------------------------------
intersphinx_mapping = {
'python': ('https://docs.python.org/3', None),
Expand Down
1 change: 1 addition & 0 deletions docs/src/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ Applications
- Wavefront correction (aberration compensation).

.. _FIG-schema:

.. figure:: /_images/layout.png
:alt: General Beam-Shaping Problem
:width: 90%
Expand Down
5 changes: 3 additions & 2 deletions docs/src/quick_start.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Quick Start
:alt: Save
:align: middle

.. |file_open| image:: /_static/icons/folder_open.png
.. |file_open| image:: /_static/icons/file_open.png
:height: 20pt
:alt: Load
:align: middle
Expand All @@ -22,7 +22,7 @@ Quick Start
:alt: Input
:align: middle

.. |deblur| image:: /_static/icons/tune.png
.. |deblur| image:: /_static/icons/deblur.png
:height: 20pt
:alt: Corrections
:align: middle
Expand Down Expand Up @@ -128,6 +128,7 @@ Follow these steps to perform your first beam shaping:
For more details on the interface, see :numref:`FIG-quick-start`.

.. _FIG-quick-start:

.. figure:: /_images/main_app.png
:alt: BeamShaping User Interface
:width: 100%
Expand Down
1 change: 1 addition & 0 deletions docs/src/redirects.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# "old_page new_page" for each page that is renamed or removed (paths relative to docs/src, without extension)
39 changes: 8 additions & 31 deletions docs/src/references.rst
Original file line number Diff line number Diff line change
@@ -1,45 +1,22 @@
References
=========
==========

PyMoDAQ Documentation
---------------------
- To cite PyMoDAQ: :cite:p:`Weber2021`
- `PyMoDAQ Official Documentation <https://pymodaq.cnrs.fr/en/latest/>`_
- `Extension Plugins Guide <https://pymodaq.cnrs.fr/en/latest/developer_folder/extension_plugins.html>`_
- `Plugin Template Repository <https://github.com/PyMoDAQ/pymodaq_plugins_template>`_

Beam Shaping Literature
----------------------
.. [Gerchberg1972]
Gerchberg, R. W., & Saxton, W. O. (1972).
*A practical algorithm for the determination of the phase from image and diffraction plane pictures*.
**Optik**, *35*, 237–246.
`DOI:10.1088/0030-3946/35/1/002 <https://doi.org/10.1088/0030-3946/35/1/002>`_
-----------------------
The articles cited in this documentation:

.. [Pasienski2008]
Pasienski, M., & DeMarco, B. (2008).
*High-accuracy modal beam shaping*.
**Optics Letters**, *33*(15), 1719–1721.
`DOI:10.1364/OL.33.001719 <https://doi.org/10.1364/OL.33.001719>`_

.. [Wu2021]
Wu, Y., et al. (2021).
*Adaptive beam shaping with weighted Gerchberg-Saxton algorithm*.
**Optics Express**, *29*(12), 18345–18356.
`DOI:10.1364/OE.424917 <https://doi.org/10.1364/OE.424917>`_

.. [MendozaYero2014]
Mendoza-Yero, O., et al. (2014).
*Encoding amplitude and phase information in a single phase-only spatial light modulator*.
**Optics Express**, *22*(13), 16336–16347.
`DOI:10.1364/OE.22.016336 <https://doi.org/10.1364/OE.22.016336>`_

.. [Weber2021]
Weber, S., et al. (2021).
*PyMoDAQ: An open-source, Python-based software for modular data acquisition*.
**Journal of Open Source Software**, *6*(60), 2940.
`DOI:10.21105/joss.02940 <https://doi.org/10.21105/joss.02940>`_
.. bibliography::
:cited:
:style: plain

Plugin Repository
----------------
-----------------
- `PyMoDAQ-BeamShaping GitHub <https://github.com/PyMoDAQ/pymodaq_plugins_beam_shaping>`_

Loading
Loading