Patent ID: 8035636

Claim:
A non-transitory computer-readable storage medium comprising program instructions, wherein the program instructions, if executed by a computer system, cause the computer system to: receive a request for graphics data from a first client system via a network, wherein the request includes client description data that describes capabilities of the first client system including: physical constraints of the first client system; a type of graphics rendering supported by the first client system; and a network connection bandwidth of the first client system, wherein the type of graphics rendering support indicates whether or not the first client system has graphics accelerator support for graphics rendering, wherein the request also includes a current viewing position and a current viewing direction of a virtual viewer within a 3D virtual world, wherein the current viewing position and the current viewing direction correspond to a user of the first client system, wherein the computer system and the first client system are distinct computer systems configured to communicate through the network; access the graphics data from a first scene graph in response to receiving the request; operate on the accessed graphics data to obtain resultant graphics data, wherein said operating includes compiling the accessed graphics data to obtain compiled graphics data, wherein the compiled graphics data occupies less memory space than the accessed graphics data, wherein said operating includes performing a first additional operation in response to a determination by the computer system that the compiled graphics data is not within the capabilities of the first client system as indicated by the client description data, wherein the first additional operation includes removing nodes from the compiled graphics data that are not visible relative to the current viewing position and the current viewing direction to obtain view-limited compiled graphics data, wherein said removing nodes from the compiled graphics data comprises traversing the compiled graphics data according to a traversal order determined by an application executing on the computer system; transmit the resultant graphics data to the first client system; receive a view information update from the first client system via the network, wherein the view information update includes an update to the current viewing position and/or an update to the current viewing direction of the virtual viewer; in response to receiving the view information update, generate a subgraph update that includes nodes to be added to the view-limited compiled graphics data and specifications of nodes to be removed from the view-limited compiled graphics data; and send the subgraph update to the first client system via the network.