Reactive-C - Meije
The WeIcobj Demo (Mars 1999)
Icobj Programming on the Web

Welcome on the WEB-ICOBJ Page !

Creation Panel

WEB-ICOBJ 1.0 is now available;
Click here to execute the demo:
Démo v1.0
for Netscape
for Internet Explorer
for other Web-browsers


WEB-ICOBJ adapts Icobj Programming to the Web. Icobjs provide an extremely simple and intuitive graphical interface for programming over Internet and for building behaviors (for animations, agents, robots, etc.) without writing any code line. They are particularly well suited for combinations of small behaviors to get complex scenarios.


Generally, graphical programming systems provide graphical representations of a programming language syntax. On the opposite, Icobjs give the user the way to combine elementary behaviors in order to get more complex ones, without any reference to syntax. Actally, Icobjs are animated graphical objects (icons) having an influence area to interact with other icobjs present in it. In general, the influence area of an icobj is its graphical representation. Icobjs own specific reactive behaviors and can communicate by broadcast events. Please note that there are actually two ways for Icobjs to communicate: a local graphical way by influence areas, and a global remote way by broadcast events. Icobjs are implemented with Reactive Scripts, which give them a precise semantics. A complete description of Reactive Scripts and of the reactive paradigm can be found at

The key point of Icobj Programming is the possibility to combine elementary behaviors in a simple way, in order to get more complex ones. For example, suppose that there exists two elementary behaviors: the first one to find informations using a search engine; the other one which terminates when a time delay is over. By combining these two behaviors, one can build a more complex one, which starts a search but stops it if it takes too much time. Using Icobjs, users have an intuitive way to combine behaviors (to put them in sequence or in parallel, to make them loop, to control them, etc.) and can build small programs without real knowledge of programming. Thus, starting for a minimal set of elementary behaviors, one easily gets small, flexible, and reusable components.

The simplicity of behavior combinations comes from the graphical means provided to express parallelism and sequencing. The user can put in parallel several elementary behaviors by one simple click in a builder whose influence area overlaps them. In the same way, one gets a sequence of behaviors by successively moving a builder over them and by clicking on it. See a more precise description of this mechanism below (in definition of the "builder" Icobj).

In this document, we describe the architecture of WEB-ICOBJ, then give the bases of Icobj programming with several elementary behaviors used in the demo. 

The WEB-ICOBJInterface

WEB-ICOBJ is an applet with an embedded reactive interpretor. This reflects the two basic aspects of the system: the graphical aspect provided by the Java applet (more specifically, by Awt), and the behavioral aspect provided by the reactive engine.

The Icobj graphical environment is made of two components: the "Workspace" where Icobjs are moving, and the "Creation Panel" which contains a set of Icobjs called creators. By clicking on a creator, the user starts a new Icobj building phase. The new Icobj will be created in the Workspace.

Creation Panel

Creation Panel When the user moves the mouse cursor on a hot point in the Creation Panel, the colour of the corresponding creator changes. The creation procedure of a new Icobj in the Workspace starts when a creator is clicked in. This procedure can be more or less complex and it can possibly need some others existing Icobjs whose behaviors are cloned to be reused, or some auxiliary Icobjs.

The builder Icobj is used to define new Icobjs by combining (parallelism, sequence, loop, ...) existing Icobjs in the Workspace.
Creation Panel

This process can need some extra parameters that the user must provide in a special area, at the bottom of the Creation Panel. These informations are supplied with three check-buttons and a dialog text area.

Once the building phase finished, the new Icobj appears in the Workspace, waiting the first activation to start execution of its behavior. The Icobj color turns to red on activation to indicate that it starts to execute. When the behavior terminates, the Icobj color turns to blue; the Icobj is then inactive and does not respond to further activations.

Some Icobjs can be activated several times during their life-time, as it is the case for the planet Icobj below which increases its attraction area each time it is clicked in (beware that the attraction area does not correspond to the planet icon).

An Icobj which has terminated its behavior becomes inactive, but this does not means that it is useless: its behavior can still be used and cloned to build new Icobjs.

Icobjs in the Workspace can be moved with the mouse while the "Shift" key is down (or with the right mouse button, with Windows or X-Window). In the same way, the size of an Icobj can be changed with the mouse while the "Control" key is down (or with the middle button, with X-Window).

Some basic behaviors

Icobjs are implemented with Reactive Scripts. Actually, an Icobj behavior is a reactive script whose extern actions, between brackets, are method calls of Java objects. The interface with Java is presently very primitive: a small interpretor associates actual Java calls to external statements. As example:

loop {Out.print("coucou")} end
writes coucou on the output referenced by the Out Java object.

We now describe the main Icobjs implemented in WEB-ICOBJ.

The Extensions menu in the Creation Panel provides some new Icobjs and some demos to use them. When the user choses a package in the menu, several new creators appear in the Creation Panel and some Icobjs are installed in the Workspace. Here is the description of some extensions.
Implementation with Reactive Scripts

A demo of Icobj Programming in Java is available. It is implemented with the reactive scripts interpretor rsi-java built with SUGARCUBESwhich is a set of Java classes for the reactive paradigm.

Click here for a demo of WEB-ICOBJ 1.0 !

This product is developed in the MEIJE project, common to INRIA and CMA (Ecole Nationale des Mines de Paris), in collaboration with the Soft Mountain and France Telecom companies.

Jean-Ferdy Susini, Inria CMA/Meije, BP 93, 2004 route des Lucioles, 06902 Sophia Antipolis, France. <>