Comparative Analysis of Programming Libraries for Simulation of Optical Systems
2025 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Student thesis
Abstract [en]
Optical system simulation libraries are vital tools for designing and optimizing optical systems, enabling engineers to model light behavior, including refrac- tion, reflection, diffraction, and interference, to predict system performance and guide design decisions. This report focuses on open-source optical simulation libraries, which of- fer benefits like accessibility, transparency, and reproducibility. Specifically, it compares the Python libraries PyOptools, RayOptics, RayTracing, and TracePy in terms of features, performance, and ease of use. These libraries use different methodologies: PyOptools, RayOptics, and some RayTracing implementations rely on geometric ray tracing, while TracePy employs physical optics methods. The comparison involved simulating a lens system with standardized con- ditions using Python 3.8.13 on Google Colab, as well as testing on two laptops (ASUS TUF Gaming A15 and Asus X555UQ) to evaluate performance across environments. All libraries demonstrated robust capabilities for simulating diverse optical systems but showed notable differences. TracePy excels in handling complex systems with multiple lenses and surfaces. RayOptics offers fast performance and an extensive range of built-in components, while PyOptools stands out for its user-friendly interface and non-sequential ray-tracing capabilities. While the most suitable library depends on specific user requirements, Ray- Optics was deemed as the most complete solution, offering a well-balanced combination of usability, flexibility, and analytical depth through a broad range of tools. Nevertheless, this analysis serves as a valuable guide for selecting the right tool.
Place, publisher, year, edition, pages
2025.
Keywords [en]
Optical system simulation, programming library, PyOptools, RayOptics, RayTracing, TracePy
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:oru:diva-120750OAI: oai:DiVA.org:oru-120750DiVA, id: diva2:1954231
Subject / course
Computer Engineering
Supervisors
Examiners
2025-04-242025-04-242025-04-24Bibliographically approved