A computer implemented method for remote graphics rendering of visual data in a client-server system with a client and a server, comprising: performing a survey of the client-server system at the server to determine rendering capabilities of the server and rendering capabilities of the client; determining a server-side cost for performing server-side rendering of the visual data; determining a client-side cost for performing client-side rendering of the visual data; comparing the server-side cost to the client-side cost; determining, at the server, whether rendering of the visual data is to be performed by the server or the client based on the comparing of the server-side cost to the client-side cost; when the rendering of the visual data is determined to be performed by the server based on the server-side cost being less than the client-side cost: rendering graphics data associated with the visual data at the server to generate video data; and transmitting the video data by the server to the client; and when the rendering of the visual data is determined to be performed by the client based on the client-side cost being less than the server-side cost: generating graphics data associated with the visual data at the server; and transmitting the graphics data to the client, wherein the graphics data is rendered by the client. performing a survey of the client-server system at the server to determine rendering capabilities of the server and rendering capabilities of the client; determining a server-side cost for performing server-side rendering of the visual data; determining a client-side cost for performing client-side rendering of the visual data; comparing the server-side cost to the client-side cost; determining, at the server, whether rendering of the visual data is to be performed by the server or the client based on the comparing of the server-side cost to the client-side cost; when the rendering of the visual data is determined to be performed by the server based on the server-side cost being less than the client-side cost: rendering graphics data associated with the visual data at the server to generate video data; and transmitting the video data by the server to the client; and when the rendering of the visual data is determined to be performed by the client based on the client-side cost being less than the server-side cost: generating graphics data associated with the visual data at the server; and transmitting the graphics data to the client, wherein the graphics data is rendered by the client. rendering graphics data associated with the visual data at the server to generate video data; and transmitting the video data by the server to the client; and when the rendering of the visual data is determined to be performed by the client based on the client-side cost being less than the server-side cost: generating graphics data associated with the visual data at the server; and transmitting the graphics data to the client, wherein the graphics data is rendered by the client. generating graphics data associated with the visual data at the server; and transmitting the graphics data to the client, wherein the graphics data is rendered by the client.