Skip to main content

antenna-cad

Compile antenna and phased-array design intent into simulation-ready KiCad PCB layouts.

antenna-cad is a Python design compiler for printed antennas. You describe requirements (frequency, substrate, polarization, gain); it synthesizes geometry, writes a DRC-checkable .kicad_pcb, simulates the layout with openEMS, and reports predicted performance against the requirements. Every step is deterministic and runs headlessly, with no KiCad GUI and no LLM in the loop. Agents can drive the same typed API, but nothing depends on one.

Status

Pre-alpha; the closed loop works end to end for single patches and corporate-fed arrays. From a spec file, the toolchain synthesizes the geometry (patch dimensions, T-junction feed tree with quarter-wave transformers and phase-compensated mirrored rows), emits a KiCad board that passes DRC with zero violations, and verifies it with openEMS FDTD. The 2x2 example, after simulation-feedback tuning (--tune): resonance 10.12 GHz against a 10 GHz target, S11 -14.8 dB, directivity 12.8 dBi, a single broadside beam. Lattice positions interoperate with phased-array-modeling; an MCP server exposes the pipeline to agents. APIs are unstable.

uv run antenna-cad report examples/array_2x2_10ghz/spec.yaml -o build/array_2x2 --tune

Design principles

  • Compiler, not file generator. The source of truth is a typed internal representation of the design — geometry, stackup, nets, ports, constraints, units. KiCad, Gerber, and solver files are build artifacts compiled from it.
  • Deterministic core. The same spec produces the same board, byte for byte. Verification runs through real engines: KiCad DRC (kicad-cli) and full-wave FDTD (openEMS).
  • Physical quantities carry units (via pint). 10 GHz and 8.42 mm are values in the API; bare floats cross into backends only at explicit conversion boundaries.
  • Narrow scope by design. This targets the structures printed antennas need (patches, microstrip lines, impedance transformers, feed trees, ground pours, via fences) rather than general PCB autorouting or schematic capture.

Install

Not yet published. From a checkout:

uv sync --all-extras --group dev

KiCad 10 provides DRC and manufacturing export (brew install kicad on macOS). openEMS setup is documented in docs/ once the solver backend lands.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

antenna_cad-0.1.0.tar.gz (237.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

antenna_cad-0.1.0-py3-none-any.whl (65.3 kB view details)

Uploaded Python 3

File details

Details for the file antenna_cad-0.1.0.tar.gz.

File metadata

  • Download URL: antenna_cad-0.1.0.tar.gz
  • Upload date:
  • Size: 237.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for antenna_cad-0.1.0.tar.gz
Algorithm Hash digest
SHA256 23a4c767e74c27e7ac904e8a668c2a39a30c2c4746f5d01ea02679e96db1b3c9
MD5 5916fcd0e02f881082cbf0e2fc6d799b
BLAKE2b-256 193309c9487bbb29ef4e57ccaab7bed2b5b92bf9e0474a9f1a601a6f094beed3

See more details on using hashes here.

Provenance

The following attestation bundles were made for antenna_cad-0.1.0.tar.gz:

Publisher: release.yml on jman4162/antenna-cad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file antenna_cad-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: antenna_cad-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 65.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for antenna_cad-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d340fad52792b3f15e0417dbea320a3424276e5bcb6fc9335e6088607ea20f5
MD5 60ee958603f306b0ad8c3e69815083ee
BLAKE2b-256 2378ef49aea627020930196c80f170b35986e01fddd1c74041c98edcd7a344e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for antenna_cad-0.1.0-py3-none-any.whl:

Publisher: release.yml on jman4162/antenna-cad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page