Client-server communication

Client-server communication

Unusual about the Tholos project is how client-server communication is done.
In Tholos an end-user sends an agent to the server. Once the agent has entered the universe on the server it can send back to its user what it’s seeing.

Conceptually an agent contains a shape, one or more sensors (eyes) and a means of communicating with its controller.

Technically an agent consists of a zip file with one or more java classes and an XML description file.
The xml description file tells the server which java class to run.
The agent can contain one or more canvasses on which the server can “paint” what the agent is seeing.

One of the ways in which an agent can tell the user what it’s seeing is by sending opengl commands, using glx or a glx-like encoding.


X11 is a networked windowing system. Your client and your server might be on different machines. GLX packages up OpenGL commands into network packets, spits them across the X11 network pipe, then unpacks them at the other end. This lets you run accelerated 3D remotely: the client could be a simulation on a mainframe, the display could be your desktop machine in your office. GLX does a number of other X11 related things that couldn’t be packaged into OpenGL.


The result can be displayed using webgl (