Skip to main content

PyCoupole

GPU-accelerated Monte Carlo uncertainty quantification for SVBRDF measurements on the La Coupole setup. Companion code to the associated Optics Express paper and measured dataset.

Installation

Simply install it from PyPI:

pip install pycoupole

Interpreting the output

computeBRDFDistribution returns a probability density, not a histogram of counts. The density carries the inverse unit of the BRDF (sr), and integrates to 1 over its support — so its values are not bounded by 1 and will be large for a sharply peaked distribution. Recover the per-bin probability mass, then the moments and credible intervals, as:

binWidth = brdfValues[1] - brdfValues[0]
mass     = pdf * binWidth                    # sums to 1

mean   = float(np.sum(mass * brdfValues))
std    = float(np.sqrt(np.sum(mass * (brdfValues - mean) ** 2)))

cdf      = np.cumsum(mass)
median   = float(np.interp(0.50,  cdf, brdfValues))
ci95_low = float(np.interp(0.025, cdf, brdfValues))
ci95_up  = float(np.interp(0.975, cdf, brdfValues))

For a well-conditioned acquisition the deterministic value sits near the centre of the distribution and the out-of-range fraction (1 - nbAccepted / nbTotal) is negligible.

Citation

If you use this software, please cite the associated paper as below (see also CITATION.cff).

La Coupole: an SVBRDF measurement device for large and non-planar objects. Antoine Lucat, Pierre Mézières, François Margall, Louis De Oliveira, Marjorie Paillet, Arnaud Tizon, Pierre Bénard, Romain Pacanowski. Optics Express, Vol. 34, Issue 7, pp. 11695-11709 (March 2026). DOI: 10.1364/OE.587877.

Associated BibTeX entry
@article{Lucat:26,
  author    = {Antoine Lucat and Pierre M\'{e}zi\`{e}res and Fran\c{c}ois Margall and Louis De Oliveira and Marjorie Paillet and Arnaud Tizon and Pierre B\'{e}nard and Romain Pacanowski},
  journal   = {Optics Express},
  keywords  = {Camera calibration; Imaging systems; Light sources; Physiology; Printed circuit boards; Spatial resolution},
  number    = {7},
  pages     = {11695--11709},
  publisher = {Optica Publishing Group},
  title     = {La Coupole: an SVBRDF measurement device for large and non-planar objects},
  volume    = {34},
  month     = {Apr},
  year      = {2026},
  url       = {https://opg.optica.org/oe/abstract.cfm?URI=oe-34-7-11695},
  doi       = {10.1364/OE.587877},
}

License

PyCoupole is distributed under the MIT License. See LICENSE.txt for more information.

Metadata

Release files for pycoupole 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycoupole 0.1.1
File Size Uploaded
pycoupole-0.1.1.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycoupole 0.1.1
File Interpreter ABI Platform
pycoupole-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 27.9 kB

Release files / pycoupole-0.1.1.tar.gz

Download URL pycoupole-0.1.1.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e0f3e5506b51b39df313d1593b9f2c69a99bfb24bbb424a03742aa1d226351cf
BLAKE2b-256 checksum
How to use checksums
8ee3bf4023cf4943f552636ba27634ed4c006ae19829141c3a009da5deecfde6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / pycoupole-0.1.1-py3-none-any.whl

Download URL pycoupole-0.1.1-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c352eff196d081e7eee3d218c826d3bea6cc090bdff452ec73ab44e50f03d4b
BLAKE2b-256 checksum
How to use checksums
d1cc31f73434c50d2a90293d49e090346badd03ea8021fd6c67ed603dcd5a530
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page