IP Library Patent Application 15666205
Patent Application
App. No. 15/666,205

Dynamic Arrangement of Elements in Three-Dimensional Space

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/666,205
Abstract

In one embodiment, a method includes determining one or more three-dimensional (3D) objects defined in 3D space for display. The one or more 3D objects may be projected into corresponding one or more two-dimensional (2D) objects defined in 2D space. Run-time layout characteristics of the one or more 2D objects may be defined using a layout module. The run-time layout characteristics defined by the layout module may be send to a 3D rendering engine. The 3D rendering engine may render a display containing the one or more 3D objects using the run-time layout characteristics of the one or more 2D objects defined by the layout module.

Claims (45)

1 . A method comprising, by one or more computer systems:

determining one or more three-dimensional (3D) objects defined in three-dimensional space for display;

projecting the one or more 3D objects into corresponding one or more two-dimensional (2D) objects defined in two-dimensional space;

defining run-time layout characteristics of the one or more 2D objects using a layout module;

sending, to a 3D rendering engine, the run-time layout characteristics defined by the layout module; and

rendering, by the 3D rendering engine, a display containing the one or more 3D objects using the run-time layout characteristics of the one or more 2D objects defined by the layout module.

2 . The method of claim 1 , wherein projecting the one or more 3D objects into the corresponding one or more 2D objects comprises computing a 2D cross-section of each of the 3D objects.

3 . The method of claim 1 , wherein the run-time layout characteristics defined by the layout module indicate placement information for the one or more 2D objects on a display region.

4 . The method of claim 3 , wherein the placement information comprises one or more of a length, a width, a size, position or location coordinates, an orientation, or a relative spacing between the one or more 2D objects on the display region.

5 . The method of claim 4 , wherein rendering the display containing the one or more 3D objects comprises:

transforming the projected one or more 2D objects back to the corresponding one or more 3D objects; and

placing the one or more 3D objects in the display region using the placement information indicated by the layout module.

6 . The method of claim 1 , further comprising:

after rendering the display, receiving one or more touch events on the one or more 3D objects; and

processing the one or more touch events using one or more of a first touch event handler or a second touch event handler.

7 . The method of claim 6 , wherein:

the first touch event handler is an operating system (OS) handler that is configured to process touch events synchronously; and

the second touch event handler is a custom 3D handler that is configured to process touch events asynchronously.

8 . The method of claim 6 , wherein the one or more 3D objects are associated with a virtual reality or augmented reality display.

9 . The method of claim 1 , wherein the layout module is a dynamic layout module that provides for dynamic arrangement of 2D objects in a display region at runtime.

10 . The method of claim 1 , wherein the projecting of the one or more 3D objects uses one or more of an orthographic or a perspective projection.

11 . One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

determine one or more three-dimensional (3D) objects defined in 3D space for display;

project the one or more 3D objects into corresponding one or more two-dimensional (2D) objects defined in 2D space;

define run-time layout characteristics of the one or more 2D objects using a layout module;

send, to a 3D rendering engine, the run-time layout characteristics defined by the layout module; and

render, by the 3D rendering engine, a display containing the one or more 3D objects using the run-time layout characteristics of the one or more 2D objects defined by the layout module.

12 . The media of claim 11 , wherein the run-time layout characteristics defined by the layout module indicate placement information for the one or more 2D objects on a display region.

13 . The media of claim 12 , wherein the placement information comprises one or more of a length, a width, a size, position or location coordinates, an orientation, or a relative spacing between the one or more 2D objects on the display region.

14 . The media of claim 13 , wherein to render the display containing the one or more 3D objects, the software is further operable to:

transform the projected one or more 2D objects back to the corresponding one or more 3D objects; and

place the one or more 3D objects in the display region using the placement information indicated by the layout module.

15 . The media of claim 11 , wherein to project the one or more 3D objects into the corresponding one or more 2D objects, the software is further operable to compute a 2D cross-section of each of the 3D objects.

16 . A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

determine one or more three-dimensional (3D) objects defined in 3D space for display;

project the one or more 3D objects into corresponding one or more two-dimensional (2D) objects defined in 2D space;

define run-time layout characteristics of the one or more 2D objects using a layout module;

send, to a 3D rendering engine, the run-time layout characteristics defined by the layout module; and

render, by the 3D rendering engine, a display containing the one or more 3D objects using the run-time layout characteristics of the one or more 2D objects defined by the layout module.

17 . The system of claim 16 , wherein the run-time layout characteristics defined by the layout module indicate placement information for the one or more 2D objects on a display region.

18 . The system of claim 17 , wherein the placement information comprises one or more of a length, a width, a size, position or location coordinates, an orientation, or a relative spacing between the one or more 2D objects on the display region.

19 . The system of claim 18 , wherein to render the display containing the one or more 3D objects using the run-time layout characteristics defined by the layout module, the processors are further operable to:

transform the projected one or more 2D objects back to the corresponding one or more 3D objects; and

place the one or more 3D objects in the display region using the placement information indicated by the layout module.

20 . The system of claim 16 , wherein to project the one or more 3D objects into the corresponding one or more 2D objects, the processors are further operable to compute a 2D cross-section of each of the 3D objects.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: SZYMANSKI, ZBIGNIEW; SLATER, MICHAEL; SUCIU, MIRCEA-GABRIEL; ROZANSKI, ALEXANDER NICHOLAS; SCHNEIDER, GUILHERME; DZHUMEROV, MILEN GEORGIEV; HENDERSON, ALEXANDER CHARLES; GIGINIAK, VOLODYMYR
To: FACEBOOK, INC.
Reel/Frame 043684/0424 →