Analysis updated 2026-07-05 · repo last pushed 2026-02-10
Simulate light scattering and absorption in nanostructured optical devices like metasurfaces.
Optimize photonic crystal designs using automatic gradient computation for inverse design.
Model localized light emission inside periodic structures using Brillouin zone integration.
Simulate anisotropic and magnetic optical materials for advanced device modeling.
| facebookresearch/fmmax | krishnaik06/complete-machine-learning-2023 | krishnaik06/text-summarization-nlp-project | |
|---|---|---|---|
| Stars | 147 | 119 | 198 |
| Language | Jupyter Notebook | Jupyter Notebook | Jupyter Notebook |
| Last pushed | 2026-02-10 | 2023-09-16 | 2024-08-17 |
| Maintenance | Maintained | Dormant | Stale |
| Setup difficulty | moderate | easy | hard |
| Complexity | 4/5 | 1/5 | 4/5 |
| Audience | researcher | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Installable via pip, but requires familiarity with photonics concepts and JAX, GPU recommended for performance but not strictly required.
FMMAX is a tool from Facebook Research that simulates how light behaves when it passes through structured, layered materials, like photonic crystals, metasurfaces, or the tiny patterns found on advanced LEDs. If you are designing a nanostructured optical device and need to predict how it will scatter, transmit, or absorb light, this library computes those electromagnetic fields for you. Under the hood, it implements a technique called the Fourier modal method (FMM), which is a standard approach in computational photonics. The method works by breaking a periodic structure into flat layers, representing the light's field within each layer as a sum of Fourier components, and then stitching the layers together using a scattering matrix. This makes it relatively efficient for certain geometries compared to fully numerical solvers. The implementation is built on JAX, which means it can run on GPUs for speed and can automatically compute gradients, useful if you want to optimize a design rather than just analyze one. The project stands out for a few capabilities beyond the basics. It supports Brillouin zone integration, which lets you model localized light sources (like a single emitter or a focused beam) inside a periodic structure, rather than only uniform plane waves. It also includes advanced "vector FMM" formulations that improve simulation accuracy for tricky geometries, and it handles anisotropic and magnetic materials, broadening the range of devices you can model. The likely users are optics researchers and engineers working on things like metasurface-enhanced micro-LEDs, photonic crystal slabs, or other nanostructured optical components. The automatic differentiation support makes it particularly suited for inverse design, where you specify desired optical behavior and let an optimizer search for the structure that produces it. The project is installable via pip and released under the MIT license.
FMMAX is a Python library that simulates how light interacts with nanostructured layered materials like photonic crystals and metasurfaces, using JAX for GPU acceleration and automatic gradient computation for design optimization.
Mainly Jupyter Notebook. The stack also includes Python, JAX, Jupyter Notebook.
Maintained — commit in last 6 months (last push 2026-02-10).
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.