Skip to content

Repository files navigation

Mini Optics & Photonics

A collection of from-scratch, zero-dependency C implementations of university-level optics and photonics theory. Each module maps to MIT, Stanford, and other top-tier university courses, bridging theory and practice by translating textbook equations into runnable C code.

Sub-Modules

Sub-Module Topics Key Courses
mini-fiber-optics Optical fiber waveguides, numerical aperture, V-parameter, attenuation (Rayleigh / IR absorption), modal dispersion, fiber Bragg gratings, EDFA amplifiers, nonlinear Kerr / SPM / XPM effects, pulse propagation MIT 8.07, Stanford EE247
mini-geometrical-optics Ray optics (Snell / Fresnel / TIR / Brewster), thin-lens equation, lensmaker formula, ABCD ray-transfer matrices, paraxial ray tracing, aperture / stop analysis, Seidel aberrations MIT 8.07, Hecht
mini-laser-physics Einstein A/B coefficients, population inversion, 3-level & 4-level rate equations, Schawlow-Townes threshold, optical cavities (stable / marginal / unstable), Gaussian TEM₀₀ beams, ABCD beam propagation, Maxwell-Bloch semi-classical dynamics MIT 8.07, Stanford PHYSICS 430
mini-nanophotonics Surface plasmon polaritons (SPP), Mie scattering (core-shell / Rayleigh), 1D/2D photonic crystal band structures, cavity QED (Purcell factor, Jaynes-Cummings, strong coupling), metamaterials (Maxwell-Garnett, NRW retrieval), FDTD (2D TMz), near-field optics, transfer-matrix multilayers MIT 8.07, Stanford EE236A, Berkeley EE290F
mini-nonlinear-optics χ⁽²⁾ processes (SHG, SFG, DFG, OPO), phase matching (birefringent / quasi-phase-matching), χ⁽³⁾ effects (self-phase modulation, cross-phase modulation, four-wave mixing), nonlinear Schrödinger equation (NLSE), Raman / Brillouin scattering, nonlinear crystal materials MIT 8.07, Stanford EE236C
mini-optical-instrument Optical path length, Fermat principle, interferometry (Fabry-Perot, Michelson, Mach-Zehnder, Sagnac), polarimetry (Jones / Mueller / Stokes), spectroscopy (grating / prism / Fourier-transform), thin-film anti-reflection / high-reflection coatings, radiometry / photometry MIT 8.07, Stanford PHYSICS 230
mini-quantum-optics Fock (number) states, coherent states, squeezed states, density matrix formalism, Wigner quasi-probability function, Jaynes-Cummings model, photon statistics (g⁽²⁾, Mandel Q), cavity QED, beam-splitter transformations, quantum Langevin equations MIT 8.422, Stanford AP387
mini-wave-optics Scalar wave equation, plane / spherical / Gaussian / evanescent waves, superposition & interference (Young, Newton rings, multi-beam), Fraunhofer & Fresnel diffraction (single-slit, circular aperture, grating), polarization (Jones 2×1, Stokes 4-vector, Mueller 4×4, Poincaré sphere), temporal & spatial coherence, Fourier optics (2D FFT propagation, 4f system) MIT 8.07, Stanford EE236A

Design Philosophy

  • Zero external dependencies — pure C (C99/C11), only libc and libm
  • Self-contained modules — each directory has its own Makefile, include/, src/, examples/, demos/, tests/
  • Theory-to-code mapping — every module includes docs/ with course-alignment notes and textbook references
  • Hands-on demos — fiber link simulators, ray tracers, laser cavity designers, SPP dispersion plotters, interferogram generators, QO state evolution, diffraction pattern calculators, and more

Building

Each module is standalone. Navigate to a module directory and run:

cd mini-fiber-optics
make all    # build everything
make test   # run tests

Requires GCC and GNU Make.

Project Structure

mini-optics-photonics/
├── mini-fiber-optics/          # Optical Fiber Waveguides & Communication
├── mini-geometrical-optics/    # Ray Optics, Lenses & Lens Systems
├── mini-laser-physics/         # Laser Gain Media, Cavities & Dynamics
├── mini-nanophotonics/         # Plasmonics, Photonic Crystals & Metamaterials
├── mini-nonlinear-optics/      # χ⁽²⁾ & χ⁽³⁾ Nonlinear Optical Processes
├── mini-optical-instrument/    # Interferometry, Spectroscopy & Polarimetry
├── mini-quantum-optics/        # Quantum States of Light & Cavity QED
└── mini-wave-optics/           # Interference, Diffraction, Polarization & Coherence

License

MIT

About

Optics and photonics built from scratch, learn ray & wave optics, lasers, nonlinear & quantum optics via C coding

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages