Features

What Fairbeam does

Feature overview: modeling, simulation, exports, example projects and their simulated results.

Feature overview

  • Ribbon-based designer

    A one-row ribbon, a collapsible navigation tree, properties and dock, and a Python side panel. Bricks, cylinders, spheres, cones, tori, wires, polygons and extrusions; draw bricks in 3D, extrude a picked face, booleans, one Transform dialog, shortcuts, Undo, Redo and Save As.

  • Import a VBA macro

    Imports supported commands from CST-compatible VBA macros and history lists, with a report of unsupported or changed operations. Review the report and imported model before running.

  • Parameters and checks

    Dimensions and frequencies can use named parameters. Live checks explain detected problems and block known invalid setups, including designs without an excited port. Convergence still needs to be checked after running.

  • Start templates and examples

    Start from a half-wave dipole, a quarter-wave monopole, an open-ended waveguide, a printed sleeve dipole or a two-port microstrip line, or pick an example from a searchable list, which now includes a 2-element collinear and a 5-element Yagi for 867 MHz.

  • Import PCB artwork

    Home › Import PCB turns DXF, Gerber and Excellon files into a design; fairbeam import-pcb does the same from the command line.

  • Automatic meshing

    Auto mode picks the mesh settings for each design, and every field can be overridden. Thin PCB copper is meshed as sheets, and converted examples keep their own mesh lines. In the dipole and patch checks below, resonance differs from converged hand-tuned meshes by about 0.1% or less.

  • Mesh convergence

    Mesh convergence studies refine automatic meshes and compare resonance, |S11| and Dmax against tolerances, stopping at convergence or the configured run limit. Also available through fairbeam converge.

  • Run quality and one-click fixes

    Run-quality warnings and one-click fixes flag common problems. With calibrated waveguide-port power, the horn example has about 99.3% raw radiation efficiency at 10 GHz; its lossless-normalized result is 100%.

  • Parameter sweeps

    Queue checked sweep sequences over up to six parameters and compare selected runs, up to eight at a time, in one plot.

  • Goal-driven optimizer

    Goals such as f0, |S11| at a frequency, bandwidth, Dmax or |Sij| limits, over as many parameters as you vary. Secant, Nelder–Mead, Bayesian, CMA-ES, particle swarm, genetic and trust-region searches, with live progress; the best result is kept to open, apply or save.

  • Multi-port S-parameters

    One openEMS run per driven port gives the full S-matrix of filters, dividers, couplers and arrays, with reciprocity and passivity checks, a picker for any Sij, a Smith chart per port and Touchstone .sNp export.

  • Results with markers

    Result tabs: S-parameters, impedance, VSWR, Smith chart, efficiency and patterns, with markers for resonances and bandwidth, hover read-outs and your own markers. Runs are compared by the parameters that differ; Copy data and CSV in dB, phase, Re/Im or magnitude/phase.

  • Result summaries and comparison

    Headline numbers for each run in the tree and the Runs table, and Tables › Summary. A comparison table lists the parameters that differ between runs; copy it or save it as CSV.

  • 2D and 3D field maps

    The Field map tab shows E and H planes as heat maps with a read-out and the model's outline. Phase and Animate play a time-harmonic animation of the field, in 2D and in the 3D view.

  • Far field, currents, beams

    View directivity, gain, realized gain, polarization, currents and steered array patterns. Optional radiation and total efficiency curves are computed after the solver finishes; additional post-processing time depends on the model and frequency count.

  • GPU engines

    Optional openEMS GPU builds support Metal on Apple silicon and CUDA on NVIDIA GPUs under Windows. Documented patch solver times were 1.6 s versus 10.6 s on an M5 Pro and 2.6 s versus 52.9 s on a Ryzen 9 7900X with RTX 3060, using the recorded runtimes. GPU startup preference can be changed; CPU remains available.

  • VBA macro, drawings, fabrication

    Export a CST-compatible VBA macro for supported geometry and settings; check the reconstructed model in the target program. Export Touchstone, CSV, drawings, figures, a PDF report and preview fabrication files.

  • Desktop app

    For macOS and Windows, in English or Turkish (General settings › Language, native menus included, with a Decimal separator setting), with Save As, and a question before closing unsaved work. First start installs Python and openEMS for your user account; projects live in Documents/Fairbeam, and updates are offered in the app.

Example projects

19 simulated projects come with the app and are listed in the browser demo. Six of them:

Pyramidal horn, WR-90
An optimum-gain horn fed by a TE10 waveguide port, with PML boundaries: 15.5 dBi at 10 GHz and |S11| below −16 dB from 8 to 12 GHz.
Axial-mode helix
A Kraus helix, seven turns at 13° pitch over a square ground plane: right-hand circular, 11.6 dBi at 2.4 GHz, an axial ratio of 0.9 dB on boresight and the cross-polarized LHCP 26 dB lower.
Minkowski fractal patch
The fractal edge lengthens the current path: 30 × 30 mm of copper resonates at 2.324 GHz, below the 32 × 40 mm plain patch at 2.453 GHz on the same substrate, at the price of bandwidth (0.8 %).
Wilkinson divider
Three ports and one lumped 100 Ω resistor: an equal split with S21 = S31 = −3.09 dB. One openEMS run per driven port gives the full S-matrix.
Branch-line coupler
A 90° hybrid: −3.21 and −2.99 dB to the two outputs at 2.40 GHz, 90.0° apart, with the reciprocity and passivity of the four-port matrix checked.
Stepped-impedance low-pass
Alternating wide and narrow line sections: the −3 dB point lands at 2.356 GHz, 5.2 % below the ideal line cascade, because the steps themselves add capacitance.

Open all 19 examples in the demo

The files, as they come out

A3 technical drawing of the rectangular patch antenna: top, front, side and isometric views with dimensions, a parameter table and a title block.
A3 drawing generated from the simulated geometry
Black-and-white publication chart of the patch antenna's |S11| in dB against frequency, with a dip near 2.45 GHz.
|S11| as a publication figure (8.8 cm)
Black-and-white publication chart of the Wilkinson divider's transmission: S21 and S31 near −3 dB and the isolation S23 against frequency.
Multi-port S-parameters, Wilkinson divider

Simulation results and recorded solver times

Black-and-white polar chart of the patch antenna's directivity at 2.453 GHz in the xz and yz planes, with a broadside maximum of 6.79 dBi.
Directivity of the patch at 2.453 GHz in both principal planes, as exported for a paper (8.8 cm column width).

Validation

Against analytical results
CheckFairbeamReference
Dipole Dmax2.13–2.15 dBi2.11 dBi (theory)
Patch resonance2.455 GHz2.513 GHz (TL model), −2.3 %

Dipole: three lengths, 50 to 66 mm, end criterion −60 dB. Patch: converged mesh, against a transmission-line model. Details and commands in the validation notes of the repository.

Solver time in seconds

Apple M5 Pro: CPU engine with 4 threads and the optional Metal GPU engine. AMD Ryzen 9 7900X under Windows: CPU engine with 4 and all 24 threads, and the optional CUDA GPU engine on an NVIDIA RTX 3060
ModelCellsApple M5 ProRyzen 9 7900X
CPUGPU4 threads24 threadsCUDA
Patch antenna, −60 dB0.26 M10.61.652.949.92.6
4 × 1 patch array (4 runs)0.43 M–14.287468625.1
Sierpinski monopole2.0 M12.02.761.165.73.4

For the documented same-timestep Windows CPU / macOS Metal comparisons, S-parameter magnitudes above −30 dB agree within 0.1 dB and Dmax within 0.004 dB. Other comparisons have different bounds; see the benchmark notes. The optional GPU engine is a separate beta fork of openEMS.

Circuits and arrays

Multi-port models on 0.813 mm, εr 3.38, GPU engine
CheckFairbeamReference
Microstrip line Z048.3 Ω50.0 Ω (Hammerstad)
Wilkinson split S21 = S31−3.09 dB−3.01 dB (ideal)
Branch-line S21 / S31−3.21 / −2.99 dB−3.01 dB each
Low-pass −3 dB point2.356 GHz2.485 GHz (ideal)
4×1 array S11 / S22−23.5 / −17.0 dB4 GPU runs

For the recorded 100 Ω Wilkinson example, output match and isolation are −18.4 and −22.0 dB. Resistor checks agree within 0.1% in their tested range; the divider discrepancy remains unresolved. The documented branch-line output phase difference is 90.0° at 2.40 GHz, and the low-pass cutoff is 5.2% below the ideal-line model.

Optimizer

Simulated examples from fairbeam optimize
TaskResultCost
Dipole to f0 = 2.40 GHz2.4000 GHz2 evaluations
Wilkinson: all ports ≤ −20 dB, S23 ≤ −25 dB82 Ω3 evaluations
Wilkinson: S23 ≤ −35 dB73 Ω4 evaluations

The isolation resistor went from the textbook 100 Ω to 73 Ω in the documented optimization; with all ports driven, 73 Ω gives S23 = −39.9 dB and every port matched below −24 dB.

Automatic mesh

Resonance with auto_mesh() against converged hand-tuned meshes
ModelAutomaticConverged
Dipole2.4182 GHz2.4198 GHz, −0.07 %
Patch antenna2.4525 GHz2.4550 GHz, −0.10 %

What to expect

Development preview
The designer, the solver pipeline and the results work end to end. The file formats are versioned (fairbeam.design/1 for designs, fairbeam.project/1 for results); breaking changes bump the version.
VBA macro export not yet validated
The exported CST-compatible VBA macro and the macro import are not validated for every command or physical port formulation; the macro import reports the commands that it skips or changes. Check an exported model in the target program before relying on it.
Fabrication files not yet validated
Selected fabrication fixtures are parsed back and checked against their geometry to 1 µm. These preview exports are not fab-validated. Check each export in an independent viewer and review clearances, footprints and fabrication tolerances before ordering.
Wilkinson output match: open question
The 100 Ω Wilkinson example has output match and isolation below the analytical expectation. Tested resistor fixtures agree within 0.1%; the remaining layout and mesh discrepancy needs further investigation.
Windows installer not code-signed, macOS 27+
The managed macOS solver requires macOS 27+ on Apple silicon. Windows installers are not code-signed and may trigger SmartScreen. Linux currently uses a source setup with compatible openEMS and CSXCAD versions; see the tested configuration and limits. The macOS app is signed with a Developer ID and notarized by Apple.
Licenses
Fairbeam is GPL-3.0-or-later; openEMS is GPL-3.0-or-later and CSXCAD LGPL-3.0-or-later. The source code is on GitHub: ismailakdag/fairbeam (opens in a new tab). Project files are plain data produced by your own models.

Planned and finished work is on the roadmap.