Web-based antenna simulator powered by NEC2. Design, simulate, and analyze antennas with real-time 3D visualization, radiation patterns, SWR, and impedance charts.
  • TypeScript 86.5%
  • Python 12.5%
  • Dockerfile 0.3%
  • Shell 0.2%
  • CSS 0.2%
  • Other 0.2%
Find a file
Vlad a7347e8ddc
fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67)
* 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
2026-06-01 17:29:07 +02:00
.github/workflows chore: set up Vitest testing infrastructure with 230 tests, bump to 0.8.0 (#37) 2026-03-05 18:27:17 +01:00
backend fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
deploy/allinone feat: add Docker Hub publishing and all-in-one image (#11) 2026-03-01 19:05:11 +01:00
docs fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
frontend fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
nginx fix: Docker production stack — nginx startup, CORS, build pipeline 2026-02-27 11:57:42 +01:00
screenshots docs: added screenshots to README.md 2026-02-27 12:32:35 +01:00
scripts chore: rename AntSim to AntennaSim, bump to v0.4.0, centralize version (#10) 2026-03-01 18:37:23 +01:00
wasm feat: add WebAssembly engine for serverless deployment (#19) 2026-03-03 11:55:42 +01:00
.dockerignore chore: add changelog, upgrade all dependencies, bump to 0.7.7 (#35) 2026-03-05 12:00:41 +01:00
.env.example feat: add WebAssembly engine for serverless deployment (#19) 2026-03-03 11:55:42 +01:00
.gitignore feat: add WebAssembly engine for serverless deployment (#19) 2026-03-03 11:55:42 +01:00
.gitmodules feat: add WebAssembly engine for serverless deployment (#19) 2026-03-03 11:55:42 +01:00
CHANGELOG.md fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
CONTRIBUTING.md fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
docker-compose.dev.yml chore: rename AntSim to AntennaSim, bump to v0.4.0, centralize version (#10) 2026-03-01 18:37:23 +01:00
docker-compose.yml fix: make rate limiting opt-in and configurable via environment variables (#12) 2026-03-01 19:37:34 +01:00
Dockerfile feat: add Docker Hub publishing and all-in-one image (#11) 2026-03-01 19:05:11 +01:00
LICENSE chore: rename AntSim to AntennaSim, bump to v0.4.0, centralize version (#10) 2026-03-01 18:37:23 +01:00
README.md fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00
VERSION fix: correct simulate API docs, reject unknown request fields, and overhaul docs (#67) 2026-06-01 17:29:07 +02:00

AntennaSim

Free, open-source antenna simulator for the browser -- powered by NEC2

GitHub stars Docker pulls Pages deploy Version License NEC2 WebAssembly

Launch the live demo

...or self-host in one line: docker run -p 80:80 ea1fuo/antennasim


AntennaSim -- Simulator with 3D radiation pattern

AntennaSim -- Wire editor with 3D viewport


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

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, nec2c execution, 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 .s1p overlay
  • Wire editor -- build arbitrary geometries, import/export .nec and .maa files
  • 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