Skip to content

Instantly share code, notes, and snippets.

@mahmoudahmedd
Last active February 16, 2024 04:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mahmoudahmedd/57d5ada258756d49420608c3cad07596 to your computer and use it in GitHub Desktop.
Save mahmoudahmedd/57d5ada258756d49420608c3cad07596 to your computer and use it in GitHub Desktop.
GSoC 2023 Chromium Project - Improve AR/VR experience on Web

Improve AR/VR experience on Web - WebXR Debugging Page for Chromium ("webxr-internals")

https://summerofcode.withgoogle.com/programs/2023/projects/4EVJm10k
Video: https://www.linkedin.com/posts/mahmoudaahmedd_webxr-chromium-developertools-activity-7117623435916120064--nZi?utm_source=share&utm_medium=member_ios

Project Overview

The "webxr-internals" project is a Google Summer of Code (GSoC) 2023 initiative that aims to enhance the Augmented Reality (AR) and Virtual Reality (VR) experience on the web by providing a dedicated debugging page in the Chromium browser. This debugging page, similar to existing debugging pages like chrome://media-internals and chrome://webrtc-internals, will serve as a valuable tool for developers to diagnose and optimize WebXR pages.

Project Abstract

The primary goal of this project is to create the chrome://webxr-internals debugging page within the Chromium browser. This page will offer essential information and data for debugging and performance analysis purposes, allowing developers to identify and resolve issues in their AR/VR web applications effectively.

Project Team

Mentors

Mentor 1

Mentor 2

Contributor

Background

WebXR and Its Significance

WebXR is an emerging technology that empowers developers to build immersive AR and VR experiences directly within web browsers. As AR and VR technologies continue to evolve and gain popularity, it becomes crucial to equip developers with robust debugging and performance analysis tools. These tools play a pivotal role in the software development process, enabling developers to create high-quality XR applications by identifying and addressing issues efficiently.

Current State of Chromium Debugging Pages

Chromium offers various debugging pages to assist developers in diagnosing and optimizing different aspects of the browser. Notable examples include chrome://media-internals for media debugging, chrome://webrtc-internals for WebRTC-related debugging, and chrome://gpu for GPU-related information. but as of the project's initiation, there is no dedicated debugging page for WebXR in Chromium.

Initial proposal

https://docs.google.com/document/d/1BuxA4lzD9RIytXHC9ms88Hwm9o6oR1UEVbWryncCpOs/

How to Use "chrome://webxr-internals"

Developers can access it by typing chrome://webxr-internals into the browser's address bar. The page will provide a user-friendly interface for viewing and analyzing WebXR-related data and diagnostics.

Project Status

Implemented Features

  1. Initial Version of WebXR Internals Debugging Page

    • Introduced the initial version of the WebXR Internals debugging page.
    • Implemented features:
      • Device Info Table: Displays information about the user's system, including GPU driver, GPU vendor ID, operating system name, and OS version.
    • Chromium Gerrit Change
  2. XRRuntime Information in WebXR Internals Page

    • Added XRRuntime information to the WebXR Internals page.
    • Provides details on:
      • Active Runtimes Table, including Device ID, Supported Features, and AR Support.
      • Removed/Added Runtimes Table, including Device ID, Runtime State, Time, Supported Features, and AR Support.
    • Chromium Gerrit Change
  3. XR Session Section in chrome://webxr-internals

Planned Future Work

  1. XR Frame Information and Interactive Charts
    • Implement XR frame information section within the WebXR Internals debugging page.
    • This section will provide details about individual frames in XR sessions, including frame rate, latency, and rendering statistics.
    • Create interactive charts to visualize real-time XR frame data.
@pantchayan
Copy link

Hey, this is some great work. Went through your proposal doc as well, very well curated.

I would like to work and contribute to the features mentioned under "Planned Future Work".
Do you have any suggestions on how I should go about it?

I have skills to perform similar data viz. while working with JavaScript.

  • I am new to Chromium, so meanwhile, will keep digging to understand the internals of the project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment