Browser API for Mesh-Projected 360 Video Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications struggle to render 360-degree videos and 3D content items projected on meshes smoothly due to the limitations of running high-level programming codes like JavaScript, leading to frame skipping, delays, and poor user experience on user devices.

Innovation Solution

Implementing a browser-based API that receives instructions from web applications to project content items on meshes, using more efficient C++ code and rendering frames on a different thread than the web application logic, reducing the reliance on high-level programming codes and improving rendering efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If web applications use high-level programming codes like JavaScript to render 360-degree videos and 3D content items projected on meshes, then cross-platform compatibility and ease of updates are maintained, but frame skipping, delays, and poor rendering performance occur

Engineering Contradiction:
Improverendering performanceVSAvoidprogramming code complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a browser-based API as an intermediary layer between web applications and the rendering engine. This API enables web applications to request rendering services without directly implementing complex rendering logic, thereby improving rendering performance while maintaining web application simplicity and cross-platform compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If web applications handle rendering logic directly, then control over rendering process is maintained, but energy consumption increases and frame skipping occurs

Engineering Contradiction:
Improverendering smoothnessVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the rendering logic from web applications and transfers it to the browser's native rendering engine. This separation allows web applications to maintain control through API calls while the browser handles the computationally intensive rendering tasks, reducing energy consumption and eliminating frame skipping.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If high-level programming codes are used for rendering, then ease of development is maintained, but rendering efficiency and speed deteriorate

Engineering Contradiction:
Improverendering speedVSAvoiddevelopment ease
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The browser-based API serves as an intermediary that allows developers to write simple web application code while the browser translates these high-level requests into optimized native rendering operations. This maintains development ease while achieving high rendering speeds through the browser's efficient C++ implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10296592B2Spherical video in a web browser
Publication Date: 2019.05.21 GOOGLE LLC
  • US10296592B2 patent drawing
  • US10296592B2 patent drawing
  • US10296592B2 patent drawing

AI summary

Implementations disclose methods and systems for rendering, by a browser, a content item projected on a mesh. A method includes providing, by a browser executing on a user device, an application programming interface (API) to communicate with a web application that includes a user interface to present a content item on the user device; receiving, by the browser from the web application via the API, an instruction to project the content item on a mesh, where the instruction identifies the content item and the mesh; rendering, by the browser and without involvement of the web application, a first frame of the content item projected on the mesh in a first orientation; and causing, by the browser, the rendered first frame to be displayed on the user device.