Computational modelling of ray propagation through optical elements using the principles of geometric optics (Ray Tracer)

Overview

Computational modelling of ray propagation through optical elements using the principles of geometric optics (Ray Tracer)

Introduction

By applying the principles of geometric optics, imaging performances of lenses were investigated via examining the propagation of optical rays through various optical systems. The optical system and its elements were modelled with an object-oriented approach using the Python programming language. Through utilising a ray bundle with specific parameters, the performances of a planoconvex lens with different orientations were analysed. The orientation with the convex surface facing the incident beam was found to be more effective at minimising the spherical aberration. This was evident from the value of the geometric RMS spot radius of 1.85 x 10^-5} m at the paraxial focus compared to 7.04 x 10^-5 m for the plano-convex orientation. This was further supported by the relatively slow rate of increase in the RMS spot radius with the beam size for the convex-plano orientation. Furthermore, by optimising the curvatures of a singlet lens with a image distance of 100 mm, the best form curvatures were approximated as 0.01417 mm^-1 and -0.00532 mm^-1 with the RMS spot radius of 6.07 x 10^-8 m, leading to a conclusion that the system was diffraction limited and the effect of diffraction was substantial when using a beam radius smaller than 13.60 mm.

Requirements

Python 2.x is required to run the scripts (except for those with name beginning with 'ODE_').

Create an environment using conda as follows:

  conda create -n python2 python=2.x

Then activate the new environment by:

  conda activate python2

Results

In an ideal case, optical rays refracting through a spherical lens can be made to converge at a single point known as the focal point. However, in practice, rays fail to converge at a single point and a blurring effect occurs. This optical effect, known as the spherical aberration, is a result of the rays propagating parallel to the optical axis through a spherical lens at different distances from the axis.$^{1, 3}$ The rays further away from the optical axis experience greater refraction and thus they intersect the optical axis slightly behind the paraxial focus before diverging (FIG. 1).

For a single lens, spherical aberration can be minimised either by changing the orientation of the lens or by carefully choosing the curvatures of the spherical surfaces into the best form. In this investigation, both cases are examined using collimated ray bundles with uniformly distributed rays of various diameters with the aim to minimise this effect.

SA Figure 1: A lens displaying spherical aberration - the marginal and paraxial rays focus at the points F_1 and F_2 respectively.


single

Figure 2: A ray bundle of radius 5 mm propagating through a single spherical surface with a curvature of 0.03 mm^-1 and refracting towards the optical axis.


spotplot2

Figure 3: The non-uniform ring pattern that is shown in the figure is symbolic of the spherical aberration effect. The aberration is significantly reduced using the convex-plano orientation.


RMSPC

Figure 4: A graph depicting the change in the RMS spot radius at the paraxial focus with increasing beam size.


RMSDL

Figure 5: A graph showing the relationships of the diffraction limit and the RMS spot radius with increasing beam size.

🔗 Links

linkedin

License

MIT License

Owner
Son Gyo Jung
Son Gyo Jung
ISTR: End-to-End Instance Segmentation with Transformers (https://arxiv.org/abs/2105.00637)

This is the project page for the paper: ISTR: End-to-End Instance Segmentation via Transformers, Jie Hu, Liujuan Cao, Yao Lu, ShengChuan Zhang, Yan Wa

Jie Hu 182 Dec 19, 2022
Rapid experimentation and scaling of deep learning models on molecular and crystal graphs.

LitMatter A template for rapid experimentation and scaling deep learning models on molecular and crystal graphs. How to use Clone this repository and

Nathan Frey 32 Dec 06, 2022
Hypersearch weight debugging and losses tutorial

tutorial Activate tensorboard option Running TensorBoard remotely When working on a remote server, you can use SSH tunneling to forward the port of th

1 Dec 11, 2021
A-ESRGAN aims to provide better super-resolution images by using multi-scale attention U-net discriminators.

A-ESRGAN: Training Real-World Blind Super-Resolution with Attention-based U-net Discriminators The authors are hidden for the purpose of double blind

77 Dec 16, 2022
Blind visual quality assessment on 360° Video based on progressive learning

Blind visual quality assessment on omnidirectional or 360 video (ProVQA) Blind VQA for 360° Video via Progressively Learning from Pixels, Frames and V

5 Jan 06, 2023
Customised to detect objects automatically by a given model file(onnx)

LabelImg LabelImg is a graphical image annotation tool. It is written in Python and uses Qt for its graphical interface. Annotations are saved as XML

Heeone Lee 1 Jun 07, 2022
🔥3D-RecGAN in Tensorflow (ICCV Workshops 2017)

3D Object Reconstruction from a Single Depth View with Adversarial Learning Bo Yang, Hongkai Wen, Sen Wang, Ronald Clark, Andrew Markham, Niki Trigoni

Bo Yang 125 Nov 26, 2022
Federated Learning - Including common test models for federated learning, like CNN, Resnet18 and lstm, controlled by different parser

Federated_Learning 💻 This projest include common test models for federated lear

TianyuQi 10 Dec 11, 2022
Finetune alexnet with tensorflow - Code for finetuning AlexNet in TensorFlow >= 1.2rc0

Finetune AlexNet with Tensorflow Update 15.06.2016 I revised the entire code base to work with the new input pipeline coming with TensorFlow = versio

Frederik Kratzert 766 Jan 04, 2023
Harmonic Memory Networks for Graph Completion

HMemNetworks Code and documentation for Harmonic Memory Networks, a series of models for compositionally assembling representations of graph elements

mlalisse 0 Oct 27, 2021
Official MegEngine implementation of CREStereo(CVPR 2022 Oral).

[CVPR 2022] Practical Stereo Matching via Cascaded Recurrent Network with Adaptive Correlation This repository contains MegEngine implementation of ou

MEGVII Research 309 Dec 30, 2022
Tools for the Cleveland State Human Motion and Control Lab

Introduction This is a collection of tools that are helpful for gait analysis. Some are specific to the needs of the Human Motion and Control Lab at C

CSU Human Motion and Control Lab 88 Dec 16, 2022
Code for "Finding Regions of Heterogeneity in Decision-Making via Expected Conditional Covariance" at NeurIPS 2021

Finding Regions of Heterogeneity in Decision-Making via Expected Conditional Covariance Justin Lim, Christina X Ji, Michael Oberst, Saul Blecker, Leor

Sontag Lab 3 Feb 03, 2022
Segmentation Training Pipeline

Segmentation Training Pipeline This package is a part of Musket ML framework. Reasons to use Segmentation Pipeline Segmentation Pipeline was developed

Musket ML 52 Dec 12, 2022
TeachMyAgent is a testbed platform for Automatic Curriculum Learning methods in Deep RL.

TeachMyAgent: a Benchmark for Automatic Curriculum Learning in Deep RL Paper Website Documentation TeachMyAgent is a testbed platform for Automatic Cu

Flowers Team 51 Dec 25, 2022
Python library for analysis of time series data including dimensionality reduction, clustering, and Markov model estimation

deeptime Releases: Installation via conda recommended. conda install -c conda-forge deeptime pip install deeptime Documentation: deeptime-ml.github.io

495 Dec 28, 2022
This repository contains the re-implementation of our paper deSpeckNet: Generalizing Deep Learning Based SAR Image Despeckling

deSpeckNet-TF-GEE This repository contains the re-implementation of our paper deSpeckNet: Generalizing Deep Learning Based SAR Image Despeckling publi

Adugna Mullissa 16 Sep 07, 2022
Multi-Stage Spatial-Temporal Convolutional Neural Network (MS-GCN)

Multi-Stage Spatial-Temporal Convolutional Neural Network (MS-GCN) This code implements the skeleton-based action segmentation MS-GCN model from Autom

Benjamin Filtjens 8 Nov 29, 2022
Supplementary code for the AISTATS 2021 paper "Matern Gaussian Processes on Graphs".

Matern Gaussian Processes on Graphs This repo provides an extension for gpflow with Matérn kernels, inducing variables and trainable models implemente

41 Dec 17, 2022
Learning Dense Representations of Phrases at Scale (Lee et al., 2020)

DensePhrases DensePhrases provides answers to your natural language questions from the entire Wikipedia in real-time. While it efficiently searches th

Princeton Natural Language Processing 540 Dec 30, 2022