You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add HCDF fragment enhancement with composite visuals and frames
- Add cache module with SHA-based model deduplication
- Support composite visuals (multiple GLB models per device)
- Add reference frame visualization with hover tooltips
- Implement HCDF fragment loading from XML files
- Add MCUmgr HCDF group constants for remote queries
- Update fragment matching (exact vs wildcard)
- Add FrameGizmo component with RGB axis rendering
- Add "Show Reference Frames" checkbox in UI
- Rename mcnt1hub.glb to mcxnt1hub.glb
Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Device definitions are stored in `fragments/`. Each fragment describes a board type:
205
+
Device definitions map board/application combinations to 3D models and reference frames. Fragments can be defined locally or fetched from [hcdf.cognipilot.org](https://hcdf.cognipilot.org).
206
+
207
+
### Local Fragments (TOML)
206
208
207
209
```toml
208
210
# fragments/index.toml
209
-
[[fragments]]
210
-
path = "spinali.toml"
211
-
212
-
[[fragments]]
213
-
path = "rtk_f9p.toml"
211
+
version = "1.0"
212
+
213
+
[[fragment]]
214
+
board = "mr_mcxn_t1"
215
+
app = "optical-flow"
216
+
model = "optical_flow.glb"
217
+
description = "PMW3901 optical flow sensor on MR-MCXN-T1"
218
+
219
+
[[fragment]]
220
+
board = "mr_mcxn_t1"
221
+
app = "*"# Wildcard - matches any app
222
+
model = "mcxnt1hub.glb"
223
+
description = "MR-MCXN-T1 development board"
214
224
```
215
225
216
-
```toml
217
-
# fragments/spinali.toml
218
-
[fragment]
219
-
name = "spinali"
220
-
board = "spinali"
221
-
description = "CogniPilot Spinali IMU board"
222
-
223
-
[fragment.model]
224
-
path = "spinali.glb"
225
-
scale = 0.001
226
-
227
-
[fragment.match]
228
-
# Match criteria for auto-identification
229
-
board_regex = "spinali.*"
226
+
### Remote Fragments (HCDF)
227
+
228
+
Devices can report an HCDF URL via MCUmgr. The daemon fetches and caches these automatically:
Models are cached locally with SHA-prefixed names (`{short_sha}-{name}.glb`) for deduplication.
256
+
232
257
## 3D Models
233
258
234
-
Place glTF/GLB models in `assets/models/`. Models are loaded based on fragment definitions and displayed in the 3D view. The web UI supports:
259
+
Place glTF/GLB models in `assets/models/`. Models are loaded based on fragment definitions and displayed in the 3D view.
260
+
261
+
Public models are hosted at [hcdf.cognipilot.org](https://hcdf.cognipilot.org) (see [hcdf_models repository](https://github.com/CogniPilot/hcdf_models)).
262
+
263
+
### Web UI Features
235
264
236
-
- Orbit camera (drag to rotate)
237
-
-Pan (shift+drag or two-finger drag)
238
-
-Zoom (scroll or pinch)
239
-
-Device selection (click/tap on 3D models)
240
-
-Position/rotation editing
241
-
- Connection status indicators (green=online, red=offline, white=unknown)
242
-
-Toggle connectivity checking via "Check connection" checkbox
265
+
-**Camera**: Orbit (drag), pan (right-drag), zoom (scroll/pinch)
266
+
-**Selection**: Click devices to view details and edit position/rotation
267
+
-**Composite visuals**: Devices can have multiple 3D models at different poses
268
+
-**Reference frames**: Toggle "Show Reference Frames" to visualize coordinate frames
269
+
-**Frame tooltips**: Hover over frame gizmos to see name and description
0 commit comments