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-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 |
- Zero external dependencies — pure C (C99/C11), only
libcandlibm - 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
Each module is standalone. Navigate to a module directory and run:
cd mini-fiber-optics
make all # build everything
make test # run testsRequires GCC and GNU Make.
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
MIT