Browser release: August 26, 2026 · Source archive and this release note: August 31, 2026.
No-Spray Guard is a browser-only rule-audit simulator for recorded or simulated drone-spray events. Version 0.1.0 compares user-supplied CSV values with a visible, editable review profile and returns findings linked to the original source rows. Processing remains in the browser in this workflow.
The name describes a review objective, not an airborne guard function. The software does not calculate a legal geofence, create a flight-safe path, monitor live position, or send a command to an aircraft, pump, valve, payload, chemical system, or actuator. A block label in the output is a queue severity chosen by the local rule set. It does not physically block spraying and is not an authorization decision.
Input contract and review profile
The required CSV header is:
timestamp,latitude,longitude,altitude_m,groundspeed_mps,spray_on,flow_rate_ml_min,geofence_distance_m
timestamp must be compatible with date-time parsing. Latitude and longitude must remain within their conventional numeric ranges. Altitude, groundspeed, flow rate, and supplied boundary distance must be finite non-negative numbers. spray_on accepts the common true/false forms true, false, 1, 0, yes, no, on, and off. Invalid rows are retained in the output as rejected rows with a source-row number, raw text, and reason.
The user-visible rule profile contains five values:
| Profile field | v0.1.0 default | Meaning in this release |
|---|---|---|
| Minimum boundary distance | 10 m | Compare with supplied geofence_distance_m |
| Minimum altitude | 2 m | Lower edge of the review envelope |
| Maximum altitude | 6 m | Upper edge of the review envelope |
| Maximum groundspeed | 3 m/s | Review threshold while spray is on |
| Minimum active flow | 1 ml/min | State-and-flow consistency threshold |
These are synthetic demonstration defaults. They are not legal buffers, agronomic recommendations, manufacturer limits, site rules, or certification criteria. The profile rejects negative or non-finite settings and rejects a minimum altitude greater than the maximum altitude.
Four rules in v0.1.0
The audit evaluates four explicit conditions. A spray-on row below the configured boundary distance creates an exclusion-boundary finding with block severity. A spray-on row outside the altitude envelope creates an altitude-envelope review finding. A spray-on row above the configured groundspeed creates a speed-envelope review finding. A row whose reported spray state conflicts with the minimum-flow test creates a state-flow-consistency review finding.
Each finding records its rule identifier, severity, source row, timestamp, observed value, expected condition, and message. The summary counts valid and rejected rows, rules checked, affected and passing rows, block findings, review findings, and total findings. Multiple findings can refer to the same row, so the finding count and affected-row count can differ.
The geofence_distance_m field must already have been calculated by the user or a simulator. No-Spray Guard does not read a polygon, choose a coordinate reference system, measure a real setback, or determine which boundary is legally applicable. The altitude, speed, state, and flow checks likewise compare supplied values only; they do not verify sensor calibration or record authenticity.
Synthetic sample
The bundled sample-no-spray-events.csv contains ten synthetic events dated 2026-08-26. With the default profile, the reference implementation returns ten valid rows, zero rejected rows, four passing rows, six affected rows, one block finding, five review findings, and six total findings. These values verify deterministic behavior against the bundled input; they are not field-performance metrics.
The sample deliberately includes an above-threshold speed, high and low altitude values, a supplied boundary distance below the review value, spray-off with reported flow, and spray-on with zero reported flow. It is not a flight log, treatment record, customer result, aircraft test, or evidence of a regulatory breach.
Browser workflow and export
The public page automatically loads the synthetic sample. Users can change the five profile values, select a local CSV, inspect the evidence-linked queue, reset the sample, and download a JSON audit. The export includes the tool version, source filename, generated time, scope, profile, parsed events, rejected rows, findings, and summary.
The export is not signed, tamper-evident, access-controlled, or automatically connected to an authoritative record system. Users must decide how to classify, retain, review, and protect any local input and output.
Apache-2.0 source-package boundary
Download the versioned source archive. The UAMKT-authored package under open-source/no-spray-guard is distributed under the Apache License 2.0. It contains:
src/index.ts, the TypeScript parser, profile validator, rule engine, and summary;examples/sample-no-spray-events.csv, the synthetic input;README.md, the contract and safety boundary;THIRD_PARTY_NOTICES.md, upstream-reference and license notes;LICENSE, the Apache License 2.0 text; andpackage.json, the package metadata.
The website adapters and interface are maintained in src/lib/noSprayGuard.ts and src/components/build/NoSprayGuardQA.tsx. The package does not contain copied ArduPilot, PX4, QGroundControl, MAVSDK, or OpenDroneMap source code. References to those projects do not imply partnership, endorsement, certification, or tested interoperability.
Release limits and responsible evaluation
Version 0.1.0 has no live telemetry connection, polygon engine, aircraft or payload control, legal-rule database, chemical-label parser, calibration check, identity verification, or operational approval workflow. Its calculations are reproducible from supplied values, but reproducibility does not establish that the values are complete, authentic, correctly measured, or legally relevant.
Evaluate it with the synthetic sample or appropriately governed historical data. Confirm the profile, inspect rejected rows, reproduce representative findings directly from the source CSV, and document who supplied geofence_distance_m. Before any operational use, the responsible operator must separately confirm equipment instructions, site permissions, environmental controls, applicable aviation and chemical rules, and the appropriate professional review.
The supported claim is therefore narrow: No-Spray Guard turns user-supplied event values and user-selected screening thresholds into an evidence-linked finding queue. It does not prevent spraying, prove safety, demonstrate field performance, or determine compliance.