This repository contains the code used to generate the results presented in the Optica Imaging Congress 2024 submitted article "Joint spectrally-shaped illumination and detection of VCSEL oxydation", A. Rouxel, S. Calvez, A. Monmayrant, G. Almuneau
- Generation of VCSEL-like shapes (circle, hexagon, square) using Blender
- Calculation of various multi-layers structures using Scattering-Matrix algorithm [1], [2]
- Lateral wet oxidation simulation of these structures using the method described in [3]
- Generation of spectral filters with arbitrary spectral shapes or Michelson interferometer
- Monitoring system modeling (optical setup + detection)
- Segmentation algorithm with Resnet34
- Clone the repository to your local machine.
git clone https://github.com/a-rouxel/JIVOX.git
- Install the required packages using the following command:
pip install -r requirements.txt
- Generate json config files using : generate_vcsel_config_files_blend.py. Please look at the python file comments for more details on the parameters.
python generate_vcsel_config_files_blend.py
These config json files will be stored in the directory specified in "dir_configs".
- Run generation of VCSEL-like shapes using : generate_shapes.blend (Blender 3.x) and associated script (already loaded in the blender file). It will load the configs files geenrated at the previous step.
- Define the oxidation parameters in the python file "oxidize_aperture.py" (oxidation speed depending on Al concentration, nb of vcsels to oxidize , ...)
- Run the oxidation simulation using : oxidize_aperture.py
python oxidize_aperture.py
The resulting images will be stored in the directory specified in "input_dir".
- Define the multilayer stacks of interest in a json file (for now, there are in "multilayer_stacks")
- Calculate the reflectivity of these stacks using the s-matrix algorithm using the implementation described in (https://gitlab.laas.fr/arouxel/s-algorithm)
python generating_spectra_from_stack.py
The generated spectra will be stored in the directory specified in "output_dir".
- Generate resulting png files from various masks (corresponding to various steps of the oxidation)
- Associate the spectra from the multi-layers stacks to the corresponding files
- Generate the ground truth gif
python generate_ground_truth_data.py
[1]: N. P. K. Cotter, T. W. Preist, and J. R. Sambles (1995). "Scattering-matrix approach to multilayer diffraction." Journal of the Optical Society of America A, 1097–1103. Link to publication
[2]: A. Rouxel, P. Gadras, "S-algorithm matrix repository" (2023). Link to repository
[3]: Calvez, S., Lafleur, G., et al. (2018). "Modelling anisotropic lateral oxidation from circular mesas." Optical Material Express. Link to publication
[4]: Monvoisin, N. et al. (2023). "Spectrally-shaped illumination for improved optical monitoring of lateral III-V-semiconductor oxidation." Link to publication