An overview of MobiNet

Back to the main page


Left: General view of the screen. All the objects in the scene are mobiles, even when motionless. Middle and right: closeup on each interface elements controlling a given mobile.

A: The first row of button concerns loading and saving of the current session. The rest of this panel controls network sharing of mobiles. The user can choose whether he wants to interact with the exported mobiles of each MobiNet client running on the network (the user can also choose which of his mobiles he wants to export).

B: This panel contains all the user interface elements related to mobile creation. Mobiles can be added, deleted, duplicated, saved and loaded. The current mobile is chosen through a list or navigation buttons.

C: This panel displays the values of the state variables for the current mobile. These values can be directly edited, and are updated when the mobile is running. The state variables controlling the drawing of the mobile are its position (x,y), its angle (angle), its width and height (haut, larg), its visible state (visible), its shape (icone) and its color (couleur). There exists supplemental all-purpose state variables: dx, dy (editable) and mem1 ... mem4 (hidden). The export state (export) determines whether a mobile is accessible on the network. All the state variables can be modified either by program or by editing their values in this panel.

D: This panel contains the program for the motion of the mobile, which is executed at each time step (about 60 times per second). For an example entering x : x + 1 would make the mobile go in straight line along the x axis. Attributes of other mobiles can be accessed (e.g., x3, or x3@post4 through the network). The language (in English or French) allows classical algorithmic but loops. Its syntax is adapted to high-school notations.

E: These four text regions contain the programs executed when the mobile hits one of the screen borders. By default nothing is done (mobiles can escape the screen). Bouncing (for instance) can be programmed: assuming the state variable dx is used to store the motion direction (i.e., the motion equation is x : x + dx ), a simple bouncing collision program could be dx : -dx.

F: This panel contains the program executed when a mobile collides with another mobile. Again, any behavior must be explicitly programmed: by default nothing happens (mobiles pass through each other).

G: This panel contains the program executed when a mobile starts (i.e. when the start button (see panel C) is pressed, or triggered by another mobile program). The start program is useful to initialize mobile state variables.