Changelog

All notable changes to L-SURF will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.2.0] - 2024-12-28

Added

  • Complete package restructuring as L-SURF (Light Surface Reflections)

  • Modular architecture with separate core, materials, sources, surfaces, detectors modules

  • Comprehensive visualization module with reusable plotting functions

  • Full Sphinx documentation with user guide, API reference, and examples

  • Conda packaging support with meta.yaml recipe

  • pyproject.toml for modern Python packaging

  • Type hints throughout codebase (PEP 561 compliant)

  • 8 example applications demonstrating key features

  • 123 unit tests with pytest

  • CI/CD configuration placeholders

Changed

  • Package renamed from surface_reflections to lsurf

  • Import syntax: import lsurf as sr

  • Refactored examples to use visualization module functions

  • Updated all documentation to use L-SURF branding

  • Environment name changed to lsurf

Fixed

  • Planar surface support in plot_ray_paths_with_surface

  • Module imports in test suite

  • Package discovery in setuptools configuration

[0.1.0] - 2024-12-01

Initial development release.

Added

  • GPU-accelerated ray tracing core

  • Fresnel reflection and refraction

  • Multiple surface types: planar, spherical, Gerstner waves

  • Curved Earth geometry for large-scale simulations

  • Ray sources: point, collimated, diverging, Gaussian

  • Spherical, planar, and directional detectors

  • Material definitions with dispersion models

  • Multi-bounce ray tracing with intensity splitting

  • Time-of-flight tracking

  • Polarization support (s and p components)

  • HDF5 data saving for large simulations

  • Basic visualization functions