- Project type: Unity Quest app (
ProjectSettings/ProjectVersion.txt->6000.2.9f1). - Main scene:
Assets/RealityLog/Scenes/RealityLogScene.unity. - Runtime focus: synchronized camera + depth + pose capture under
Assets/RealityLog/Scripts/Runtime. - Android bridge:
Assets/Plugins/Android+rebuild_kotlin_library.ps1+questcameralib.aar. - Submodules:
QuestCameraLibandquest-3d-reconstructionare configured in.gitmodulesand may be uninitialized locally.
A skill is a set of local instructions stored in a SKILL.md file. Use the skills below for this repo.
- capture-pipeline: Maintain synchronized camera/depth/pose runtime behavior, timestamp alignment, and recording lifecycle logic. Use for changes in
RecordingManager,CaptureTimer,DepthMapExporter,ImageReaderSurfaceProvider,PoseLogger, or camera session flow. (file: /Users/satyamtiwary/Documents/robotic-things/OpenQuestCapture/.codex/skills/capture-pipeline/SKILL.md) - recording-menu-export: Maintain recording menu UI, list rendering, export/delete flows, and world-space menu wiring. Use for changes in
Assets/RealityLog/Scripts/Runtime/UIorRuntime/FileOperations/RecordingOperations.cs. (file: /Users/satyamtiwary/Documents/robotic-things/OpenQuestCapture/.codex/skills/recording-menu-export/SKILL.md) - quest-android-bridge: Maintain Unity Android interop, manifest/gradle integration, and QuestCameraLib AAR flow. Use for changes in
Assets/RealityLog/Scripts/Runtime/Camera,Assets/Plugins/Android, or Kotlin/AAR bridge work. (file: /Users/satyamtiwary/Documents/robotic-things/OpenQuestCapture/.codex/skills/quest-android-bridge/SKILL.md)
- Trigger rules:
- If a request clearly matches one of the three areas above, load and follow that skill.
- If a request spans areas, load all relevant skills and execute in risk order:
capture-pipeline->recording-menu-export->quest-android-bridge.
- Progressive loading:
- Read only the selected
SKILL.mdfirst. - Load additional files only when needed for the current task.
- Read only the selected
- Coordination:
- State which skill(s) are being used and why in one short line.
- Keep cross-skill changes explicit (call out boundaries between runtime, UI/export, and Android bridge).
- Fallback:
- If a skill file is missing or unreadable, state the issue and continue with best-effort repository inspection.
Quest 3 controllers are permanently mounted to Genrobot gripper bodies via 3D-printed fixtures + super glue. Each gripper (left and right) has a unique rigid transform from the controller tracking frame to the gripper TCP.
- Calibration data:
calibration/controller_to_gripper_transforms.json - Documentation:
calibration/README.md PoseLoggerrecords raw controller poses (HandLeft/HandRightnodes). To obtain gripper TCP poses, apply the calibratedT_controller_to_grippertransform.- Transforms are per-physical-gripper — they only change if a fixture is rebuilt or a controller is remounted.
- Left and right transforms are independent and distinct.
- Do not hand-edit Unity
.metaGUID values. - Do not rename persisted recording directories or output filenames without explicit migration requirements.
- Do not update submodule commit pointers unless explicitly requested.
- Keep Android permission-sensitive behavior explicit when touching export/camera code paths.
- Always run targeted
rgchecks for touched subsystems before finishing. - For C# runtime changes:
- Run static grep checks from the relevant skill checklist.
- Run Unity batch compile if Unity CLI is available; otherwise report it as skipped.
- For scene/prefab wiring changes:
- Confirm expected components/events in
Assets/RealityLog/Scenes/RealityLogScene.unitywithrg.
- Confirm expected components/events in
- For Android bridge/AAR changes:
- Verify manifest entries and plugin artifact presence.
- Rebuild/replace AAR when interface-level changes are introduced.