# US 9,437,032 B1 · Server computing system for and method of providing cross-platform remote access to 3D graphics applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,437,032 B1
- Document ID: US9437032B1
- Status: Granted
- Kind: B1
- Application number: 14/276,179
- Filed: 2014-05-13
- Granted: 2016-09-06
- Earliest claimed: 2011-12-30
- Assignees: hopTo Inc.
- Applicants: hopTo Inc.
- Inventors: William Tidd
- Web page: https://patentgrep.com/patent/US9437032B1

## CPC

- G06T 15/005: {General purpose rendering architectures}
- G06F 9/44: Arrangements for executing specific programs
- G06F 9/54: Interprogram communication
- G06T 11/00: Two-dimensional [2D] image generation
- G06T 15/00: Three-dimensional [3D] image rendering
- H04L 67/025: for remote control or remote monitoring of applications
- H04L 67/08: specially adapted for terminal emulation, e.g. Telnet
- G06F 3/1454: {involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay}
- G06T 2200/16: involving adaptation to the client's capabilities
- G09G 2370/022: Centralised management of display operation, e.g. in a server instead of locally
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

A server computing system in a client-server computing environment includes a virtual display driver that marshals and transmits graphics application programming interface (API) functions to a client via a network. The server may receive capability information from the client, allowing the virtual display driver to resolve differences between the APIs supported on the server and the client.

## Claims

### Claim 1

A server apparatus for providing cross-platform remote access to 3D graphics applications, the server apparatus comprising:
memory for storing a server application;
a communication interface for receiving a request sent over a communication network from a client device regarding the server application;
a processor for executing instructions, wherein execution of the instructions by the processor:
initiates the server application in response to the client request, wherein the initiated server application invokes a graphics call to a server 3D library;
determines that the graphics call to the server 3D library makes use of only two dimensions; and
encodes the graphics call invoked by the initiated server application, wherein the graphics call determined to make use of only two dimensions is converted into a two-dimensional command; and
wherein the communication interface transmits the encoded graphics call to the client device via the communication network.

### Claim 2 (depends on 1)

The server apparatus of claim 1, wherein memory further stores the server 3D library and wherein the server 3D library comprises graphics functions corresponding to graphics functions in a 3D library at the client device.

### Claim 3 (depends on 1)

The server apparatus of claim 1, wherein the communication interface further exchanges capability information regarding the graphics capability with the remote client, the capability information comprising information regarding a 3D library at the client device.

### Claim 4 (depends on 3)

The server apparatus of claim 3, further comprising a server virtual display driver configured to receive the capability information and to encode graphics calls for the client device based on the client 3D library in the capability information.

### Claim 5 (depends on 4)

The server apparatus of claim 4, wherein the server virtual display driver maintains a central repository of capability information regarding the client device.

### Claim 6 (depends on 4)

The server apparatus of claim 4, wherein the server 3D library is configured to query the server virtual display driver to determine capabilities of the client device.

### Claim 7 (depends on 4)

The server apparatus of claim 4, wherein the server virtual display driver is configured to distinguish between platform-specific graphics calls and cross-platform graphics calls.

### Claim 8 (depends on 3)

The method of claim 3, wherein the processor encodes the graphics call in accordance with the capability information regarding the client 3D library available on the remote client device.

### Claim 9

A method for providing cross-platform remote access to 3D graphics applications, the method comprising:
storing a server application in memory;
receiving a request over a communication network from a client device to access the server application;
executing instructions on a processor, wherein execution of the instructions by the processor:
initiates the server application in response to the client request, wherein the initiated server application invokes a graphics call to a server 3D library;
determines that the graphics call to the server 3D library makes use of only two dimensions; and
encodes the graphics call invoked by the initiated server application, wherein graphics calls determined to make use of only two dimensions are converted into a two-dimensional command; and
transmitting the encoded graphics call over the communication network to the client device.

### Claim 10 (depends on 9)

The method of claim 9, further comprising storing the server 3D library in memory and wherein the server 3D library comprises graphics functions corresponding to graphics functions in a 3D library at the client device.

### Claim 11 (depends on 9)

The method of claim 9 further comprising exchanging capability information over the communication network regarding the graphics capability with the remote client, the capability information comprising information regarding a 3D library at the client device.

### Claim 12 (depends on 11)

The method of claim 11, further comprising receiving the capability information at a server virtual display driver and encoding graphics calls for the client based on the client 3D library in the received capability information.

### Claim 13 (depends on 12)

The method of claim 12, further comprising maintaining a central repository of capability information regarding the client device via the server virtual display driver.

### Claim 14 (depends on 12)

The method of claim 12, further comprising the server 3D library querying the server virtual display driver to determine capabilities of the client device.

### Claim 15 (depends on 12)

The method of claim 12, further comprising distinguishing between platform-specific graphics calls and cross-platform graphics calls via the server virtual display driver.

### Claim 16 (depends on 11)

The method of claim 11, wherein the processor encodes the graphics call in accordance with the capability information regarding the client 3D library available on the remote client device.

### Claim 17

A system for providing cross-platform remote access to 3D graphics applications, the system comprising:
a client device comprising:
memory for storing a client 3D library comprising a set of graphics functions available to the client device and a client application executable to emulate a user interface of a remote server application; and
a communication interface for sending a request to access the server application; and
a server comprising:
memory for storing the server application;
a communication interface for receiving the request from the remote client device to access the server application;
a processor for executing instructions, wherein execution of the instructions by the processor:
initiates the server application in response to the client request, wherein the initiated server application invokes a graphics call to a server 3D library;
determines that the graphics call to the server 3D library makes use of only two dimensions; and
encodes the graphics call invoked by the initiated server application, wherein graphics calls determined to make use of only two dimensions are converted into a two-dimensional command; and wherein the communication interface transmits the encoded graphics call to the remote client device.

### Claim 18 (depends on 17)

The system of claim 17, wherein the server memory further comprises the server 3D library, and wherein the server 3D library comprises graphics functions corresponding to graphics functions in a 3D library at the client device.

### Claim 19 (depends on 17)

The system of claim 17, wherein the communication interface further exchanges capability information regarding the graphics capability with the remote client device, the capability information comprising information regarding a 3D library at the client device.

### Claim 20 (depends on 19)

The system of claim 19, wherein the server further comprises a server virtual display driver configured to receive the capability information and to encode graphics calls for the client based on the client 3D library in the capability information.

### Claim 21 (depends on 20)

The system of claim 20, wherein the server virtual display driver maintains a central repository of capability information regarding the remote client device.

### Claim 22 (depends on 20)

The system of claim 20, wherein the server 3D library is configured to query the server virtual display driver to determine capabilities of the remote client device.

### Claim 23 (depends on 20)

The system of claim 20, wherein the server virtual display driver is configured to distinguish between platform-specific graphics calls and cross-platform graphics calls.

### Claim 24 (depends on 19)

The system of claim 19, wherein the processor encodes the graphics call in accordance with the capability information regarding the client 3D library available on the remote client device.

### Claim 25

A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor to perform method for providing cross-platform remote access to 3D graphics applications, the method comprising:
storing a server application;
receiving a request from a client device to access the server application;
initiating the server application in response to the client request, wherein the initiated server application invokes a graphics call to a server 3D library;
determining that the graphics call to the server 3D library makes use of only two dimensions;
encoding the graphics call invoked by the initiated server application, wherein graphics calls determined to make use of only two dimensions are converted into a two-dimensional command; and
transmitting the encoded graphics call to the client device.
