View on GitHub

Ballistic Calculator 2

User guide — a free, open-source ballistic calculator for Windows, Linux and macOS

Ballistic Calculator 2 — 1.0.0

The first release of the Avalonia rewrite. Windows, Linux and macOS, from one codebase, with no emulation layer.

Released 2026-07-31 — tag 1.0.0.

This replaces the WinForms Ballistic Calculator .NET. It is not an update to it: nothing is shared but the trajectory engine, and the two can be installed side by side. Your files mostly come with you — old .ammo ammunition files load (the Load dialog offers them and saves back in the current .ammox format), .drg drag tables and .reticle files are unchanged because those formats belong to the engine library, and an old .trajectory file opens, through a migration path for the layout that kept the zeroing inside the rifle. It does not work in the other direction: a shot saved by this release will not open in the WinForms application.


Download

Take the archive that matches your machine, unpack it into a folder you can write to, and run it. There is no installer and no updater.

Platform Archive Run
Windows x64 / ARM64 BallisticCalculatorPortable-win-x64.zip, …-win-arm64.zip BallisticCalculator2.exe
Linux x64 / ARM64 BallisticCalculatorPortable-linux-x64.tar.gz, …-linux-arm64.tar.gz ./BallisticCalculator2
macOS Apple Silicon / Intel BallisticCalculatorPortable-osx-arm64.tar.gz, …-osx-x64.tar.gz ./BallisticCalculator2

The reticle editor is a second executable in the same folder — ReticleEditor.exe / ./ReticleEditor.

Prerequisite: the .NET 8 runtime. The builds are framework-dependent. The plain runtime is enough — Avalonia does not need the Desktop Runtime.

Match the archive to the machine on macOS. An osx-arm64 build on an Intel Mac fails at start with nothing useful said about why; uname -m settles it. Verified running on both.

The Unix builds ship as .tar.gz rather than .zip on purpose — zip carries no permission bits, so a zipped Linux or macOS build arrives with its launcher not executable.

Full instructions, including what the application stores and where, are in Installation and first run.

Code signing

The two Windows archives are signed. The Linux and macOS binaries are not — there is nothing signtool can do with an ELF or a Mach-O binary. macOS builds are not notarised, so Finder refuses the launcher on a double-click; starting it from Terminal is unaffected. Notarisation needs an Apple Developer ID, a .app bundle and a submission step, and is deliberately not done for this release.


What it does

Trajectory

Spin drift and aerodynamic jump need the rifling twist plus the bullet’s diameter and length; Coriolis needs the barrel azimuth and your latitude. Leave them out and those terms are simply absent — not estimated.

Drag models

Reading the answer

Analysis

Libraries and editors


What ships in data/

   
34 reticles Real optics — Trijicon ACOG and VCOG, Leupold CMR/CCH, Elcan Specter, EOTech Vudu, Nightforce Huron, PSO-1, Mil-Dot, MOA grid, an H58-style grid, M16 irons. Each has a companion .md sheet giving the pattern element by element, the full calibration, a mark-by-mark table and how the load was identified, plus a README index
62 drag tables Measured .drg curves, Lapua and others
80 ammunition files Sample loads from .22 to .50 BMG, including air rifle and shotgun
26 sight and barrel presets 11 sights and 15 barrels, in data/dictionaries.xml

Every reticle here is a -style rendering built from published subtension data. None is a manufacturer file and none is exact — a mark is “400 m” only for the load the reticle was etched for, which is why the application labels each mark from your trajectory instead of from the etching.

On updating: everything inside data belongs to the release and is replaced; everything outside it — including user-dictionaries.xml and appstate.json, which live beside the executable — is yours and is never touched. Keep your own reticles and loads in a folder of your own. See Updating the application.


Documentation

A full user guide ships with this release — installation, one article per tab of the Shot Parameters dialog, the reticle editor, the drag-model articles, and what the model includes, which states term by term what is computed and what is left out.

Four reference articles are still stubs and say so on the page: the summary view, saving and exporting, the units reference, and file formats.


Known problems

The full list, with causes and workarounds, is in Known problems. The four worth knowing before you start:

And one thing reported as a problem that is not: the table can stop before the maximum range you asked for. The solver abandons a shot below 50 ft/s or past 10,000 ft of drop, so a load asked for more range than it can carry ends where it ran out. Rows stop; nothing errors.


RISK NOTICE

The application performs a very limited simulation of a complex physical process and therefore makes a great many approximations. The calculation results MUST NOT be considered as completely and reliably reflecting the actual behaviour or characteristics of projectiles. While these results may be used for educational purposes, they must NOT be considered reliable in any area where an incorrect calculation could lead to a wrong decision, financial harm, or risk to human life.


Under the hood

Problems and suggestions: open an issue, saying which platform you are on — Windows, a real Linux desktop, or WSL.


← All releases · ← Contents