StructuredLight
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: marcsgil
- License: mit
- Language: Julia
- Default Branch: master
- Size: 21.9 MB
Statistics
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 14
Metadata Files
README.md
StructuredLight.jl
A comprehensive Julia package for simulating, manipulating, and visualizing spatially structured light beams. StructuredLight.jl provides efficient tools for paraxial beam propagation, including specialized functions for generating structured modes, simulating optical elements, and creating computer-generated holograms for spatial light modulators.
Features
- Beam Profiles: Generate Laguerre-Gauss and Hermite-Gauss modes, diagonal Hermite-Gauss modes, and various aperture shapes
- Free Space Propagation: Simulate beam propagation using fast Fourier transforms
- Nonlinear Propagation: Kerr effect simulation for nonlinear media
- Computer-Generated Holograms: Create phase patterns for spatial light modulators with multiple algorithms
- Phase Modulation: Apply lenses, tilted lenses, and aberration correction using Zernike polynomials
- Linear Combinations: Efficiently compute superpositions of structured modes
- GPU Acceleration: Full CUDA support for high-performance computations
- Visualization: Comprehensive plotting tools via Makie.jl extension
Installation
julia
using Pkg
Pkg.add("StructuredLight")
Quick Start
```julia using StructuredLight
Create a spatial grid
rs = LinRange(-5, 5, 256)
Generate fundamental Gaussian mode
E0 = lg(rs, rs)
Visualize the beam intensity
visualize(abs2.(E0))
Propagate through free space
Epropagated = freepropagation(E0, rs, rs, 1.0) ```
Advanced Examples
GPU Acceleration
```julia using CUDA
Transfer to GPU for faster computation
E0gpu = lg(rs, rs) |> cu Epropagated = freepropagation(E0gpu, rs, rs, 1.0) ```
Computer-Generated Holograms
```julia
Create a hologram for an SLM
targetfield = lg(rs, rs, p=1, l=2) # LG mode hologram = generatehologram(target_field, 255, 20, 20) ```
Compatibility
- Julia: 1.10 - 1.12
- GPU Support: CUDA.jl for NVIDIA GPUs
- Visualization: Makie.jl ecosystem
- Documentation: Full documentation available
Related Packages
- SpatialLightModulator.jl: Interface with physical SLM devices
Owner
- Login: marcsgil
- Kind: user
- Repositories: 2
- Profile: https://github.com/marcsgil
Citation (CITATION.cff)
cff-version: 1.2.0
title: StructuredLight.jl
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Marcos
family-names: Oliveira
email: marcosgildeoliveira@gmail.com
affiliation: UFF
orcid: 'https://orcid.org/0009-0006-4225-8706'
identifiers:
- type: url
value: 'https://github.com/marcsgil/StructuredLight.jl'
description: GitHub Repository
GitHub Events
Total
- Create event: 7
- Commit comment event: 6
- Release event: 3
- Watch event: 1
- Delete event: 6
- Issue comment event: 4
- Push event: 17
- Pull request review event: 1
- Pull request event: 6
Last Year
- Create event: 7
- Commit comment event: 6
- Release event: 3
- Watch event: 1
- Delete event: 6
- Issue comment event: 4
- Push event: 17
- Pull request review event: 1
- Pull request event: 6
Packages
- Total packages: 1
-
Total downloads:
- julia 2 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 13
juliahub.com: StructuredLight
- Documentation: https://docs.juliahub.com/General/StructuredLight/stable/
- License: MIT
-
Latest release: 0.7.1
published 9 months ago