The useful move is passing in the claim alongside the inputs: the tool returns both the physical limit and a verdict, so "20 MHz at 15 dB SNR gives 500 Mbps" comes back against a Shannon limit of 100.6 Mbps rather than being quietly accepted. The aperture check inside the link budget does the same for antenna gains, which is where dish and patch figures usually go wrong.
A physics checker for radio engineering. Each tool computes the real figure from the governing equation and, when you supply a claim, says whether the claim is physically possible.
- A full link budget from the Friis transmission equation: free-space path loss, received power and wavelength — with antenna gains rejected when they exceed what the aperture allows
- Shannon-Hartley channel capacity for an AWGN channel, spectral efficiency, and any claimed throughput checked against the limit with the exact percentage by which it overshoots
- Thermal noise power, which is -174.0 dBm/Hz at the IEEE reference temperature of 290K, cascaded noise figure through multiple stages by the Friis noise formula, system noise temperature and receiver sensitivity
- Monostatic radar detection range from the radar range equation, including radar cross-section, integration over multiple pulses and losses, with claimed ranges validated against it
- Constants taken from SciPy's CODATA 2018 values, and a warning above 300 GHz where free-space path loss stops describing the atmosphere
No account and no key — it is arithmetic on constants. Run it with uvx physbound over stdio; the PyPI package is physbound, currently 0.2.0, and it needs Python 3.12 or newer. The first launch pulls about 60 MB of dependencies including scipy and numpy, so running uvx physbound once in a terminal first makes later starts immediate.
One command — uvx physbound
