- TypeScript 86.5%
- Python 12.5%
- Dockerfile 0.3%
- Shell 0.2%
- CSS 0.2%
- Other 0.2%
* fix: correct README simulate schema and reject unknown request fields The README API reference documented the simulate body with keys the API does not accept — ground.type (vs ground_type) and excitations[].real/.imag (vs voltage_real/voltage_imag) — so the documented payload silently fell back to defaults. Corrected the example to match the API. Also add a StrictModel base (extra="forbid") for the simulate request models so an unknown or misspelled key now returns a 422 validation error instead of being silently ignored and replaced by a default. Closes #61 * docs: split README into docs/ guides Trim the 660-line README to a quick-start front page and move the detailed content into a new docs/ folder: usage (templates, features, shortcuts), development (setup, architecture, structure, stack), deployment (Pages/WASM and production), and api (endpoints + configuration). Add a docs/ index page and cross-page nav so the guides stay one click away, and point the README's Contributing section at the existing CONTRIBUTING.md. * docs: refresh README landing with live badges, value-prop hook, and demo CTA Swap the static shields for live GitHub stars, Docker pulls, and Pages deploy-status badges; add a short value-prop hook (free / no install / runs on your phone, vs the classic desktop tools); turn the demo link into a prominent button; and surface mobile support in the highlights. * chore: bump version to 1.2.2 |
||
|---|---|---|
| .github/workflows | ||
| backend | ||
| deploy/allinone | ||
| docs | ||
| frontend | ||
| nginx | ||
| screenshots | ||
| scripts | ||
| wasm | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| docker-compose.dev.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
AntennaSim
Free, open-source antenna simulator for the browser -- powered by NEC2
...or self-host in one line: docker run -p 80:80 ea1fuo/antennasim
17 antenna templates · 3D radiation patterns · SWR & Smith charts · Wire editor + optimizer · NanoVNA overlay · Dark / light theme
Antenna modeling without the install. No license fee, no Windows-only desktop app, no account -- open a browser (or your phone) and start designing. Powered by the same NEC2 engine the classic tools (EZNEC, 4nec2, MMANA-GAL) are built on.
Design antennas from built-in templates or build your own from scratch in the wire editor. Run NEC2 simulations and instantly visualize SWR, impedance, Smith chart, 3D radiation patterns, current distribution, and near-field heatmaps -- all in your browser.
Two deployment modes: self-hosted with Docker (backend + Redis) or fully static via WebAssembly on GitHub Pages -- zero server required.
Quick Start
Prerequisites
- Docker and Docker Compose (v2+)
- That's it. No Python, Node.js, or nec2c installation needed.
One-liner (Docker Hub)
docker run -p 80:80 ea1fuo/antennasim
Open http://localhost in your browser. Done. This pulls the all-in-one image from Docker Hub with everything bundled (frontend, backend, Redis, nginx).
From source
git clone https://github.com/EA1FUO/AntennaSim.git
cd AntennaSim
cp .env.example .env
docker compose up --build
The first build takes a few minutes (downloading base images, compiling nec2c, installing dependencies). Subsequent starts are fast.
Prefer to run it without a server? AntennaSim also runs fully in the browser via WebAssembly -- see the Deployment guide.
Documentation
Full guides live in the docs/ folder:
| Guide | What's inside |
|---|---|
| Usage | Antenna templates, full feature list, keyboard shortcuts |
| Development | Dev setup, local WASM build, architecture, project structure, tech stack |
| Deployment | GitHub Pages (WebAssembly) and production Docker deployment |
| API Reference | REST + WebSocket endpoints and configuration (.env) |
Highlights
- 17 antenna templates -- dipoles, verticals, loops, Yagi/Moxon/Hex beams, LPDA, magnetic loop, and more (full list)
- Full NEC2 pipeline -- card deck generation,
nec2cexecution, and parsed results, all automated - Interactive 3D viewport -- radiation patterns, current distribution with animated flow, near-field heatmaps
- Charts & analysis -- SWR, impedance, Smith chart, polar pattern, balun/unun matching, NanoVNA
.s1poverlay - Wire editor -- build arbitrary geometries, import/export
.necand.maafiles - Optimizer -- Nelder-Mead with 5 objective functions and real-time progress
- Runs anywhere -- desktop, tablet, or phone; touch-friendly controls and a responsive layout, no install or account
See the Usage guide for the complete feature list.
Contributing
Contributions are welcome -- this is a free and open-source project for the amateur radio community. See CONTRIBUTING.md for setup, branch/commit conventions, and how to add an antenna template.
Found a bug or have an idea? Open an issue or a discussion.
License
AntennaSim is free software released under the GNU General Public License v3.0.
You are free to use, modify, and distribute this software. If you distribute modified versions, they must also be released under the GPL-3.0. See LICENSE for the full text.
Acknowledgments
- NEC2 -- the Numerical Electromagnetics Code developed at Lawrence Livermore National Laboratory. The foundation of antenna simulation for decades.
- nec2c -- the C translation of NEC2 by Neoklis Kyriazis (5B4AZ), making NEC2 accessible on modern systems.
- The amateur radio community -- for decades of antenna design knowledge, experimentation, and sharing.
Built for amateur radio operators, by amateur radio operators.
73 de AntennaSim