We are releasing Nanoverse in stages. At each interval, we will evaluate our capabilities against the demonstrated needs of our target early adopters: the scientific community. If you feel that a particular feature should be prioritized, we encourage you to get in touch.
The first release of Nanoverse is a fully functioning prototype. This version supports agents with up to two attributes and an unlimited number of behaviors, as well as continuum-valued layers with numerical integration. A number of pre-defined visual and textual reports are included.
Agent-based models are often very slow, because simulation time advances in fixed increments. By comparison, discrete-event models can fast-forward to the next meaningful change. v0.7.0 introduces an event scheduler that turns agent-based models into discrete-event models, speeding simulations up exponentially. This is accomplished through a kind of Monte Carlo algorithm originally developed for chemistry.
Starting in v0.8.0, Nanoverse grammar will be standardized. This will make the language easier to for people to learn (and computers to test). CFG will also make Nanoverse much easier to document. Context-free grammar paves the way for several other features, including flexible agents and a human-readable language called "Nanosyntax."
Beginning in v0.8.0, agents can have an unlimited number of internal properties. These properties can be text (e.g., name), decimal (e.g., size), integer (e.g., age) or boolean. Agent behaviors can directly modify, or depend on, agent states. Agent states can also depend on values from other system components, including continuum-valued layers (e.g., resource concentration, altitude, etc.). Children can inherit the properties of their parents, new values derived from parental values, or entirely new values.
The official launch of Nanoverse will include a new computer language called Nanosyntax. This language is designed for expressiveness, clarity and brevity. It emphasizes declarative and functional approaches: respectively, describing what you want (instead of how to do it) and describing how something changes (rather than how to change it). The existing hierarchical language will also be supported.
Starting in v1.1.0, it will be possible to define visualizations by describing a series of visual layers, which are rendered one-on-top of the other. Each layer will be described throug a series of functional transformations of the simulation's state, such as mapping an agent property to a color or shape.
Nanoverse v1.2.0 will introduce a flexible platform for creating custom reports. These reports can capture properties of individual agents, system-level aggregate statistics, or even properties of each simulation in a repeated experiment. Like the visualization engine, the reports will be built up through a series of functional transformations.
The second version of Nanoverse will introduce a visual environment for building and exploring models through visual cues. This visual programming interface will eliminate the need for computer code altogether, allowing subject-area experts to focus their attention on the model at hand.
Prior to v3.0.0, Nanoverse will have the ability to translate Nanosyntax directly to source code in the Java computer language. In addition to providing speed and efficiency boosts, direct translation will allow users to customize their simulation beyond the limits of the Nanoverse platform, as well as to produce stand-alone products for business and entertainment.