Difference between revisions of "About Numerus Model Builder"
Line 19: | Line 19: | ||
* Multi-layer architecture. | * Multi-layer architecture. | ||
* Component set containing stocks, flows, etc. for constructing dynamic systems models. | * Component set containing stocks, flows, etc. for constructing dynamic systems models. | ||
* Container components for | * Container components (CellMatrix, AgentVector, etc.) for constructing spatial and agent-based models. | ||
* | * ''Clocked chips'' implementing synchronous timing subdivision. | ||
* | * ''Code chips'' implementing coded extensions to the component set. | ||
* Script-based runtime using an extension of Javascript. | * Script-based runtime using ''NovaScript'', an extension of Javascript. | ||
* Large set of primitive operators. | * Large set of primitive operators. | ||
* Implements topologies for cellular and network-based environments that may contain moving agents. | * Implements topologies for cellular and network-based environments that may contain moving agents. | ||
* Includes cellular topology based on hexagonal neighborhoods. | * Includes cellular topology based on either Cartesian or hexagonal neighborhoods. | ||
* Plug-in framework supporting user-defined components | * Plug-in framework supporting user-defined components |
Revision as of 20:27, 19 June 2018
Numerus Model Builder (formerly Nova) is a Java-based modeling platform that naturally supports the creation of models in the system dynamics, spatial and agent-based modeling paradigms in a single desktop application. Numerus uses a visual language to express model design, and provides automatic conversion for such models to script form for execution. Numerus's architecture promotes hierarchical design, code reuse, and extensibility through the use of plug-ins.
Numerus is fundamentally a dynamic modeling system that is extended through hierarchical design to express spatial and agent-based architectures. A Numerus model can be built using the visual language, and then by using its capture function be automatically converted into a runnable script for immediate execution, or possible deployment over a network or on a supercomputer. Numerus focuses on the creation of a modular unit called a capsule. Each capsule is a complete model that interacts with its environment through an interface consisting of input and output channels. The simplest capsule might contain a stock-and-flow model similar to one built in Stella. However, capsule instances (called chips) may appear in other capsules (as long as there is no circularity), communicating with their hosts through their I/O channels. Each chip introduces into its host the functionality of that chip’s encapsulated model. Capsules may also be exported and reused in other projects.
The chip is one type of container. Spatial and agent-based models are constructed using array-like containers called aggregators. The current implementation provides five aggregator types:
- AgentVectors are one dimensional arrays of agents; an agent is a capsule “wrapper” that includes a representation for location and movement within a two dimensional space. Agentvectors also manage dynamic creation and destruction of agents.
- CellMatrices are two dimensional arrays of capsules. They provide a means for representing cellular automata. Cellmatrices may implement either a cartesian or hexagonal topology.
- NodeNetworks are an array of graph nodes with weighted directed connections. Click here for an example of using a NodeNetwork.
- SimWorlds combine Agentvectors with Cellmatrices, so that agent locations correspond to matrix coordinates. The result is a virtual space of interacting agents and cells.
- NetWorlds are analogous to SimWorlds substituting a NodeNetwork for a CellMatrix as the space in which the agents operate.
Numerus's computational architecture is built to implement the semantics of NovaScript, a scripting language embedded in Javascript. The NovaScript runtime environment is an extension of the ECMA 1.7 Javascript standard. All Numerus simulations are actually NovaScript programs executing on the NovaScript runtime interpreter.
Features
- "Canvas" for visual model design using a component set.
- "Dashboard" for presentation of controls and visualizing components.
- Cross-platform: runs on Mac, Windows and Linux.
- Multi-layer architecture.
- Component set containing stocks, flows, etc. for constructing dynamic systems models.
- Container components (CellMatrix, AgentVector, etc.) for constructing spatial and agent-based models.
- Clocked chips implementing synchronous timing subdivision.
- Code chips implementing coded extensions to the component set.
- Script-based runtime using NovaScript, an extension of Javascript.
- Large set of primitive operators.
- Implements topologies for cellular and network-based environments that may contain moving agents.
- Includes cellular topology based on either Cartesian or hexagonal neighborhoods.
- Plug-in framework supporting user-defined components