NETxTEN Core
NETxTEN Core is a C++ SDK for OEMs, camera manufacturers, and system integrators. It packages the same patented detection algorithm that powers the NETxTEN App for direct integration into existing products and platforms. It provides detection in real-time and supports alarming. NETxTEN Core is fast, tiny, does not need GPU or accelerated processing and can run on-camera hardware, on hardware boards with small processors, in existing OEM software, and in the cloud.
Specifications
| Specification | Details |
|---|---|
| Size | 20 - 130 MB depending on platform |
| Type | C++ SDK |
| Algorithm | Patented physics-based gas detection; fully automated, no human intervention required (USPTO US-12469250-B2) |
| Input | Raw 16-bit radiometric video frames |
| Output (per frame) | Processed gas signal frame; original frame passthrough; false color overlay (see API Overview section below) |
| Configuration | Via NETxTEN's PresetManager (vendor + camera type + level) or manual parameter struct (see Configuration section below) |
| FFI Support | C#, Dart; compatible with any language supporting C FFI bindings (see Language Support section below) |
| SDK Deliverables | Platform-specific headers, compiled libraries, and binaries (see SDK Deliverables section below) |
| Platforms | Windows, macOS, Linux, Android, iOS, and embedded/on-camera ARM (see Platform Support section below) |
API Overview
NETxTEN Core processes video frame-by-frame through a stateful FrameProcessor that maintains temporal state across frames. The integration flow is:
- Create a frame grabber (file-based or camera)
- Create a
FrameProcessor - Configure parameters via
PresetManageror manualParamsstruct - (Optional) Build an ROI mask via
RoiMaskBuilder - Call
newRecordingLoaded(fps, frameSize)to initialize - Loop: supply raw frame →
processFrame(frame, params)→ consume result
Per-frame output (processFrame() returns):
| Output | Description |
|---|---|
result.processed_frame |
Extracted gas signal as a processed frame (16-bit) |
result.original_frame |
Original raw frame passthrough |
| False color overlay | Generated separately via FalseColorUtils::preprocessFrame() — overlays detected gas regions in the selected color on a grayscale base |
// Process a frame
auto result = frame_processor.processFrame(frame, params);
// Generate false color overlay
auto overlay = FalseColorUtils::preprocessFrame(
result.processed_frame, result.original_frame,
params.camera_type, OverlayColor::RED);
Configuration
Parameters can be set two ways — both can be changed frame-by-frame mid-stream:
Option 1 — PresetManager (recommended) Load a preset by camera vendor, camera type, and sensitivity level. Presets are FPS-aware and automatically calculate temporal parameters.
auto params = preset_mgr.loadPresetAsParams(
CameraVendor::FLIR, CameraType::COOLED,
3, // preset level
frame_rate
);
Option 2 — Manual Params struct
Configure every field directly without PresetManager.
| Parameter | Description |
|---|---|
camera_type |
COOLED or UNCOOLED |
std_count |
Temporal window size (typically fps / 3) |
iterations |
Noise elimination iterations |
hpf_removal_factor |
Highpass filter strength |
alignment_strategy |
Camera motion compensation — AUTO_DECIDE, ALWAYS_ALIGN, or NEVER_ALIGN |
run_hpf |
Enable / disable highpass filter |
hist_equal |
Enable / disable histogram equalization |
overlay_color |
0 RED · 1 GREEN · 2 BLUE · 3 YELLOW · 4 MAGENTA |
roi_mask |
Region of interest mask (uint8 pointer) |
filter_blobs_size |
Minimum detectable plume size |
filter_blobs_porosity |
Blob porosity threshold |
pixel_difference_threshold |
Per-pixel change threshold |
enable_frame_resize |
Enable / disable frame downscaling |
temporal_subtraction_params.enabled |
Enable / disable temporal subtraction |
fast_image_segmentation_params.enabled |
Enable / disable fast image segmentation |
gradient_noise_processor_params.enabled, .std_noise_factor |
Enable / disable gradient noise processing; noise threshold factor |
motion_magnitude_extractor_params.enabled |
Enable / disable motion magnitude extraction |
temporal_canny_edge_tracker_params.enabled |
Enable / disable Canny edge tracking |
Region of Interest (ROI)
NETxTEN Core supports inclusion and exclusion of regions in the field of view to focus detection on specific areas of the frame.
| Method | Description |
|---|---|
RoiMaskBuilder |
OOP shape API — define rectangle (and other) include/exclude regions in normalized coordinates |
| Raw pointer | Supply a pre-built binary mask as a uint8_t* directly to params.roi_mask (255 = keep, 0 = exclude) |
SDK Deliverables
| Deliverable | Platform | Notes |
|---|---|---|
| C++ header files | All | Public API — exposes FrameProcessor, Params, PresetManager, RoiMaskBuilder, and FalseColorUtils |
Static libraries (.lib / .a) |
All | For static linking |
Dynamic library — .dll |
Windows | For dynamic linking |
Dynamic library — .so |
Linux, Android | Shared object |
Dynamic library — .dylib / .framework |
macOS, iOS | Framework bundle available for Apple platforms |
Language Support
| Language | Integration Method | Status |
|---|---|---|
| C++ | Native | ✓ Explicitly supported |
| C# | P/Invoke (FFI) | ✓ Explicitly supported |
| Dart | dart:ffi |
✓ Explicitly supported |
| Python, Swift, Kotlin, Java, Rust, and others | C FFI bindings | Compatible in principle — any language with a C FFI mechanism can bind to the SDK |
Platform Support
| Platform | Architecture | Notes |
|---|---|---|
| Windows | x64, ARM64 | |
| macOS | x64, ARM64 | Universal binary available |
| Linux | x64, ARM64 | |
| Android | ARM (all ABIs) | |
| iOS | ARM64 | |
| Embedded / On-Camera | ARM | Suitable for deployment directly on camera hardware |
Additional platform and architecture support — including 32-bit ARM and other embedded targets — available on inquiry.
Target Integrations
| Integration Type | Description |
|---|---|
| Camera Manufacturers | To embed advanced gas detection into camera firmware or companion software; run on-camera on ARM hardware |
| Drone & Robotics Platforms | To add real-time advanced detection in airborne or ground-based inspection systems |
| System Integrators | To add advanced detection capability onto remote continuous emissions monitoring solutions |
| Inspection Software Vendors | To extend existing OGI or LDAR software with advanced plume detection |
| Solution Providers | To build complete end-to-end LDAR solutions on top of NETxTEN Core |
NETxTEN — Automated methane detection for optical gas imaging Aquanta Vision · Patent: USPTO US-12469250-B2