Link Search Menu Expand Document

Debugging ARENA Web Browser Visually

When running programs in Python or Unity, you have a plethora of debug tools at your disposal to debug lines of code. For debugging the visual elements of rendered scenes, here are some other tools to help, and some guidance of where they are useful. Each tool has an expansive or limited capacity to display object messages (Read Objects), and add/change/delete object messages (Write Objects), as noted

Visual Object Editors Format Read Objects Write Objects
Python Console Interface MQTT All None
Build JSON JSON All All
Build 3D 3D All All
A-Frame Inspector 3D All None
Unity Editor 3D Most1 All
WebXR API Emulators 3D Camera/Hands Camera/Hands
AR Builder 3D All Primitives/GLTFs

1 The arena-unity library is still in development. Objects currently rendered are all Primitives, GLTFs, Lights, Lines, Text, Images. Others still to be rendered are: PCD, Threejs, URDF, UI Panels, Gaussian Splat.

Python Console Interface

There is a console interface tutorial to the arena-py Python library. This is designed to have a way to inspect the program from the console, without having to send a heartbeat or write your own command/response interface.

Build (JSON) Page

There is a JSON scene build tutorial for ARENA scenes. This is for editing persisted scene objects and configuration in JSON format with full support of all objects and their components.

Build 3D

There is a Build 3D tutorial for ARENA scenes using Build 3D. This is for editing persisted scene objects and configuration in 3D just as they would be on the 3D browser view. Build 3D leverages the A-Frame Inspector, with some critical differences, namely that changes are shared to other users.

A-Frame Inspector

There is a A-Frame Inspector tutorial for ARENA scenes using A-Frame Inspector. NOTE: The default A-Frame Inspector does not publish MQTT updates. Any changes you make are local only.

Unity Editor

There is a Unity 3D scene editing tutorial for ARENA scenes. This is for editing persisted scene objects and configuration in 3D in a Unity rendering window.

WebXR API Emulators

Since ARENA’s web view runs on WebXR, we can use one of the WebXR API Emulators to test Immersive VR (headset) features without a headset.

  • WebXR API Emulator by Mozilla Mixed Reality for Firefox and Chrome. Emulates Quest, Go, Gear VR, Vive, Cardboard devices.
  • Immersive Web Emulator by Meta for Chrome. Emulates Quest, Rift devices.

Usage:

  1. Go to the one of the above browser addon stores to install.
  2. Open your ARENA scene web view and the ARENA detects that you have a XR device (emulated) and it will let you enter the immersive (VR、AR) mode.
  3. Open the WebXR tab in the browser developer tool (Firefox, Chrome) to control the emulated devices. You can move the headset and controllers, and trigger the controller buttons.

AR Builder

We also have a Python program, AR Builder (ARB), which you can use to create and edit objects for your scene. You can use it in VR (virtual reality) as a way to edit your scene and save changes to the persistence database. Importantly, you can use it in AR (augmented reality) in combination with supported browsers and localization techniques to anchor scene objects in physical space. See our section on miXed Reality (XR) for details.

In either case, ARB allows any user in the scene to edit, so it can be used collaboratively by multiple users remotely as VR, in person as AR, or as XR (miXed Reality), a combination of both.