Kinoform (diffractive) Surfaces
Checklist
- [x] I have searched the existing issues and discussions for a similar question or feature request.
- [x] I have read the documentation and tried to find an answer there.
- [x] I am using the latest version of Optiland.
- [x] I have included all necessary context.
Thanks for taking the time to go through this — it really helps us help you!
Feature Request
Is your feature request related to a problem? Please describe. Optiland currently doesn’t support diffractive optical elements (DOEs), which limits its applicability for systems involving wavelength-dependent phase control, such as gratings, kinoforms, and other microstructured surfaces.
Describe the solution you'd like Introduce a new diffractive or phase surface type (or similar) to represent elements like kinoforms. Initially, this could be implemented as a phase-only surface with user-definable phase profiles, with possible (future) support for Zernike, polynomial, or grid-based definitions.
Describe alternatives you've considered NA
Additional context A community member (@Hhsoj) has expressed interest and has already implemented some kinoform-type surfaces. We’ll use this issue to coordinate design and development going forward. This also ties into broader interest in modeling gratings, slits, and more general wavelength-sensitive elements, which could build on this foundation.
@Hhsoj is working on this. Let us know if you have questions or need support!
@HarrisonKramer I pushed a forked version with the general approach of adding phase elements to a surface. I started off with grating just because it was a little easier to start. For really fast surface powers the grating output is slightly off so we are looking into that but thought it might be worth seeing how phase was added to surfaces to get your thoughts.
https://github.com/Hhsoj/optiland/tree/diffractive
Hi @Hhsoj,
Thanks for pushing this update. I really like the approach and it makes a lot of sense. I think we can proceed with it.
Let me know if you have any other questions as you continue. Looks good so far. Thanks!
Kramer
Hi @Hhsoj,
Have you made any more progress on this task? Let us know if you need some help, or if you don't have time to work on it. Someone else may be able to support, or pick it up, if needed.
Thanks! Kramer
Hi Kramer,
Yeah I was out for a bit but I returned last week and I have pushed some updates to the branch I’ve been working out of under diffractive. I just started to add radial phase math. I was largely making sure I could implement phase on the geometry correctly and a scalable way. I have it working the way I was hoping now. I have grating working so I just moved on to radial phase today and it shouldn’t take me to long to get that working now that I’m back. Hoping to implement that and the diffraction efficiency calculation to the phase types next. Once I have that in I’ll make a request to merge to master for you to review, if that works for you.
Thanks -Hhsoj