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
Implementation of "With a Little Help from my Temporal Context: Multimodal Egocentric Action Recognition, BMVC, 2021" in PyTorch

Multimodal Temporal Context Network (MTCN) This repository implements the model proposed in the paper: Evangelos Kazakos, Jaesung Huh, Arsha Nagrani,

Evangelos Kazakos 13 Nov 24, 2022
Styled text-to-drawing synthesis method. Featured at the 2021 NeurIPS Workshop on Machine Learning for Creativity and Design

Styled text-to-drawing synthesis method. Featured at the 2021 NeurIPS Workshop on Machine Learning for Creativity and Design

Peter Schaldenbrand 247 Dec 23, 2022
Official implementation for the paper "SAPE: Spatially-Adaptive Progressive Encoding for Neural Optimization".

SAPE Project page Paper Official implementation for the paper "SAPE: Spatially-Adaptive Progressive Encoding for Neural Optimization". Environment Cre

36 Dec 09, 2022
Benchmark tools for Compressive LiDAR-to-map registration

Benchmark tools for Compressive LiDAR-to-map registration This repo contains the released version of code and datasets used for our IROS 2021 paper: "

Allie 9 Nov 24, 2022
基于Paddlepaddle复现yolov5,支持PaddleDetection接口

PaddleDetection yolov5 https://github.com/Sharpiless/PaddleDetection-Yolov5 简介 PaddleDetection飞桨目标检测开发套件,旨在帮助开发者更快更好地完成检测模型的组建、训练、优化及部署等全开发流程。 PaddleD

36 Jan 07, 2023
Code for the CVPR2021 workshop paper "Noise Conditional Flow Model for Learning the Super-Resolution Space"

NCSR: Noise Conditional Flow Model for Learning the Super-Resolution Space Official NCSR training PyTorch Code for the CVPR2021 workshop paper "Noise

57 Oct 03, 2022
An Efficient Implementation of Analytic Mesh Algorithm for 3D Iso-surface Extraction from Neural Networks

AnalyticMesh Analytic Marching is an exact meshing solution from neural networks. Compared to standard methods, it completely avoids geometric and top

Karbo 45 Dec 21, 2022
Differentiable Neural Computers, Sparse Access Memory and Sparse Differentiable Neural Computers, for Pytorch

Differentiable Neural Computers and family, for Pytorch Includes: Differentiable Neural Computers (DNC) Sparse Access Memory (SAM) Sparse Differentiab

ixaxaar 302 Dec 14, 2022
A multi-mode modulator for multi-domain few-shot classification (ICCV)

A multi-mode modulator for multi-domain few-shot classification (ICCV)

Yanbin Liu 8 Apr 28, 2022
Generative Query Network (GQN) in PyTorch as described in "Neural Scene Representation and Rendering"

Update 2019/06/24: A model trained on 10% of the Shepard-Metzler dataset has been added, the following notebook explains the main features of this mod

Jesper Wohlert 313 Dec 27, 2022
Combining Reinforcement Learning and Constraint Programming for Combinatorial Optimization

Hybrid solving process for combinatorial optimization problems Combinatorial optimization has found applications in numerous fields, from aerospace to

117 Dec 13, 2022
LIVECell - A large-scale dataset for label-free live cell segmentation

LIVECell dataset This document contains instructions of how to access the data associated with the submitted manuscript "LIVECell - A large-scale data

Sartorius Corporate Research 112 Jan 07, 2023
Large-Scale Unsupervised Object Discovery

Large-Scale Unsupervised Object Discovery Huy V. Vo, Elena Sizikova, Cordelia Schmid, Patrick Pérez, Jean Ponce [PDF] We propose a novel ranking-based

17 Sep 19, 2022
Implementation of UNet on the Joey ML framework

Independent Research Project - Code Joey can be cloned from here https://github.com/devitocodes/joey/. Devito and other dependencies such as PyTorch a

Navjot Kukreja 1 Oct 21, 2021
TransMorph: Transformer for Medical Image Registration

TransMorph: Transformer for Medical Image Registration keywords: Vision Transformer, Swin Transformer, convolutional neural networks, image registrati

Junyu Chen 180 Jan 07, 2023
sequitur is a library that lets you create and train an autoencoder for sequential data in just two lines of code

sequitur sequitur is a library that lets you create and train an autoencoder for sequential data in just two lines of code. It implements three differ

Jonathan Shobrook 305 Dec 21, 2022
ToFFi - Toolbox for Frequency-based Fingerprinting of Brain Signals

ToFFi Toolbox This repository contains "before peer review" version of the software related to the preprint of the publication ToFFi - Toolbox for Fre

4 Aug 31, 2022
A library for researching neural networks compression and acceleration methods.

A library for researching neural networks compression and acceleration methods.

Intel Labs 100 Dec 29, 2022
TilinGNN: Learning to Tile with Self-Supervised Graph Neural Network (SIGGRAPH 2020)

TilinGNN: Learning to Tile with Self-Supervised Graph Neural Network (SIGGRAPH 2020) About The goal of our research problem is illustrated below: give

59 Dec 09, 2022
PyTorch implementation of the implicit Q-learning algorithm (IQL)

Implicit-Q-Learning (IQL) PyTorch implementation of the implicit Q-learning algorithm IQL (Paper) Currently only implemented for online learning. Offl

Sebastian Dittert 27 Dec 30, 2022