A projection is a set of connections from the output ports of entities of a source population to the input ports of entities of a destination population. Figure 6 illustrates the basic idea.
The canonical way to specify a set of connections is to provide a set of tuples: (source entity, source port, dest entity, dest port, delay). But the set of connections to make will often depend on the relative distance between entities, or other parts of their state.
The general way to define a projection is to provide a source method to say which entities of the destination population each member of the source population may want to connect to, and a destination method to say which of the connection requests should be fulfilled at the far end. Figure 7 provides two examples of this style of connection. This technique can be used to provide GENESIS's volumeconnect style distance/probability based connections between populations of entities. If the source and destination methods can be written in the script language, more general connection patterns than volumeconnect are possible.