Skip to Content
DocsSVETlANNa

SVETlANNa

SVETlANNa (Simulating Various Elements of Tunable LAser Neural Networks Accurately) is a PyTorch-based library for simulating optical systems and diffractive neural networks.

Version 2.0.2 — fully differentiable simulation, GPU acceleration, and native integration with the PyTorch ecosystem.

Features

FeatureDescription
Differentiable simulationFull PyTorch autograd integration for optimisation
Propagation methodsAngular spectrum (ASM) and Rayleigh–Sommerfeld convolution (RSC), each with a zero-padded variant
Optical elementsLenses, apertures, SLMs, diffractive layers, nonlinear elements
WavefrontsPlane, Gaussian, spherical and Hermite–Gaussian fields
Neural networksLinearOpticalSetup, DiffractiveRNN, ConvDiffNetwork4F, LinearAutoencoder
DetectorsDetector and DetectorProcessorClf for classification
GPU accelerationNative CUDA support

Quickstart

from svetlanna import SimulationParameters, Wavefront, LinearOpticalSetup from svetlanna.elements import ThinLens, FreeSpace from svetlanna.units import ureg # simulation parameters params = SimulationParameters.from_ranges( x_range=(-1*ureg.mm, 1*ureg.mm), x_points=512, y_range=(-1*ureg.mm, 1*ureg.mm), y_points=512, wavelength=632.8*ureg.nm ) # a Gaussian beam wf = Wavefront.gaussian_beam(params, waist_radius=0.3*ureg.mm) # an optical system setup = LinearOpticalSetup([ ThinLens(params, focal_length=50*ureg.mm), FreeSpace(params, distance=50*ureg.mm, method='zpASM'), ]) # focusing wf_focus = setup(wf) print(f"Intensity in the focus: {wf_focus.max_intensity:.2e}")

Documentation map

Architecture