In short
- Off unless you agree. On first start, the app asks once. Until you answer, nothing is counted.
- Anonymous counts. Only numbers such as “3 simulations on the CPU”, with a random id that is created on your computer. The id is not linked to your name, e-mail, account or hardware, and you can reset it.
- Once a day. At most one small message a day, holding the counts of a whole previous day.
- You can check it. Settings › General › Usage statistics › View what would be sent shows the exact message.
- The legal basis is your consent (KVKK art. 5(1), GDPR art. 6(1)(a)). You can withdraw it at any time, and withdrawing it deletes the counts not sent yet.
What is sent
One message per day of use, with these fields and nothing else:
| Field | Example | Meaning |
|---|---|---|
install_id | 1b4e28ba-… | a random id, created on your computer, resettable |
app_version | 0.7.0 | the Fairbeam version |
os, arch | macos, aarch64 | operating system and processor type |
gpu_available | false | whether the openEMS build in use has the GPU engine |
day | 2026-09-27 | the day (UTC) the counts are for |
counters | {"app.start": 2} | whole numbers under fixed names, listed below |
The counters, per day:
- App: starts, a new install, an update (and the version it came from).
- Simulations: started, finished, failed and canceled. They are grouped by engine (CPU or GPU) and by kind of model (your design, a bundled example or a Python model). Finished runs also count a duration range (under 10 s, 10–60 s, 1–10 min, over 10 min) and a size range (under 100 000, up to 1 million, over 1 million cells). For a failure, only a category code is counted, for example
solver,memoryormesh-cells, never the message. - Monitors used in a run: far field, surface current, efficiency, field planes.
- Sweeps, with a range of their number of points; optimizer runs, with the method.
- Features: VBA macro import, VBA macro export, Touchstone export, PDF report.
What is never sent
File names, design contents, model names, parameter names or values, folder paths, error messages, your e-mail, your user or computer name, and your IP address are never sent. The server refuses any message that has a field or a counter name not on the lists above.
Where it goes
The app sends the message over HTTPS to fairbeam.org/api/ping, a function on this website (hosted by Vercel). There:
- the random id is replaced by a keyed hash, so even the stored data does not contain it;
- the counts are appended to a daily file in a private GitHub repository that only the developer can read;
- the IP address and the exact time are not stored. Vercel's request logs keep the IP address for a short time, as for every page of this site.
The counts are only ever used added up: how many installs are active per day and per week, which versions and systems are in use, how many simulations run and which features matter. Nothing is sold or shared.
Turning it off
- In the app: Settings › General › Usage statistics › Off. It stops at once and deletes the counts not sent yet. Reset id creates a new random id.
- For a whole computer: set the environment variable
FAIRBEAM_NO_TELEMETRY=1. It wins over every setting. - Questions: open an issue on the public tracker.
The website
This website sets no cookies and uses no analytics. The theme button and the demo remember your choices in your browser's local storage only.