IP Library Granted Patent US 11,386,257
Granted Patent B2
US 11,386,257 · App. 14/054,570 · Granted Jul 12, 2022

Efficient manipulation of surfaces in multi-dimensional space using energy agents

Inventors: Mark H. Lu (Berkeley, CA); Steven E. Newcomb (Berkeley, CA); Brian R. Maissey (Berkeley, CA); Andrew J. L. de Andrade (San Francisco, CA)
Assignee: Amaze Software, Inc.
G06F40/143G06F3/04815G06F3/04883G06F2203/04802
View Patent ↗
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 11,386,257
App. No.
14/054,570
Granted
Jul 12, 2022
Kind
B2
Abstract

Various implementations for efficiently manipulating surfaces in a multi-dimensional space using energy agents are described. A context including one or more surfaces is rendered for display in the multi-dimensional space. One or more events manipulating the one or more surfaces of the context are detected. One or more energy agents are computed for the one or more surfaces of the context based on the one or more events. A visual effect manipulating the one or more surfaces of the context is applied based on the one or more energy agents.

Claims (78)

1. A computer-implemented method comprising:

rendering via a web browser a viewport including a first context including one or more first DOM elements for display in a multi-dimensional space, and a second context including one or more second DOM elements for display in the multi-dimensional space;

associating a first instance of a physics engine with the first context;

associating a second instance of a physics engine with the second context;

attaching one or more first energy agents to the one or more first DOM elements, the one or more first energy agents providing the one or more first DOM elements with one or more first attributes;

attaching one or more second energy agents to the one or more second DOM elements, the one or more second energy agents providing the one or more second DOM elements with one or more second attributes;

detecting one or more events manipulating the one or more first DOM elements of the first context;

piping the one or more first energy agents attached to the one or more first DOM elements to the first instance of the physics engine associated with the first context that includes the one or more first DOM elements;

computing, independent of the second context using the first instance of the physics engine, a transformation of the one or more first DOM elements of the first context in the multi-dimensional space based on one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents; and

applying a visual effect manipulating the one or more first DOM elements of the first context based on the transformation of the one or more first DOM elements computed based on the one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents attached to the one or more first DOM elements of the first context of the viewport.

2. The computer-implemented method of claim 1 , wherein applying the visual effect manipulating the one or more first DOM elements of the first context further comprises

generating a scene graph reflecting the transformation of the one or more first DOM elements, and

rendering the visual effect manipulating the one or more first DOM elements based on the scene graph using graphics hardware acceleration.

3. The computer-implemented method of claim 1 , further comprising:

interpreting one or more objectives for the one or more events, wherein the one or more first energy agents are computed based at least on the one or more objectives.

4. The computer-implemented method of claim 1 , wherein

detecting the one or more events includes receiving a user input and determining one or more of a directionality and speed of the user input; and

computing the transformation includes computing a movement vector for the one or more first DOM elements based further on one or more of the directionality and the speed of the user input.

5. The computer-implemented method of claim 4 , further comprising:

placing the one or more first DOM elements in movement in the multi-dimensional space by applying the movement vector;

determining a boundary threshold of the first context;

determining that one or more edges of the one or more first DOM elements has moved beyond the boundary threshold;

computing a counter force vector for the one or more first DOM elements based on a contextual attribute; and

applying the counter force vector to oppose the movement of the one or more first DOM elements.

6. The computer-implemented method of claim 1 , wherein the one or more events includes one or more of a touch event, a mouse pointer event, a keyboard event, and a motion gesture event.

7. A computer program product comprising a non-transitory computer usable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to:

render via a web browser a viewport including a first context including one or more first DOM elements for display in a multi-dimensional space, and a second context including one or more second DOM elements for display in the multi-dimensional space;

associate a first instance of a physics engine with the first context;

associate a second instance of a physics engine with the second context;

attach one or more first energy agents to the one or more first DOM elements, the one or more first energy agents providing the one or more first DOM elements with one or more first attributes;

attach one or more second energy agents to the one or more second DOM elements, the one or more second energy agents providing the one or more second DOM elements with one or more second attributes;

detect one or more events manipulating the one or more first DOM elements of the first context;

pipe the one or more first energy agents attached to the one or more first DOM elements to the first instance of the physics engine associated with the first context that includes the one or more first DOM elements;

compute, independent of the second context using the first instance of the physics engine, a transformation of the one or more first DOM elements of the first context in the multi-dimensional space based on one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents; and

apply a visual effect manipulating the one or more first DOM elements of the first context based on the transformation of the one or more first DOM elements computed based on the one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents attached to the one or more first DOM elements of the first context of the viewport.

8. The computer program product of claim 7 , wherein to apply the visual effect manipulating the one or more first DOM elements of the first context further comprises

generating a scene graph reflecting the transformation of the one or more first DOM elements, and

rendering the visual effect manipulating the one or more first DOM elements based on the scene graph using graphics hardware acceleration.

9. The computer program product of claim 7 , wherein the computer readable program, when executed on the computer, further causes the computer to:

interpret one or more objectives for the one or more events, wherein the one or more first energy agents are computed based at least on the one or more objectives.

10. The computer program product of claim 7 , wherein to detect the one or more events includes receiving a user input and determining one or more of a directionality and speed of the user input, and to compute the transformation includes computing a movement vector for the one or more first DOM elements based further on one or more of the directionality and the speed of the user input.

11. The computer program product of claim 10 , wherein the computer readable program, when executed on the computer, further causes the computer to:

place the one or more first DOM elements in movement in the multi-dimensional space by applying the movement vector;

determine a boundary threshold of the first context;

determine that one or more edges of the one or more first DOM elements has moved beyond the boundary threshold;

compute a counter force vector for the one or more first DOM elements based on a contextual attribute; and

apply the counter force vector to oppose the movement of the one or more first DOM elements.

12. The computer program product of claim 7 , wherein the one or more events includes one or more of a touch event, a mouse pointer event, a keyboard event, and a motion gesture event.

13. A system comprising:

one or more processors;

a rendering engine, executable by the one or more processors, to render via a web browser a viewport including a first context including one or more first DOM elements for display in a multi-dimensional space, and a second context including one or more second DOM elements for display in the multi-dimensional space;

an interaction engine, executable by the one or more processors, to detect one or more events that manipulate the one or more first DOM elements of the first context;

a first instance of a physics engine, executable by the one or more processors, to attach one or more first energy agents to the one or more first DOM elements, the one or more first energy agents providing the one or more first DOM elements with one or more first attributes, to pipe the one or more first energy agents attached to the one or more first DOM elements to the first instance of the physics engine associated with the first context that includes the one or more first DOM elements, and to compute, independent of the second context, a transformation of the one or more first DOM elements of the first context in the multi-dimensional space based on one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents, and the rendering engine being further executable to apply a visual effect manipulating the one or more first DOM elements of the first context based on the transformation of the one or more first DOM elements computed based on the one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents attached to the one or more first DOM elements of the first context of the viewport; and

a second instance of a physics engine, executable by the one or more processors, to attach one or more second energy agents to the one or more second DOM elements, the one or more second energy agents providing the one or more second DOM elements with one or more second attributes.

14. The system of claim 13 further comprising:

a surface translation engine, executable by the one or more processors, to generate a scene graph reflecting the transformation of the one or more first DOM elements, wherein

the rendering engine is further executable to render the visual effect manipulating the one or more first DOM elements based on the scene graph using graphics hardware acceleration.

15. The system of claim 13 , further comprising:

an input engine, executable by the one or more processors, to interpret one or more objectives for the one or more events, wherein the one or more first energy agents are computed based at least on the one or more objectives.

16. The system of claim 13 , further comprising:

an input engine, executable by the one or more processors, to receive, via the interaction engine, a user input and to determine one or more of a directionality and speed of the user input, wherein the first instance of the physics engine is further executable to compute the transformation by computing a movement vector for the one or more first DOM elements based further on one or more of the directionality and the speed of the user input.

17. The system of claim 16 , wherein the rendering engine is further executable to:

place the one or more first DOM elements in movement in the multi-dimensional space by applying the movement vector,

determine a boundary threshold of the first context,

determine that one or more edges of the one or more first DOM elements has moved beyond the boundary threshold,

compute a counter force vector for the one or more first DOM elements based on a contextual attribute, and

apply the counter force vector to oppose the movement of the one or more first DOM elements.

18. The system of claim 13 , wherein the one or more events includes one or more of a touch event, a mouse pointer event, a keyboard event, and a motion gesture event.

19. A system comprising:

means for rendering via a web browser a viewport including a first context including one or more first DOM elements for display in a multi-dimensional space, and a second context including one or more second DOM elements for display in the multi-dimensional space;

means for associating a first instance of a physics engine with the first context;

means for associating a second instance of a physics engine with the second context;

means for attaching one or more first energy agents to the one or more first DOM elements, the one or more first energy agents providing the one or more first DOM elements with one or more first attributes;

means for attaching one or more second energy agents to the one or more second DOM elements, the one or more second energy agents providing the one or more second DOM elements with one or more second attributes;

means for detecting one or more events manipulating the one or more first DOM elements of the first context;

means for piping the one or more first energy agents attached to the one or more first DOM elements to the first instance of the physics engine associated with the first context that includes the one or more first DOM elements;

means for computing, independent of the second context using the first instance of the physics engine, a transformation of the one or more first DOM elements of the first context in the multi-dimensional space based on one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents; and

means for applying a visual effect manipulating the one or more first DOM elements of the first context based on the transformation of the one or more first DOM elements computed based on the one or more attributes of the one or more events and the one or more first attributes provided to the one or more first DOM elements by the one or more first energy agents attached to the one or more first DOM elements of the first context of the viewport.

Assignments (2)
CHANGE OF NAME Recorded Apr 28, 2022
From: FAMOUS INDUSTRIES, INC.
To: AMAZE SOFTWARE, INC.
Reel/Frame 059821/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2014
From: LU, MARK H.; NEWCOMB, STEVEN E.; MAISSEY, BRIAN R.; DE ANDRADE, ANDREW J.L.
To: FAMOUS INDUSTRIES, INC.
Reel/Frame 032713/0414 →
Continuity (2)
Provisional Application 61714130 · Oct 15, 2012
Related Publication 20140108915A1 · Apr 17, 2014