OClCollMeshEngn: produce ambience into stimBuff frames directly

This commit is contained in:
2026-04-04 13:17:43 -04:00
parent 1c0f028de0
commit e8044a0d17
10 changed files with 101 additions and 333 deletions
+8 -4
View File
@@ -77,14 +77,18 @@ raising new intrins.
- Stimbuffs must respect this limit and wait for stencil returns before
allocating new ones
**Example:**
**Example (generic device):**
```
+idev|my-device|someQualeApi(n-stencils=4)|someStimBuffApi()|livoxProto1()|SERIAL
```
The `pcloudAmbience` Livox Gen1 path does **not** use the `n-stencils` parameter; ambience data is delivered as a dense float vector in the stimulus frame buffer, not via a separate stencil allocation list.
**Deprecated example (do not use for Livox Gen1 ambience):**
```
+idev|my-device|pcloudAmbience(n-stencils=4)|livoxGen1-pcloud()|livoxProto1()|3JEDK380010Z39
```
This example allows the stimbuff to allocate up to 4 stencils
simultaneously.
## Notes
The stencil registration mechanism discussed above is not currently
+4 -4
View File
@@ -33,7 +33,7 @@ Each stim-buff-api is designed to work with specific stim-iface libraries that u
### 2. Point Cloud Ambience Data Device (Interoceptor)
**Purpose**: Provides ambience data from the LiDAR point cloud, computing average intensity per frame and counting frames that qualify for intrinsic stimuli.
**Purpose**: Provides ambience data from the LiDAR point cloud as a **vector of per-dagram average intensities** (one `float` per UDP datagram slot in the staging frame, length `n-dgrams-per-frame`). The OpenCL collate kernel writes these values directly into the acquired ambience `StimulusFrame` buffer.
**Syntax**:
```
@@ -41,10 +41,10 @@ Each stim-buff-api is designed to work with specific stim-iface libraries that u
```
**Stim-Buff-API**: `livoxGen1-pcloud`
**Quale-Iface-API**: `pcloudAmbience` - Computes average intensity per frame and exports postrin/negtrin based on configurable thresholds
**Quale-Iface-API**: `pcloudAmbience` - Delivers per-dagram average intensity floats; postrin/negtrin binding and passband-style aggregation are being revised (see intrinsic parameters below).
**Intrinsic Stimuli Support** (for pcloudAmbience quale-iface-api):
The `pcloudAmbience` quale-iface-api exports both a postrin and a negtrin whose
The `pcloudAmbience` quale-iface-api is intended to export both a postrin and a negtrin whose
thresholds are configurable via standard quale-iface-api-params:
- **Postrin interest threshold**: Configurable via `postrin-interest-[percentage|pc|threshold|thresh|thr]`
- **Negtrin interest threshold**: Configurable via `negtrin-interest-[percentage|pc|threshold|thresh|thr]`
@@ -165,7 +165,7 @@ The `livoxProto1` provider accepts the following parameters:
| Stim Feature | Stim-Buff-API | Quale-Iface-API | Description |
|--------------|---------------|----------------|-------------|
| Point Cloud Intensity | `livoxGen1-pcloudIntensity` | `pcloudIntensity` | Light intensity/reflectivity data |
| Point Cloud Ambience | `livoxGen1-pcloud` | `pcloudAmbience` | High-intensity point count per slot |
| Point Cloud Ambience | `livoxGen1-pcloud` | `pcloudAmbience` | Per-dagram average intensity vector (`float` × `n-dgrams-per-frame`) |
| Point Cloud Coordinates | `livoxGen1-pcloud` | `pcloud` | Spatial coordinate data |
| Gyroscope | `livoxGen1-gyro` | `gyro` | Angular velocity measurements |
| Accelerometer | `livoxGen1-accel` | `accel` | Linear acceleration measurements |