optiland icon indicating copy to clipboard operation
optiland copied to clipboard

Kinoform (diffractive) Surfaces

Open HarrisonKramer opened this issue 5 months ago • 5 comments

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.

HarrisonKramer avatar Jul 22 '25 19:07 HarrisonKramer

@Hhsoj is working on this. Let us know if you have questions or need support!

HarrisonKramer avatar Jul 22 '25 20:07 HarrisonKramer

@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

Hhsoj avatar Aug 01 '25 17:08 Hhsoj

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

HarrisonKramer avatar Aug 03 '25 20:08 HarrisonKramer

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

HarrisonKramer avatar Sep 07 '25 14:09 HarrisonKramer

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

Hhsoj avatar Sep 07 '25 15:09 Hhsoj