Configure Model Architecture
Use Model Architecture to configure models that combine system dynamics, Agent Modules, discrete events, or independent time scales. Open it from the Model menu. A standard system-dynamics project keeps the ordinary canvas workflow until a methodology capability is enabled or inferred.
Choose a module role
A Module can remain a visual group or become an executable module:
- SD Submodel for a system-dynamics subsystem
- Agent Population for a dynamic population of agents
- DES Process for discrete-event behavior
- Hybrid Orchestrator for coordinated multi-method models
Executable modules display their method and clock on the canvas. Continuous modules can use Euler, RK2, or RK4 and set a local integration step.
Configure clocks and ports
Clocks
Give every independent clock a stable name and choose one timing rule:
- Fixed cadence
- Explicit activation times
- Calendar dates
Ports and exchanges
Use ports to expose a variable, array element, population value, event value, or shared value. Connect ports with an exchange time and a resampling policy such as sample-and-hold, linear interpolation, interval sum, or interval mean.
Configure an Agent Population
An Agent Population Module owns a dynamic Agent dimension. Configure it in the contextual inspector.
- Set initial active agents, allocated capacity, and the Agent Clock.
- Add child Stocks for persistent state and child Auxiliaries for derived fields.
- Select a child Stock, Auxiliary, or connected Per-Agent Flow to write its Equation.
- Add initialization or recurring behavior only when an equation is not the right model representation.
- Configure optional space, networks, and an appearance graphic.
Fields and flows
Child Stock equations provide per-agent initial values. Child Auxiliary equations provide derived attributes. A Per-Agent Flow must target a State Stock in the same module; its Equation is the net change applied at each Agent Clock activation.
Connect fields on the canvas to make their dependencies explicit. Connected Attributes refresh in dependency order before advanced rules, and Per-Agent Flows commit afterward.
Initialization and behavior
Use Add Initialization for one-time work, such as creating links, moving agents, or scheduling events. Use Add Behavior Rule for recurring movement, spawn/remove actions, events, and network mutation.
Each field has an Initial value expression. Choose a uniform value, random uniform or normal distribution, agent index, agent count, or an index-based linear expression. The same expression rules apply to agents created during a run.
AGENTINDEX
UNIFORM(min, max)
NORMAL(mean, stddev)
Without an initializer seed, each run uses a fresh random sequence. Set a seed when you need repeatable assignments.
Categories, space, and networks
For categorical fields, Randomized category percentages and Randomized category counts assign exact quotas after a deterministic shuffle. Enter one comma-separated value per category, for example 0.4, 0.6 or 58, 86.
- Percentages must total
1. - Counts must total the initial population.
- Optional comma-separated labels appear in Agent Map legends and hover details.
Space can be continuous 2D or a grid with clamp, wrap, reflect, or remove boundaries. Choose a random, grid, ring, or clustered initial layout. Networks can be directed or undirected, weighted, static or dynamic, and start empty, ring, lattice, random, scale-free, small-world, or spatial-radius topology.
Appearance and Agent Maps
Use Create Agent Appearance or choose an existing Graphic in the Module’s Appearance picker. The Graphic remains reusable on the canvas while its shape or image, aspect ratio, fill, stroke, border, and opacity become the Agent Map symbol.
Choose Color by field to tint the symbol from captured agent state. Enable Show Hover Tooltip to inspect position and attributes; enable stable IDs when needed. Click an agent on an Agent Map, or select its stable ID in the plot inspector, to open Individual Agent details at the current playhead.
Configure discrete-event behavior
Stocks and Flows retain their familiar canvas shapes while taking optional Queue, Resource, Arrival, Service, Route, Transfer, or Departure roles.
- Named events can have typed numeric payloads and one-time, interval, explicit, or distribution schedules.
- Queues support FIFO, LIFO, and priority ordering, finite capacity, balking, and reneging.
- Resources support capacity schedules and seize/release behavior.
- Processes configure duration, required resources, and conditional or weighted destinations.
Lower priority numbers execute first.
Expose results through model variables
Create an Auxiliary, Stock, or Flow and use a methodology query in its equation. These scalar variables use the ordinary Series editor and can be combined with other equations before plotting.
AGENTCOUNT("Agent Module")
AGENTMEAN("Agent Module", "Field", "Element")
EVENTCOUNT("Event")
QUEUELENGTH("Queue")
RESOURCEUTILIZATION("Resource")
CLOCKCOUNT("Clock")
PORTVALUE("Module.Port")
SHAREDVALUE("Shared Value")
NETWORKMEANDEGREE("Network")
AGENT is the public spelling for Agent Modules. POPULATION remains available only for compatibility with older Native Fast v2 projects.
Choose structured views when needed
Use scalar model variables for ordinary Canvas and Interface plots. Select methodology data directly only for structured views:
- Agent Maps and density views use agent snapshots.
- Event-log and queue tables use records.
- Network views use graph frames.
- Timeline uses clock, event, queue, or resource intervals.
These plot settings appear as Methodology Data Source, not as scalar Series.
Run and inspect the model
Action buttons can step to the next activation or event, run to a timestamp, schedule an event, inject a payload, spawn an agent or entity, and reset a module.
Runs with Agent Modules retain complete timestamped agent, event, network, queue, and resource history independently of configured plots. Visual previews may reduce on-screen samples for responsiveness without changing the saved source history.
Related topics
Yano Simulator Help — Version 0.2.0, Build 20260809