Skip to content

Quickstart

antennaknobs and its engine momwire are published to PyPI with prebuilt wheels — a plain install needs no compiler:

Terminal window
python3 -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install "antennaknobs[web]"
Terminal window
uvicorn antennaknobs.web.server:app # then open http://127.0.0.1:8000

Pick a design from the dropdown and drag its knobs — the pattern, SWR, and impedance re-solve live.

Every design is an AntennaBuilder. Wrap one in an Antenna and ask for its feed-point impedance:

from antennaknobs import Antenna
from antennaknobs.designs.dipoles.invvee import Builder
ant = Antenna(Builder()) # an inverted-vee dipole, default parameters
print(ant.impedance()) # -> [(48.6-8.8j)] ohms, one entry per feed port

Tune a knob and re-solve — parameters are plain attributes:

b = Builder()
b.length_factor = 1.0 # stretch the arms
print(Antenna(b).impedance())

Antenna also gives you the far-field pattern, a frequency sweep of the impedance, and the current distribution:

ant.far_field() # full-sphere far-field rings
ant.impedance_sweep(...) # impedance across a frequency range

By default Antenna uses a finite ground; pass ground="free" (or a ("finite", eps_r, sigma) tuple) to change it.