IP Library Granted Patent US 8,201,099
Granted Patent B1
US 8,201,099 · App. 11/527,002 · Granted Jun 12, 2012

Method and system for rendering and interacting with an adaptable computing environment

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 8,201,099
App. No.
11/527,002
Granted
Jun 12, 2012
Kind
B1
Abstract

An adaptable computing environment is implemented with software entities termed “s-machines”, which self-assemble into hierarchical data structures capable of rendering and interacting with the computing environment. A hierarchical data structure includes a first hierarchical s-machine bound to a second hierarchical s-machine. The first hierarchical s-machine is associated with a first layer of a rendering region on a display screen and the second hierarchical s-machine is associated with a second layer of the rendering region overlaying at least a portion of the first layer. A screen element s-machine is linked to the first hierarchical s-machine. The screen element s-machine manages data associated with a screen element rendered to the display screen within the rendering region at the first layer.

Claims (82)

1. A method to generate a virtual environment, comprising:

linking a first hierarchical software machine (“s-machine”) to a second hierarchical s-machine to form a hierarchically arranged data structure, wherein the first hierarchical s-machine groups one or more first rendering s-machines for controlling rendering at a background rendering layer of a rendering region on a display screen and the second hierarchical s-machine groups one or more second rendering s-machines for controlling rendering at a foreground rendering layer of the rendering region overlaying at least a portion of the background rendering layer, wherein relative positions of the first and second hierarchical s-machines within the hierarchically arranged data structure correspond to the background rendering layer and the foreground rendering layer, respectively, on the display screen;

linking a third s-machine to the first hierarchical s-machine, the third s-machine to manage data associated with a screen element to be rendered within the rendering region at the background rendering layer; and

rendering the virtual environment including the screen element to the display screen,

wherein the first and second hierarchical s-machines and the third s-machine comprise executables that each execute one or more commands to implement one or more tasks.

2. The method of claim 1 , wherein the third s-machine comprises a screen element s-machine, the method further comprising:

linking a fourth s-machine to the first hierarchical s-machine and the screen element s-machine between the first hierarchical s-machine and the screen element s-machine, the fourth s-machine associated with a sub-region at the background rendering layer within the rendering region, and wherein the screen element is rendered to a display screen within the sub-region at the background rendering layer.

3. The method of claim 2 , wherein the sub-region comprises a first sub-region, the method further comprising:

linking one or more additional s-machines from the fourth s-machine, the additional s-machines each associated with a corresponding additional sub-region at the background rendering layer within the rendering region; and

linking one or more additional screen element s-machines to the screen element s-machine, the additional screen element s-machines each to manage data associated with additional screen elements rendered to the display screen within the first sub-region at the background rendering layer.

4. The method of claim 3 , further comprising:

linking one of the additional screen element s-machines to the second hierarchical s-machine to establish a bond for signaling to the second hierarchical s-machine when to disconnect from the first hierarchical s-machine.

5. The method of claim 4 , wherein the rendering region includes a book binding of a virtual book, the first hierarchical s-machine comprises a page layout s-machine for grouping screen elements associated with the virtual book, and the second hierarchical s-machine comprises a left page details s-machine for grouping screen elements associated with a left page rendered within the virtual book.

6. The method of claim 5 , wherein one of the additional screen element s-machines comprises a left page edges s-machine for rendering virtual left page edges and wherein another one of the additional screen element s-machines comprises a right page edges s-machine for rendering virtual right page edges.

7. The method of claim 6 , further comprising:

linking a verb s-machine to the left page edges s-machine;

receiving, at the verb s-machine, a page turn event indicating a user clicked on the virtual left page edges rendered to the display screen;

notifying the one of the additional screen element s-machines bound to the left page details s-machine of the page turn event; and

disconnecting the left page details machine from the page layout machine.

8. The method of claim 7 , further comprising:

querying a hierarchical data container linking multiple virtual pages of the virtual book to determine a next page; and

connecting a new left page details s-machine to the page layout machine.

9. The method of claim 2 , wherein the first and second hierarchical s-machines each comprise a hierarchical grouping s-machine to group row s-machines on a single rendering layer, respectively, and wherein the fourth s-machine comprises a row rendering s-machine to render the screen element to the display screen based on the data managed by the screen element s-machine.

10. The method of claim 2 , further comprising:

signaling to the first hierarchical s-machine a location of a screen pointer on the display screen;

signaling to the first hierarchical s-machine to determine whether the location of the screen pointer is coincident with a first region associated with the first hierarchical s-machine; and

querying the fourth s-machine to determine whether the location of the screen pointer is coincident with the sub-region associated with the fourth s-machine.

11. The method of claim 10 , further comprising:

exposing a binding site on the screen element s-machine in response to the screen pointer residing over the screen element;

linking a verb s-machine to the exposed binding site;

linking the verb s-machine to an interface event s-machine; and

polling at the interface event s-machine to determine whether a user event associated with the screen element has occurred, the verb s-machine to implement a function in response to the user event.

12. The method of claim 2 , wherein the first and second hierarchical s-machines, the fourth s-machine, and the screen element s-machine comprise software entities that implement respective tasks and bind to each other by matching complementary binding keys.

13. The method of claim 1 , further comprising:

executing an interface event s-machine to monitor for user input events for interacting with the virtual environment,

wherein the first hierarchical s-machine links data pathways between the interface event s-machine and the first rendering s-machines,

wherein the second hierarchical s-machine links the data pathways between the interface event s-machine and the second rendering s-machines.

14. A non-transitory computer-accessible storage medium that provides instructions that, when executed by a computer, will cause the computer to perform operations comprising:

linking a first hierarchical software machine (“s-machine”) to a second hierarchical s-machine forming a hierarchically arranged data structure, wherein the first hierarchical s-machine groups one or more first rendering s-machines at a background rendering layer of a rendering region and the second hierarchical s-machine groups one or more second rendering s-machines for controlling rendering at a foreground rendering layer of the rendering region overlaying at least a portion of the background rendering layer, wherein relative positions of the first and second hierarchical s-machines within the hierarchically arranged data structure correspond to the background rendering layer and the foreground rendering layer, respectively, on a display screen;

linking a screen element s-machine to the first hierarchical s-machine, the screen element s-machine to manage data associated with a screen element to be rendered within the rendering region at the background rendering layer; and

rendering the screen element to the display screen,

wherein the first and second hierarchical s-machines and the screen element s-machine comprise executables that each execute one or more commands to implement one or more tasks.

15. The non-transitory computer-accessible storage medium of claim 14 , further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

linking a fourth s-machine to the first hierarchical s-machine and the screen element s-machine between the first hierarchical s-machine and the screen element s-machine, the fourth s-machine associated with a sub-region at the background rendering layer within the rendering region, and wherein the screen element is rendered to the display screen within the sub-region at the background rendering layer.

16. The non-transitory computer-accessible storage medium of claim 15 , wherein the sub-region comprises a first sub-region, the computer-accessible medium further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

linking one or more additional s-machines from the fourth s-machine, the additional s-machines each associated with a corresponding additional sub-region at the background rendering layer within the rendering region; and

linking one or more additional screen element s-machines to the screen element s-machine, the additional screen element s-machines each to manage data associated with additional screen elements rendered to the display screen within the first sub-region at the background rendering layer.

17. The non-transitory computer-accessible storage medium of claim 16 , further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

linking one of the additional screen element s-machines to the second hierarchical s-machine to establish a link for signaling to the second hierarchical s-machine when to disconnect from the first hierarchical s-machine.

18. The non-transitory computer-accessible storage medium of claim 17 , wherein the rendering region comprises a book binding of a virtual book, the first hierarchical s-machine comprises a page layout s-machine for grouping screen elements associated with the virtual book, and the second hierarchical s-machine comprises a left page details s-machine for grouping screen elements associated with a left page rendered within the virtual book.

19. The non-transitory computer-accessible storage medium of claim 18 , wherein one of the additional screen element s-machines comprises a left page edges s-machine for rendering virtual left page edges and wherein another one of the additional screen element s-machines comprises a right page edges s-machine for rendering virtual right page edges.

20. The non-transitory computer-accessible storage medium of claim 19 , further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

linking a verb s-machine to the left page edges s-machine;

receiving, at the verb s-machine, a page turn event indicating a user clicked on the virtual left page edges rendered to the display screen;

signaling the one of the additional screen element s-machines bound to the left page details s-machine of the page turn event; and

disconnecting the left page details machine from the page layout s-machine.

21. The non-transitory computer-accessible storage medium of claim 15 , further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

signaling to the first hierarchical s-machine a location of a screen pointer on the display screen;

signaling to the first hierarchical s-machine to determine whether the location of the screen pointer is coincident with a first region associated with the first hierarchical s-machine; and

querying the fourth s-machine to determine whether the location of the screen pointer is coincident with the sub-region associated with the fourth s-machine.

22. The non-transitory computer-accessible storage medium of claim 21 , further providing instructions that, when executed by the computer, will cause the computer to perform further operations, comprising:

exposing a binding site on the screen element s-machine in response to the screen pointer residing over the screen element;

linking a verb s-machine to the exposed binding site;

linking the verb s-machine to an interface event s-machine; and

polling at the interface event s-machine to determine whether a user event associated with the screen element has occurred, the verb s-machine to implement a function in response to the user event.

23. A system, comprising:

a processor; and

a data storage unit coupled to the processor, the data storage unit storing instructions that, if executed by the processor, will cause the processor to perform operations including:

linking a first hierarchical s-machine to a second hierarchical s-machine forming a hierarchically arranged data structure, wherein the first hierarchical s-machine groups one or more first rendering s-machines for controlling rendering at a background rendering layer of a rendering region and the second hierarchical s-machine groups one or more second rendering s-machines for controlling rendering at a foreground rendering layer of the rendering region overlaying at least a portion of the background rendering layer, wherein relative positions of the first and second hierarchical s-machines within the hierarchically arranged data structure correspond to the background rendering layer and the foreground rendering layer, respectively, on a display screen; and

linking a screen element s-machine to the first hierarchical s-machine, the screen element s-machine to manage data associated with a screen element to be rendered within the rendering region at the background rendering layer,

wherein the first and second hierarchical s-machines and the first and second rendering s-machines comprise executables that each execute one or more commands to implement one or more tasks.

24. The system of claim 23 , wherein the data storage unit further stores instructions that, if executed by the processor, will cause the processor to perform further operations, comprising:

linking one or more additional screen element s-machines to the screen element s-machine, the additional screen element s-machines each to manage data associated with additional screen elements within the rendering region at the background rendering layer.

25. The system of claim 23 , wherein the data storage unit further stores instructions that, if executed by the processor, will cause the processor to perform further operations, comprising:

communicating to the first hierarchical s-machine a location of a screen pointer on the display screen;

querying the first hierarchical s-machine to determine whether the location of the screen pointer is coincident with a first region associated with the first hierarchical s-machine; and

querying the second hierarchical s-machine to determine whether the location of the screen pointer is coincident with a second region associated the second hierarchical s-machine.

26. The system of claim 25 , wherein the data storage unit further stores instructions that, if executed by the processor, will cause the processor to perform further operations, comprising:

exposing a binding site on the screen element s-machine in response to the screen pointer residing over the screen element;

linking a verb s-machine to the exposed binding site;

linking the verb s-machine to an interface event s-machine; and

polling at the interface event s-machine to determine whether a user event associated with the screen element has occurred, the verb s-machine to implement a function in response to the user event.

Assignments (3)
CHANGE OF NAME Recorded Jan 19, 2018
From: SANDIA CORPORATION
To: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
Reel/Frame 045102/0144 →
CONFIRMATORY LICENSE Recorded Dec 14, 2006
From: SANDIA CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 018656/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2006
From: OSBOURN, GORDON CECIL; BOUCHARD, ANN MARIE
To: SANDIA CORPORATION, OPERATOR OF SANDIA NATIONAL LABORATORIES
Reel/Frame 018434/0407 →