01 · The module
Scotopic FOVEA.
Onboard EO/IR perception for small aerial targets. It reads your camera feed and returns a track — bearing, elevation and size, each with its own uncertainty — at 26 bytes per update, on commercial silicon you can buy anywhere. It keeps working when GPS is denied and the link is jammed, because nothing it needs is on the other end of that link. Detect, track, report.
02 · Specification
MODULE · FOVEA
FOVEA
Gives your aircraft its context on the battlefield.
Detect, track, report — at the sensor, without GPS and without a link. Optimised for COTS silicon, not a custom board. The first module in the Scotopic line.
Cued mode
Built for hand-off.
Given a target from a radar, an RF sensor or an operator, the search disappears and only the tracking loop remains. A cueing chain does not wait on frame rate. It waits on this.
on the reference platform
11.3 ms per cued frame, measured
on under a fifth of the sensor
This is what the module costs, not a system figure. FOVEA takes
the frame your system already has and returns a track in 11.3 ms. Capture, optics and
compute stay yours.
For sizing: on the reference platform a live sensor path costs a few ms of host CPU per
frame, far less than decoding compressed video — budget it in your system, it is not
counted in our figure. Neither of these is the whole-field rate: full-field search covers
all of 4K at 5.76 FPS, while cued tracks one handed-off target and runs far faster
because it is not searching. Cue latency held across 21 of 21 hand-offs, none missed.
Where 31 ms sits in a real cueing chain
Technical specifications — measured
Measured
In progress — not yet measured
MEASURED = reproduced on the hardware named above, or on a held-out split where stated, on a stated date. IN PROGRESS = not yet measured, published when it is, whatever it shows.
03 · Measured performance
Measured performance
26 B
per track update, on the wire
compact binary, size pinned by test
2.1 kbps sustained at 10 Hz
5.76 FPS
FULL-FIELD SEARCH — the whole 4K field, every frame
not the cued rate; see cued mode above
nothing has to emit, and nothing has to point us at it
10 min sustained · no throttling
Every figure on this page was reproduced on the hardware it names, on a stated date. The numbers we have not taken yet are listed as such, with the same weight.
Method and raw logs available on request
Accelerated figures measured 13 Aug 2026 on the target hardware named above; the 595 ms CPU baseline measured 28 Jul 2026 on the same board without the accelerator. False-alarm figures measured 13 Aug 2026 through the shipped build on target-free sky, every denominator recorded. Recall of 86.5% is a held-out split, in-distribution; the cross-dataset figure of 57.2% is on the same page for the same reason. Field validation on self-collected footage is under way and will be published measured, whatever it shows.
All footage on this page: system demonstration, synthetic scenario.
04 · Detection geometry
What the 8 px floor means for your optics.
The size floor above is a property of the detector. The distance at which your target reaches it is a property of your lens and your sensor, and it is arithmetic anyone can check. Put your configuration in and read the ceiling — including the cases where the answer is that no software will help you, and you need a longer lens.
Two input paths: field of view, or focal length and pixel pitch from a sensor datasheet. Returns the range at the 8 px floor, the instantaneous field of view per pixel, and how many frames a crossing target gives you at 5.76 FPS. Nothing is collected before you see the answer.
Open the calculator05 · For integrators
Drops in. Changes nothing else.
Scotopic FOVEA takes your camera feed and returns a track. It does not touch your autopilot, your navigation or your radio, and it keeps seeing when the signals are gone. Onboard an aircraft, or fixed on a mast.
Software. It runs on your compute, reads your camera and returns a track. There is no hardware to buy from us, and none is planned.
Commercial parts, measured today. Folding the accelerated path into the shipped build is in progress; the container runs CPU-only until it lands. no custom silicon, no cloud dependency and no licence server. Optimised for COTS silicon: no custom board, ITAR-free, inside a mast node’s power budget. It scales up if you have more; it was built where there is less.
Nothing external in the loop. Detection and tracking depend on the sensor and the compute next to it, not on GPS, the datalink or a ground station. Track output is relative: bearing, elevation, size, each with its own uncertainty. World-frame geolocation needs host position and attitude from your platform, and we report the error that adds.
One versioned track contract, regardless of platform. Compact binary on the wire at 26 bytes today, structured JSON for integration and debugging. Bearing and elevation carry decomposed uncertainty, so the output drops straight into your filter instead of being re-derived. MAVLink and ROS 2 bindings on the roadmap. Full spec on request.
06 · FAQ
The questions integrators actually ask.
What does Scotopic FOVEA actually do?
It reads a camera feed and returns a track. Detection and tracking of small aerial targets run on the compute next to the sensor — onboard an aircraft or fixed on a mast — and what leaves the node is 26 bytes of track state per update rather than video. Where that track goes, and what your system does with it, is your architecture.
What is the detection range in metres?
We have not characterised one, and we will not quote one. Range is not a property of the detector — it is a property of the optics in front of it. What we publish is the pixel floor: 8 px minimum resolved size. Put your sensor and lens into the detection geometry calculator and it returns the distance at which your target crosses that floor. A surveyed-truth range trial is on the roadmap and will be published measured, whatever it shows.
Why publish a threshold instead of a range, like everyone else?
Because a range figure is only true for the optics it was measured behind, and that configuration is almost never stated alongside it. Two integrators running the same detector behind different lenses get answers that differ by a factor of three. Publishing the floor lets you compute your own number, and check ours. It is the less flattering way to present the same fact.
What hardware does it need, and what does that cost?
Raspberry Pi 5 (8 GB) with a Hailo-8 accelerator, 26 TOPS — roughly €200 of commercial compute per node. It processes the whole 4K field of view at 5.76 FPS, 173.6 ms per frame, measured 13 Aug 2026 on that board. CPU-only, without the accelerator, inference is 595 ms p95 at 1280×1280. No custom silicon, no cloud dependency, no licence server.
Does it replace my autopilot or my flight stack?
No, and that is the point. It sits beside what you already have: it does not touch the autopilot, the navigation or the radio. It consumes a camera feed and emits a track on a versioned contract. Autonomy stacks ask you to adopt their operating system, their board and their qualification path, and you end up reselling someone else’s aircraft. This asks for a camera feed.
Does it need GPS or a datalink?
Neither. Detection and tracking depend on the sensor and the compute next to it, not on GPS, the datalink or a ground station. Track output is relative — bearing, elevation and size, each carrying its own 1σ uncertainty, so it drops into a fusion filter without being re-derived. World-frame geolocation needs host position and attitude from your platform, and we report the error that adds.
What happens to the track when the link is jammed?
It keeps running at the sensor and the output buffers. On reconnect the buffer flushes losslessly, so you get the interval rather than a gap. At 26 bytes per update — 2.1 kbps sustained at 10 Hz for one track, 7.8 kbps at five — the buffer is small enough that this is a design choice, not a compromise. Against a measured 13.16 Mbps video downlink that is a ratio of 6,327 : 1.
Can it detect anything other than drones?
The pipeline is domain-independent; the detector is not. Tracking with coasting through occlusion, the 26-byte contract with decomposed uncertainty, and the quantised edge envelope on Hailo-8 carry over unchanged to other target classes. The detector does not: weights are trained on a specific domain, and retargeting to surface vessels, ground vehicles or people needs labelled data from that domain. We run that as a scoped programme rather than listing it as a capability, and we publish measured performance for small aerial targets only — because that is the only domain we have measured.
Is 57.2% recall good? Why publish a number that looks bad?
57.2% is cross-dataset and zero-shot, on a dataset the detector has never seen. In-distribution, on a held-out split, it is 86.5%. Nearly every figure published in this sector is the second kind, presented without saying which kind it is. We publish the pair because the pair is the informative thing. When you compare vendors, the useful questions are not the number: which split did it come from, what size band, and what denominator did the false-alarm rate use?
Can I download it and try it on my own footage?
No. Access to the detector runs as a scoped evaluation, on your hardware, conducted together. The evaluation methodology and the track contract specification are documents we will send you; the detector is not distributed as a downloadable model file. We would rather say that plainly than publish a download button that turns into an email thread. The geometry calculator is open and needs nothing from you — it will tell you whether the physics works before anyone talks about software.
Is it SAPIENT compliant?
Not yet, and we will not claim it until it is validated. The interface targets BSI Flex 335 v2.0:2024-03, the current version of the SAPIENT interface control document written by Dstl for the UK MoD. Implementation is planned and has not been validated against a certified decision-making module. The architecture was built for it — local processing, summaries rather than raw feeds — from the first commit.
What does FOVEA control?
Nothing. It is a perception layer: it consumes pixels and emits a track with its uncertainty. There is no actuator interface, no flight control and no guidance loop in it — those are different problems, and this module solves one. Where the track goes, and what your system does with it, is yours to design.
07 · Contact
Request a scoped evaluation.
Request a scoped evaluationOn your hardware, with your camera, on your footage. Ask for the method note, the track contract specification, or integration support for next-generation SAPIENT architectures.