Distributed Computing

From K-3D

Jump to: navigation, search


Currently, there are four different user interface plugins in CVS:

  • NGUI - "Next Generation User Interface" - the standard GTK+ based GUI.
  • QTUI - "Qt User Interface" - a toy GUI based on the Qt toolkit.
  • NUI - "Null User Interface" - a do-nothing UI that is useful when running scripts that don't require user interaction.
  • PYUI - "Python User Interface" - a Python command-line interface that can be used to explore the Python object model interactively.

The main observation to make is that UI plugins are K-3D's interface to the outside world, but they aren't limited to *human* interaction. So the correct way to approach this is to create a specialized user interface plugin that implements whichever protocol suits you. Writing a UI plugin that opens a socket and listens for commands would be trivial; the hard part would be designing the protocol. XML-RPC would be a good start from a standards perspective. Verse might be interesting, too, I'm just not familiar with it.

As an experiment to get started, I'd recommend using netcat in combination with the PYUI to create a K-3D "server". You could then have an application that connects to the server over a socket, and use the Python object model to execute commands and retrieve results. That way, you don't have to develop a protocol at all, and you can start to develop a feel for further requirements.