Methodology
How geoprims checks its answers, and what is not checked yet.
Where the numbers come from
Every calculator is written once, in Rust compiled to WebAssembly. This website and the local MCP server load the same modules and return byte-identical results. Numbers are formatted by the core (shortest round-trip form), and no tool reads the clock, your locale, or your time zone: dates and times are always inputs.
How results are checked
- Golden vectors. 5,584 test cases across 323 tool ids, each with its source (a published table, a worked example, or an independent implementation) and a tolerance. A test fails if any vector changes silently; changed expectations are kept and marked superseded.
- Differential tests against reference implementations, for example: Karney geodesics against GeographicLib and its GeodTest data; UTM against the exact transverse Mercator values in TMcoords; UPS and MGRS against GeographicLib; the standard atmosphere against the separately written ambiance; all 124 SPCS83 zones against PROJ; H3 against the H3 C library; sun position against NREL SPA in pvlib; time zones against Python zoneinfo; magnetic declination against the NCEI WMM2025 test values and ppigrf; and the EGM96 geoid against GeographicLib GeoidEval.
- Every spec scenario is a test. The behaviors written in the specifications, including refusals and warnings, run on every build.
- A report for every release. The verification report lists every tool's vectors, sources, largest observed error, and tolerance, and the changelog labels every change to a published result.
- Sources stay current. The sources ledger fails the build on a superseded edition, an expired model, or an overdue check.
- Assumptions are stated. When a result depends on an assumption (dry air, ISA temperature, a nominal fuel density), the result carries a named warning, and the MCP server returns it to agents too.
The stable bar
A tool is marked stable only when a build gate confirms every layer: a written derivation (method, equations, symbols, domain, and approximations), a worked example from a source independent of geoprims, unit annotations on every number, bounds fuzzing, invariant tests, differential tests against a reference implementation, one example shared by the page and the MCP server, at least 20 golden vectors, and a search for the tool's own name that finds it.
Stable now (213): Density altitude, Pressure altitude, Standard atmosphere, Holding pattern entry, Weight and balance, Top of descent, Visual descent point, Winds aloft (FB) decoder, METAR decoder, TAF decoder, Wind triangle: heading and groundspeed, Runway wind components, Part 107 maximum altitude, Height for a target GSD, Ground sampling distance (GSD), Image count and survey size, Overlap over high terrain, Overlap, trigger interval, and line spacing, Battery energy (mAh to Wh), Drone flight time, Visual line of sight distance, Helmert transformation (7 or 14 parameters), Transform between ITRF and WGS 84 realizations, Legacy datum to or from WGS 84, Transform between NAD 83 and ITRF or WGS 84, Old US datums to NAD 83 (NADCON5), Move a position between epochs (ITRF2020 plate motion), Auxiliary latitudes, Ellipsoid parameters, Radii of curvature and degree lengths, ECEF to latitude, longitude, and height, Local ENU, NED, or AER to point, Latitude, longitude, and height to ECEF, Point to local ENU, NED, and AER, Geoid height (EGM96), Latitude and longitude to GARS, GARS to latitude and longitude, Latitude and longitude to GEOREF, GEOREF to latitude and longitude, Latitude and longitude to Maidenhead locator, Maidenhead locator to latitude and longitude, Latitude and longitude to MGRS, MGRS to latitude and longitude, Latitude and longitude to USNG, USNG to latitude and longitude, Ellipsoidal and orthometric height, Magnetic declination, Grid variation (grivation), True and magnetic bearings, Add and subtract DMS angles, Difference between two bearings, Read any coordinate, Format a coordinate, Arc-to-chord correction (t − T), Latitude and longitude to state plane (SPCS83), State plane (SPCS83) to latitude and longitude, State plane zone lookup, Latitude and longitude to UPS, UPS to latitude and longitude, Latitude and longitude to UTM, UTM to latitude and longitude, UTM zone and band lookup, Polygon area and perimeter on the ellipsoid, Buffer a point, line, or polygon, Compare two tracks, Delaunay triangulation of points, Voronoi cells around points, Overlap, union, or difference of two polygons, Point in polygon, Bounding box, antimeridian-aware, Polygon centroid and interior point, Add vertices along geodesic edges (densify), Hull, bounding rectangle, and enclosing circle, Simplify a line or polygon (Douglas-Peucker), Simplify a line or polygon (Visvalingam), Check and repair a polygon, One place in every index, at a matched cell size, Geohashes covering an area, Geohash decoder, Geohash encoder, Geohash neighbors, H3 cell inspector, H3 local IJ for a cell (cellToLocalIj), H3 cell set outline (cellsToMultiPolygon), H3 children cells, H3 compact, H3 edges and vertexes, H3 grid disk (k-ring), H3 grid path and distance, H3 grid ring, H3 cell for a point, H3 cell at local IJ (localIjToCell), H3 parent cell, H3 polygon fill (polygonToCells), H3 resolution chooser, H3 uncompact, Plus Code decoder, Plus Code encoder, Shorten a Plus Code, S2 cell details, S2 cells covering a region, S2 cell for a point, S2 edge neighbours, Map tile bounds, Map tiles covering a box, Map tile parent and children, Map tile for a point (XYZ, TMS, quadkey), Map ground resolution and scale, Destination from a start, course, and distance (geodesic), Haversine distance (spherical), Point part way along a great circle, Where two geodesic segments cross, Distance between two points (geodesic), Midpoint on the geodesic, Great-circle destination (spherical), Great-circle distance and course (spherical), Highest point of a geodesic (vertex), Vincenty direct (legacy), Vincenty inverse (legacy), Waypoints along a route line, Dip of the horizon, Fresnel zone and radio link clearance, Distance to the horizon, Can two points see each other?, Destination on a constant course (rhumb line), Rhumb line distance and course, Closest point on a route, Closest point of approach, Cross-track and along-track distance, Fly-by turn anticipation, Route legs, courses, and totals, Range rings, Time, speed, and distance, 3D distance between two points, Look angles to a target, Vector sum, dot, and cross product, Vector components and direction, Area by coordinates (acreage), Traverse closure and adjustment, Horizontal circular curve, Vertical curve, Deed plot, closure, and area, Combined scale factor (grid and ground), Block time (out to in), Decimal hours to hours and minutes, GPS week and seconds to UTC, UTC to GPS week and seconds, Julian date, MJD, and day of year, Local time to UTC (Zulu), Time zone rules at a date, The four aviation nights, Sunrise, sunset, and twilight, Sun hotspot in a camera frame, Mapping light window, Night passenger currency, Sun position (azimuth and elevation), Acceleration converter, Angle converter, Degrees to radians, Radians to degrees, Angular rate converter, Acres to hectares, Area converter, Square feet to acres, Hectares to acres, Battery charge converter, Data rate converter, Density converter, Energy converter, Frequency converter, Fuel volume and weight, Length converter, Feet to meters, US survey feet to international feet, US survey feet to meters, Inches to millimeters, Kilometers to miles, Kilometers to nautical miles, Meters to feet, Meters to US survey feet, Miles to kilometers, Statute miles to nautical miles, Millimeters to inches, Nautical miles to kilometers, Nautical miles to statute miles, Mass converter, Kilograms to pounds, Pounds to kilograms, Power converter, Pressure converter, HPa to inHg, InHg to hPa, KPa to psi, Psi to kPa, Normalize a unit-tagged value, Slope and grade converter, Speed converter, Km/h to knots, Knots to km/h, Knots to mph, Knots to m/s, Mph to knots, M/s to knots, Temperature difference converter, Celsius to Fahrenheit, Temperature converter, Fahrenheit to Celsius, Time converter, Vertical speed converter, Ft/min to m/s, Volume converter, US gallons to liters, Liters to US gallons.
What is not done yet
- 110 of 323 tools are still marked experimental: they have not met the stable bar yet, and their results say so.
- No practitioner (pilot, CFI, surveyor, or drone operator) has signed off on any tool yet. Each domain page says so, and reviewed tools will be listed with the reviewer's name, qualification, and date.
- A build gate checks this site's claims (counts, what is stable, what results are checked against, and reviews) against the build itself.
If you find a wrong answer
Use "Report a problem" on the tool: it shows exactly what will be sent before you send it. Confirmed problems are listed on the known-issues page with a workaround, and every fix adds a test vector so it cannot come back.