Der Simulator besteht aus einer Bibliothek, die auf der Basis von legOS entwickelt wurde. Die Initialisierungsfunktion sim_init startet einen Thread, der die Standardeingabe überwacht. Dort ankommende Zeichenketten enthalten Informationen über Ereignisse an Sensoren, Knöpfen (Buttons) oder der Infrarotschnittstelle. Die Syntax dieser Zeichenketten wird in einem Protokoll (siehe weiter unten) definiert. Der Thread verarbeitet die Eingaben indem er interne Zustandsvariablen verändert und gegebenenfalls andere Threads, die auf ein Ereignis warten, aufweckt.
Reaktionen auf Ereignisse, z.B. Änderung der Drehrichtung eines Motors, werden auf der Standardausgabe ausgegeben. Das Format dieser Asugaben ist ebenfalls in dem Protokoll definiert.