A 3D FDTD framework for simulating and optimizing radar stealth. Given a parametric target (shape + radar-absorbing material layers) and a monostatic tracking-radar scenario (cone of aspect angles, frequency band), it runs a gradient-free optimizer (CMA-ES) to minimize radar cross-section (RCS).
Meep has no PyPI wheels, so it must be installed via your system package manager or built from source.
Ubuntu / Debian:
sudo apt update
sudo apt install meep python3-meep libmeep-devIf your distro doesn't ship Meep, follow the upstream Build From Source instructions.
uv venv --system-site-packages
uv sync --extra devThe --system-site-packages flag exposes the system meep module inside the uv venv. Everything else (numpy, scipy, nevergrad, etc.) is pinned and isolated via uv.lock.
uv run python scripts/check_env.pyThis should print the Meep version and confirm all dependencies are importable. If you see "meep not found", revisit step 1 — the --system-site-packages flag is almost always the issue.
uv run pytest tests/test_rcs_sphere.py -vPEC sphere FDTD RCS should match the analytic Mie series within 1 dB across size parameters ka ∈ [0.5, 5].
src/stealth_opt/ — library code (geometry, materials, simulation, rcs, optimize)
configs/ — YAML scenario configs (default.yaml, validation_sphere.yaml, …)
examples/ — standalone runnable scripts (validation, demos)
tests/ — pytest suite (validation + unit tests)
scripts/ — CLI entry points (run_optimization.py, check_env.py)
TODO.md — live milestone checklist
See TODO.md for the current milestone checklist. The planning document lives at /home/ben/.claude/plans/quirky-baking-puppy.md.
- Memory: 3D FDTD scales as
(domain_vol / resolution³). The default 10 cm / X-band / 10-cells-per-λ config uses ~1–2 GB. Scale up cautiously. - MPI: Parallel Meep requires
python3-meepbuilt against MPI. Checkuv run python scripts/check_env.pyoutput. - Python version matching:
apt install python3-meeptargets your distro's system Python. Ifuv venvpicks a different interpreter,import meepwill fail. Force uv to use the system interpreter:uv venv --python /usr/bin/python3 --system-site-packages.