Skip to content
Open StudioFlight StackAugust 31, 2026 · 5 min read

No-Spray Guard v0.1.0: An Evidence-Linked Rule Audit

Release notes, input profile, four audit rules, synthetic sample, source-package scope, and safety limits for No-Spray Guard v0.1.0.

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 fieldv0.1.0 defaultMeaning in this release
Minimum boundary distance10 mCompare with supplied geofence_distance_m
Minimum altitude2 mLower edge of the review envelope
Maximum altitude6 mUpper edge of the review envelope
Maximum groundspeed3 m/sReview threshold while spray is on
Minimum active flow1 ml/minState-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; and
  • package.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.

Tags
No-Spray Guardrule auditdrone sprayCSV auditopen sourceApache-2.0
More in Flight Stack
Reviewed insight feed

Follow evidence-reviewed field notes.

Subscribe to the RSS feed for reviewed articles on drone operations, bird-strike risk, CBRN readiness, and aerospace ESG. We do not collect an email address until a verified mailing service is available.