chromatix-team / chromatix

Differentiable wave optics using JAX! Documentation can be found at https://chromatix.readthedocs.io
MIT License
77 stars 13 forks source link

Diffuser as a Phase mask #146

Open zangzh17 opened 2 weeks ago

zangzh17 commented 2 weeks ago

Just thought diffuser is also a important type of basic elements and may be very useful to be listed as one of available elements. It is suggested to consider several type of diffusers, such as microlens-based engineered diffuser and ground glass diffusers.

FYI https://www.thorlabs.com/navigation.cfm?guide_id=17 https://lso.viavisolutions.com/engineered-diffusers-information/

diptodip commented 2 weeks ago

Thanks! We already have general phase masks (phase_change() function or PhaseMask module) that you can use to model diffusers by passing a random 2D array as the phase right now. We are also already working on adding a range of other phase masks to generate commonly used patterns like the ones you linked. If you also wanted regular microlens arrays, we have an early implementation of microlens arrays in the dd/dev branch.

Are you suggesting a name for these functions, or is there a different kind of modeling that you would like to add (e.g. do you need to model the diffuser as thickness of polymer rather than phase in radians)?