# Examples Matrix

Public examples should prove reusable module combinations. They should not hide
product behavior, private package identities, generated captures, tuning
constants, or release payloads.

| Example | Public modules used | Reusable behavior demonstrated | Headset hardware | Validation command | Sanitized downstream pressure |
| --- | --- | --- | --- | --- | --- |
| [contracts examples](../crates/rusty-xr-contracts/examples/README.md) | `rusty-xr-contracts` | Plain stereo feedback, composite feedback sessions, passthrough style catalogs, strobe descriptors, developer-home manifests, effect-stack diagnostics, and projection scorecards. | No | `cargo run -p rusty-xr-contracts --example effect_stack_diagnostic_manifest --features serde` | Visual pipeline descriptors, operator menus, and schema-stable contracts. |
| `projection_performance_matrix_packet` | `rusty-xr-contracts` | Renderer-neutral projection/performance packet shape. | No | `cargo run -p rusty-xr-contracts --example projection_performance_matrix_packet --features serde` | Projection parity scoring without private captures. |
| `depth_world_space_contract` | `rusty-xr-contracts` | Renderer-neutral environment-depth world-space contract for `depth UV -> depth view ray -> reference-space point -> render-eye screen UV`. | No | `cargo run -p rusty-xr-contracts --example depth_world_space_contract --features serde` | Depth/particle baseline evidence before comparing camera projection or blur. |
| `dynamic_mesh_coordinates` | `rusty-xr-particles`, `rusty-xr-contracts`, `rusty-xr-sdf` | Stable barycentric coordinates, topology keys, same-surface neighborhoods, and cross-surface links on synthetic meshes. | No | `cargo run -p rusty-xr-particles --example dynamic_mesh_coordinates` | Dynamic mesh consumers that need stable coordinates across deformation. |
| `mesh_fixture_manifest` | `rusty-xr-particles` | Public synthetic mesh fixture manifests for grid, icosphere, deforming-grid, and hand-mesh topology tests. | No | `cargo run -p rusty-xr-particles --example mesh_fixture_manifest --features serde` | Downstream dynamic-mesh consumers that need portable topology, sampling, SDF/depth, particle, collider, or render-payload fixtures. |
| `hand_mesh_fixture_samples` | `rusty-xr-particles`, `rusty-xr-contracts` | Public hand-mesh fixture generation and sample export. | No | `cargo run -p rusty-xr-particles --example hand_mesh_fixture_samples` | Fixture-backed tests before provider adapters. |
| `hand_mesh_dynamic_collider` | `rusty-xr-particles`, `rusty-xr-contracts` | Collider-ready surface output and diagnostic visual shell from public hand-mesh snapshots. | No | `cargo run -p rusty-xr-particles --example hand_mesh_dynamic_collider` | Physics and renderer adapters that need sanitized mesh surfaces. |
| `hand_mesh_sdf_attraction` | `rusty-xr-particles`, `rusty-xr-sdf`, `rusty-xr-contracts` | Mesh snapshot to SDF conversion with particle attraction. | No | `cargo run -p rusty-xr-particles --example hand_mesh_sdf_attraction` | Dynamic surface interaction proofs using synthetic data. |
| `billboard_performance_patterns` | `rusty-xr-particles` | Billboard construction, animation mask lookup, and trail snapshot tradeoffs. | No | `cargo run -p rusty-xr-particles --example billboard_performance_patterns` | Particle-renderer pressure without renderer-specific code. |
| `quest_provider_snapshot` | `rusty-xr-quest-diagnostics` | Sanitized Quest provider readiness/status snapshot. | No | `cargo run -p rusty-xr-quest-diagnostics --example quest_provider_snapshot` | Tooling health records before device operations. |
| `openxr_gles_feasibility_status` | `rusty-xr-quest-diagnostics` | Public OpenXR/GLES feasibility status packet. | No | `cargo run -p rusty-xr-quest-diagnostics --example openxr_gles_feasibility_status` | Adapter feasibility reports without shipping native loaders. |
| `surface_texture_oes_ingest_status` | `rusty-xr-quest-diagnostics` | SurfaceTexture/OES ingest status model. | No | `cargo run -p rusty-xr-quest-diagnostics --example surface_texture_oes_ingest_status` | Video ingest diagnostics with platform-owned rendering. |
| `kiosk_command_run_record` | `rusty-xr-contracts` | One command run record that compares MCP, broker API, CLI, and fallback evidence with before/after kiosk status. | No | `cargo run -p rusty-xr-contracts --example kiosk_command_run_record --features serde` | Provider evidence for operator and agent workflows. |
| `osc_udp_probe` | `rusty-xr-osc` | Minimal OSC UDP packet send/receive path. | No, for loopback | `cargo run -p rusty-xr-osc --example osc_udp_probe` | Runtime-control adapters without app-specific command names. |
| `zmq_pub_sub_loopback` | `rusty-xr-zmq`, `rusty-xr-broker-model` | Optional pure-Rust ZeroMQ PUB/SUB loopback from broker manifest to bounded receiver inbox. | No, for loopback | `cargo run -p rusty-xr-zmq --example zmq_pub_sub_loopback --features runtime` | Transport-adapter proof without native `libzmq` or private signal sources. |
| [broker client probe](../examples/broker-client-probe/README.md) | `rusty-xr-broker-model` | Source-only broker status, command, stream-list, module-aware registry summary, subscription, console-open, and latency-sample probe. | No for fixture-backed parser tests; live command use needs a broker endpoint | `cargo test -p rusty-xr-broker-client-probe` | Broker command evidence and stream inspection. |
| [broker registry simulator](../examples/broker-registry-simulator/README.md) | `rusty-xr-broker-model` | Source-only module-aware registry simulator over HTTP and WebSocket. | No | `cargo test -p rusty-xr-broker-registry-simulator` | UI/client registry testing before live broker or adapter work. |
| broker interactive media route fixtures | `rusty-xr-broker-model` | Schema-only route manifests, runtime state, feedback samples, and scorecards for control/data/render/feedback plane separation. | No | `cargo test -p rusty-xr-broker-model --features serde`; `python tools\schema\check_broker_ui_fixtures.py --repo-root .` | Low-latency media route planning without bundling codec, renderer, or protocol runtimes. |
| [minimal Quest APK](../examples/quest-minimal-apk/README.md) | `rusty-xr-contracts` | Smallest public Android smoke-test package and catalog path. | Build no; device validation yes | `powershell -ExecutionPolicy Bypass -File .\examples\quest-minimal-apk\tools\Build-QuestMinimalApk.ps1` | APK build/catalog proof before richer examples. |
| [composite layer Quest APK](../examples/quest-composite-layer-apk/README.md) | `rusty-xr-contracts`, `rusty-quest-projection-runtime-config`, `rusty-xr-camera-model`, `rusty-xr-depth-model`, `rusty-xr-particles`, `rusty-xr-sdf`, `rusty-xr-debug-canvas`, `rusty-xr-osc`, `rusty-xr-broker-model` | Public OpenXR/Vulkan diagnostic shell for projection, environment depth, stream probes, HUD, and particle-map paths. | Build needs local Android/OpenXR inputs; validation needs headset | `powershell -ExecutionPolicy Bypass -File .\examples\quest-composite-layer-apk\tools\Build-QuestCompositeLayerApk.ps1 -OpenXrLoaderPath <path-to-libopenxr_loader.so>` | Projection, depth, and stream diagnostics with public scorecards. |
| [OpenGL/OpenXR video stack APK](../examples/quest-gl-openxr-video-stack-apk/README.md) | `rusty-xr-broker-model`, `rusty-xr-camera-model`, `rusty-xr-quest-diagnostics` | OpenGL ES/OES and OpenXR video-stack comparison lane. | Build needs local Android/OpenXR inputs; validation needs headset | Follow the example README build command for the local OpenXR loader path. | Video-stack diagnostics before adapter extraction. |
| [broker sidecar APK](../examples/quest-broker-apk/README.md) | `rusty-xr-broker-model`, `rusty-xr-contracts`, `rusty-xr-lsl`, `rusty-xr-osc` | Localhost broker status, WebSocket commands, stream manifests, clock, launcher page, and bounded media probes. | Build no; device validation yes | `powershell -ExecutionPolicy Bypass -File .\examples\quest-broker-apk\tools\Build-QuestBrokerApk.ps1` | Operator command evidence, broker clock, and diagnostic sidecar pressure. |
| [mic pipe sentinel Quest APK](../examples/quest-mic-pipe-sentinel/README.md) | Android app shell plus public evidence rows | Visible user-started microphone foreground service, `AudioRecord` PCM16 capture, localhost Termux WAV receiver, RMS/dBFS evidence, and background-start negative-control plan. | Build no; device validation yes | `powershell -ExecutionPolicy Bypass -File .\examples\quest-mic-pipe-sentinel\tools\Build-QuestMicPipeSentinelApk.ps1` | Speech-session pressure before adding microphone capture or ASR events to the broker. |
| [Unity comparison target](UNITY_EXAMPLE_INTEGRATION.md) | Rusty XR broker contracts plus Unity-owned C# adapter code in the public Unity example repository | Cross-repository proof that broker-routed stream events, replay records, and direct Unity inputs can drive the same visible Quest scene behavior. | Unity edit-mode tests no; live Quest comparison yes | In the Unity repository: `powershell -ExecutionPolicy Bypass -File .\Tools\Run-BrokerEditModeTests.ps1` | Unity adapter pressure without moving Unity scene semantics into Rusty XR core. |
| [broker shell helper](../examples/quest-broker-shell-helper/README.md) | `rusty-xr-broker-model`, `rusty-xr-quest-diagnostics` | Source-only shell-helper status and bounded diagnostic probes. | Build no; use requires Developer Mode device | `powershell -ExecutionPolicy Bypass -File .\examples\quest-broker-shell-helper\tools\Build-BrokerShellHelper.ps1` | Shell-helper boundary checks without installing a privileged app. |
| [Makepad comparison shell](../examples/makepad-camera-shell/README.md) | `rusty-quest-projection-runtime-config` plus Makepad-owned app surface | Makepad-first packaging and status-marker comparison lane. | Build may be source-only; device validation needs headset | Follow the example README because it is excluded from the Cargo workspace. | Framework comparison without folding Makepad behavior into core. |

## Matrix Rules

- Prefer new small examples when a reusable module combination has no public
  proof.
- Do not add examples that require private package names, private assets,
  generated captures, or downstream-only launch identities.
- Keep hardware-dependent examples explicit about what can be built without a
  headset and what requires device validation.
- When a source example proves a reusable contract, move the contract into the
  owning crate before adding more app behavior.
