Documentation Index

Fetch the complete documentation index at: https://docs.kernel.com/llms.txt

Use this file to discover all available pages before exploring further.

Differences between Local and Cloud Recording

Prev Next

Ways of Recording Data

There are 3 ways to record data for analysis:

  1. Using the Flow UI on the cloud, see Initiating a recording.
  2. Using the Offline UI to a SNIRF file, see Recording Offline.
  3. Using the SDK and storing data locally, see Kernel SDK.

Differences

We are working towards parity between all the ways of recording data. The table below represents the current state of each and will be updated as we implement any gaps:


CloudOffline SNIRFSDK
Loss tolerant
Data buffered to disk then uploaded

Data saved directly to disk
⚠️
Requires consumer of data to keep up with the stream rate and store themselves
Streams✅ NIRS Gated moments
✅ NIRS Hb moments
✅ NIRS raw moments*
✅ IRF
✅ EEG
✅ Task Events
✅ Sync Accessory Box
 NIRS Gated moments
❌ NIRS Hb moments
✅ NIRS raw moments*
❌ IRF
❌ EEG
✅ Task Events
✅ Sync Accessory Box
 NIRS Gated moments
❌ NIRS Hb moments
✅ NIRS raw moments*
❌ IRF
EEG
Task Events
Sync Accessory Box
NIRS raw moments*
Histogram noise floor correction and bad channel removal
⚠️
Streaming-optimized histogram noise floor correction and bad channel removal
⚠️
Streaming-optimized noise floor correction and bad channel removal

NIRS raw moments processing

On the cloud, the moments are run through the SNIRF Moments Pipeline on high-compute servers. Locally when recording Offline or via the SDK, they are run on our firmware, a much smaller processor. There, we implemented the core steps with the highest impact on signal quality. Even with less steps, the final data overlaps considerably, and many customers have had successful analysis on local recordings.

Histogram noise floor correction

The 3 moments have a 99% correlation between the cloud SNIRF Moments Pipeline and the local Offline/SDK pipelines.

Bad channel removal

The cloud SNIRF Moments Pipeline operates on the entire recording, and there is some final set of good channels that are determined. In the local Offline/SDK pipelines, the good channels are computed sample by sample, where each sample will have a different set of good channels. Today, there are some differences in the logic, but we are working towards achieving parity so that, on average, the number of good channels matches between cloud and local. We will provide an update when this is the case.