Skip to main content
These top-level functions are included as reference implementations and starting points. They are not required — you can always write your own initial data and timestep functions.
from emergent.main import genInitialData, genTimestepData

genInitialData(model)

Generates initial data for a single node. Returns a dictionary with a random integer id between 1 and 100. Args:
  • model (AgentModel) — The model instance.
Returns: dict
{"id": <random int 1100>}
Example:
from emergent import AgentModel
from emergent.main import genInitialData

model = AgentModel()
model.set_initial_data_function(genInitialData)

genTimestepData(model, nodeData)

Generates updated data for a single node by incrementing its id by 1. Args:
  • model (AgentModel) — The model instance.
  • nodeData (dict) — The node’s current data dictionary.
Returns: dict — The same nodeData dict with id incremented.
# Before: {"id": 42}
# After:  {"id": 43}
genTimestepData is a per-node function. To use it in a simulation, wrap it in a timestep function that iterates over the graph’s nodes.
Example:
from emergent.main import genTimestepData

def my_timestep(model):
    graph = model.get_graph()
    for node in graph.nodes():
        updated = genTimestepData(model, graph.nodes[node])
        graph.nodes[node].update(updated)

model.set_timestep_function(my_timestep)