Skip to content
An API to visualize how Coherent Agents (Cogents) interact with one another on Grid, Network, or 2D-Space contexts.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A research project done at Auburn University under the supervision of Dr. Levent Yilmaz. The Cogent Visualization Tool depicts how Coherent Agents (Cogents) interact with one another in a given Context.

The Cogent Visualization Tool (CVT) will depict how Coherent Agents (Cogents) interact with one another in a given Context. The objective is to create a user-friendly API which is easily modified. The CVT will support multiple Cogents and will consider each as a “black box”, meaning the CVT cannot manipulate them or understand certain decisions they make to alter the Context. However, the CVT will accept commands from the user such as “move to” and “who are my neighbors within a certain proximity”. A Cogent will also be able to access these commands. A wrapper class will contain the Cogent as well as a visual component to be placed on the Context. The visual component will consist of a circular object which contains an identifying label. Multiple color schemes will be available which will represent information about regions of the Context. If desirable, the color schemes can be set dynamically during execution by the user to represent some other quality. Color schemes can also be layered on top one another. Adding additional color schemes can be easily implemented by the user. There will be three different types of Contexts: (I) a two-dimensional Grid, (II) a two-dimensional Space and (III) a two-dimensional Network.

(I) Two-dimensional Grid: The Grid contains Cells of variable size. All Cells will be the same size but are modifiable before runtime. The Grid will be determined by the Cell size, how many Cells are in the horizontal dimension and how many Cells are in the vertical dimension. Therefore, a Grid can be of any rectangular shape. The Grid will support unbounded edges. Meaning, the Cogent will be able to traverse off the edge and relocate on the opposing edge—simulating a disk-shaped infinite Grid. The Grid will support multiple color schemes. One color scheme will determine a Cell’s color based on population density. Another will determine a Cell’s color based on an attribute of the inhabiting Cogents.

(II) Two-dimensional Space: The Space is restricted solely by a predefined width and height. Locations on the Space are (x, y) coordinates. A coordinate can only contains a single Cogent. The size of the Space can be set before runtime and will be constant throughout the lifetime of the CVT. Similar to the Grid Context, the Space Context also supports unbounded edges and can be set to any rectangular shape. However, color schemes are more limited. The background color will be consistent throughout the entire Space and the Cogent color can be set to represent a characteristic.

(III) Two-dimensional Network: The Network will represent Cogents as vectors and any connections between them as links between vectors. The Network will resemble a graph. The links will be representations of a chosen attribute and change dynamically. The user can also change which attribute is represented by connections. Each Cogent will have an unlimited number of connections to adjacent Cogents. Multiple connection types will be supported and use different colors to represent the different information. The color schemes available for the Network will be similar to the Space Context. Their placement on the Context is limited as their relative locations are meaningless. The Network will not support unbounded edges.

In all Context types, the user may add or remove Cogents dynamically. The user will be able to designate where Cogents belong at initialization or during execution. Any alteration to the Context (by Individual Cogents or by the user) will result in the Context being redrawn to represent the change. If the user specifies the size of the Context to be larger than the size of the Computer screen’s resolution, then the CVT will place the Context within a scrollable-view so the user may span the entire Context.

You can’t perform that action at this time.