ECCO

ECCO is a feature-oriented and distributed configuration management and version control system. It makes features, artifacts, traces and variants to first class citizens.

Slides: ecco_slides.pdf

ECCO has many use cases:

Images

This example uses six variants of an image to illustrate ECCO.

Variant 1
Variant 1

person purple shirt

Variant 2
Variant 2

person striped shirt

Variant 3
Variant 3

person purple shirt jacket

Variant 4
Variant 4

person purple shirt jacket glasses

Variant 5
Variant 5

person striped shirt jacket glasses

Variant 6
Variant 6

person striped shirt jacket hat

Given these six variants ECCO automatically computes traces.

Trace 1
Trace 1

person

Trace 2
Trace 2

purple shirt

Trace 3
Trace 3

striped shirt

Trace 4
Trace 4

jacket

Trace 5
Trace 5

glasses

Trace 6
Trace 6

hat

Using these traces ECCO can then compose new variants of the image with a given set of features.

Composed Variant 1
Composed Variant 1

person purple shirt glasses

Composed Variant 2
Composed Variant 2

person purple shirt glasses hat

Simple 3D Models

STEP models.

Robot Variant 1: Normal Arm, Normal Base

3D Variant 1: Right Cube

The first variant of the 3D model shows a simple cube.

Robot Variant 2: Normal Arm, Greater Base

3D Variant 2: Right Cube, Left Cube

The second variant of the 3D model shows two cubes.

Robot Variant 3: Smaller Arm, Normal Base

3D Variant 3: Right Cube, Cylinder

The third variant of the 3D model shows a cube and a cylinder.

Robot Variant 3: Smaller Arm, Normal Base

3D Variant 4: Right Cube, Left Cube, Cylinder

The newly composed fourth variant of the 3D model contains both cubes and the cylinder.

Robot 3D Models

Robot is a set of initially three variants of a 3D CAD model of a simple robot.

Robot Variant 1: Normal Arm, Normal Base

Robot Variant 1: Normal Arm, Normal Base

The first variant of the robot features a normal sized base and arms of equal length.

Robot Variant 2: Normal Arm, Greater Base

Robot Variant 2: Normal Arm, Greater Base

The second variant of the robot features a greater sized base and arms of equal length.

Robot Variant 3: Smaller Arm, Normal Base

Robot Variant 3: Smaller Arm, Normal Base

The third variant of the robot features a normal sized base and one shorter arm.

The file format of these variants is STEP. There is currently no plugin for ECCO that supports STEP. However, a plugin exists that applies grammar inference to automatically derive a grammar and construct an ECCO model from sample files. The following shows that ECCO in combination with this plugin already produces useful results even in cases where no specific plugin for certain file types exists. With the first three robot variants as input ECCO can automatically compose a new fourth variant. With a dedicated plugin written specifically for STEP files the result could be improved.

Robot Variant 4: Greater Arm, Smaller Base

Robot Variant 4: Greater Arm, Smaller Base

The newly composed fourth variant of the robot features a greater sized base and one shorter arm.

Source Code

Java source code of a simple draw application.

Robot Variant 4: Greater Arm, Smaller Base Robot Variant 4: Greater Arm, Smaller Base

Draw Variant 1: Canvas, Line, Wipe

The first variant of the drawing application that supports a basic drawing canvas, drawing lines and wiping the canvas clean.

Robot Variant 4: Greater Arm, Smaller Base Robot Variant 4: Greater Arm, Smaller Base

Draw Variant 2: Canvas, Line, Color

The second variant of the drawing application that supports a basic drawing canvas, drawing lines and choosing a color to draw with.

Robot Variant 4: Greater Arm, Smaller Base Robot Variant 4: Greater Arm, Smaller Base

Draw Variant 3: Canvas, Line, Rectangle, Color

The third variant of the drawing application that supports a basic drawing canvas, drawing lines and rectangles, and choosing a color to draw with.

Newly composed variant initially is incomplete.

Robot Variant 4: Greater Arm, Smaller Base Robot Variant 4: Greater Arm, Smaller Base

Incomplete Draw Variant 4: Line, Rectangle, Wipe

The newly composed, incomplete fourth variant of the draw application.

Fixed new variant.

Robot Variant 4: Greater Arm, Smaller Base

Complete Draw Variant 4: Line, Rectangle, Wipe

The newly composed, complete fourth variant of the draw application.