Current Status

From Solipsis

This page is out of date.

Node

The node has been completely rewritten with Twisted Python. The Solipsis protocol implementation is complete, operational and a few robustness features have been added (timeouts and retries); basic XMLRPC support is included. Overall, the rewrite extends to ~90% of the code. There is some legacy code here and there.

Several benefits of this rewrite:

  • geometry routines are now much more efficient
  • useful primitives have been added for timers and periodic tasks
  • everything is single-threaded (event driven): no more synchronization issues to think about
  • overall, the node seems 3 to 5 times faster than the previous version
  • because the Twisted event loop is generic, we can launch many nodes in the same thread (the "pool" option): it makes it possible to host more nodes on a single machine (for example we can launch 100 static bots with only 5 processes)
  • less lines of code (an important goal)

Some features:

  • modular IP address discovery (either through STUN, or ##gethostname()##-based)
  • modular remote control (currently only XMLRPC is implemented)
  • various timeouts and retries to avoid being stuck in an unstable state
  • several controllers at once are possible (XMLRPC or others)

The node and the navigator have been briefly tested under Windows. They both work.

Navigator

An alpha draft of the navigator exists. It only allows to connect and move in the world. Its main interest at the moment is to showcase the wxWindows + XMLRPC (Twisted) integration, the possibility of smooth animation with wxPython, and be able to visualize the Solipsis topology. It also has HTTP proxy support, so as to drive nodes from the inside of a closed corporate network.

Support for pluggable services is built into the navigator.

related web sites