Skip to content

Feature/platform extensions#328

Merged
doranteseduardo merged 35 commits into
developfrom
feature/platform-extensions
Jun 4, 2026
Merged

Feature/platform extensions#328
doranteseduardo merged 35 commits into
developfrom
feature/platform-extensions

Conversation

@doranteseduardo

Copy link
Copy Markdown
Member

This pull request introduces a significant set of improvements and new features to the AR world mesh and depth pipeline, focusing on multi-source mesh generation, robust physics integration, and a new public subscriber API for AR meshes. The changes enhance mesh sourcing flexibility (LiDAR, monocular, and plane fallback), improve physics performance with asynchronous processing, and provide a more extensible and thread-safe architecture for AR mesh consumers.

AR World Mesh & Depth Pipeline Enhancements:

  • Added support for multiple mesh sources in VROARWorldMesh, prioritizing LiDAR (ARMeshAnchor), depth maps (LiDAR or monocular), and plane anchors as a fallback. Mesh source is now tagged and exposed via VROARDepthMesh::getSource(). [1] [2] [3] [4] [5] [6]
  • Introduced new mesh generation methods in VROARFrame: generateMeshAnchorMesh() (LiDAR), generatePlaneMesh() (plane fallback), and a debug texture transform for overlays. [1] [2]

Physics Integration Improvements:

  • Physics mesh creation is now performed asynchronously in a background thread to avoid render thread stalls, with support for vertex clustering and triangle decimation for efficient collision meshes. Smart-pointer lifecycle management ensures safe Bullet rigid body cleanup.

World Mesh Subscriber API & Lifecycle:

  • VROARWorldMesh now supports a public subscriber API, allowing multiple consumers to receive mesh updates with source and stats. Mesh updates notify all subscribers, and the mesh can be retrieved via VROARScene::getWorldMesh(). [1] [2]

Platform Activation & Session Coordination:

  • AR sessions are now notified when the world mesh is enabled or disabled, allowing platform-specific activation of depth sensing (e.g., ARCore DepthMode). [1] [2]

Documentation & Changelog:

  • The CHANGELOG.md has been updated to reflect all new features, improvements, and bug fixes, including the AR world mesh subscriber API, mesh source tagging, and physics enhancements.

ErnestoMendozaHernandez and others added 30 commits May 12, 2026 18:43
Brings in ViroCameraTexture selfie/front-camera support:
- VROAVCaptureController: front camera selection (iOS)
- VROCameraTextureiOS: front camera capability
- VROCameraTextureAndroid + CameraTexture_JNI: Android front camera texture
- CameraTexture.java: Java camera texture with front/back switching
@doranteseduardo doranteseduardo merged commit 2088801 into develop Jun 4, 2026
3 of 4 checks passed
@doranteseduardo doranteseduardo deleted the feature/platform-extensions branch June 4, 2026 19:22
doranteseduardo added a commit that referenced this pull request Jun 5, 2026
* feat: add target details

* feat: visionos driver and metal

* chore: add logs for tracing bridge

* feat: implement hysteresis for vr

* chore: logs cleanup

* Feature/platform extensions (#328)

* feat: selfie camera support

* feat: VRODynamicGeometry — mutable per-frame vertex buffers

* chore: link new files

* feat: VROInputState + VROVirtualControllerRegistry foundation

* fix: xcode references

* chore: media capture

* feat: VROVirtualController JNI bridge (Android) + fix RVCCA_AVAILABLE guard

* feat: add nativeSetButton to VROVirtualController JNI

* feat: add PCM streaming audio — iOS AVAudioEngine + Android AudioTrack

* eat: orientation support, calibration modes, and in-place depth texture update  W6+W1+W4)

* feat(mono): synthesized confidence for hit-test gating (W2) + monocular world-mesh fallback (W5)

* feat(F4-W1): replace stats-only callback with subscriber API in VROARWorldMesh

* feat(F4-W2): persistent mesh sourcing with ARMeshAnchor + plane fallback

* feat(F4-W4): smart pointer hardening for btRigidBody/btDefaultMotionState

* feat(F4-W3): per-consumer decimation in VROARWorldMesh subscriber model

* feat (F4-W7): Android world mesh end-to-end repair

* feat (F4-W8): Depth-tested wireframe for world mesh debug draw

* feat(demo-hooks): expose getWorldMesh() on VROARScene + getNativeRef() on ViroContext

* feat(android): expose Scene.getNativeRef() for cross-package JNI access

* fix: virodynamicmeshnode

* feat: add game loop, fix particle alpha

* fix: arworldmesh is not simplified

* chore: skip anchor not found log

* feat: use metric model for mono

* feat: support monocular scale factor

* feat: configurar monocular target fps

* fix: wire controls and audio in android

* fix: prevent corrupted meshes

* Update VROPhysicsShape.cpp

* chore: validate selfie camera integration and add new prop for nav mode

* fix: camera flip bug

* fix: SIGABRT in ARUtilsCreateJavaARAnchorFromAnchor on Android 14

* fix: shaders + extensions

* chore: update changelog

---------

Co-authored-by: Ernesto Mendoza <emhgerencia@gmail.com>
Co-authored-by: Benito Mota <benmotanoti@gmail.com>

---------

Co-authored-by: Ernesto Mendoza <emhgerencia@gmail.com>
Co-authored-by: Benito Mota <benmotanoti@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants