ECITON-R ant logo
ECITON-R / Swarm Lab
← Project websiteResearch workspace
Initializing simulatorLoading the Python runtime in this browser.
Native PythonDisconnectedConnecting to the local service

Open field

Paused
⌖ ARENA 1000 × 640 u
ExploringSeeking / workingTask
Click a robot to see its world.
00:00.0LIVE · seed 42
Tasks completed ◇0 / 6
—
Message delivery ↗—Unique deliveries / admitted sends
Communication cost ⇄0 KB
0 pending0 lost
Serialized bytes including metadata
Mean energy left ϟ100%
Illustrative movement + sending cost

Local batches

Freeze an experiment, review its manifest, then explicitly start it. Closing this tab does not cancel a running batch. After service restart, reconnect and inspect retained jobs; continuation is always explicit.

New experiment

These values are experimental parameters. This request is separate from the interactive arena. Use the planner's setup, settings, sweep and condition fields for custom experiments.

Retained jobs

Python runs locally with your account's permissions; it is not a security sandbox. Trust must be renewed for every Python launch. Continue restarts unfinished runs from their frozen initial state, not mid-run. Admission receipts, advisory progress, artifact integrity and research validity are separate.

Python behavior

Write decide(observation, parameters). Each robot gets its own local observations. Return a heading, a known task, and whether to communicate.

Python · this browser sessionPython

Policy inputs

observation["self"]

ID, x, y, heading, energy

observation["neighbors"]

Nearby sensed robots

observation["tasks"]

Locally known tasks and how they were discovered

parameters["wander"]

All current slider values

Policy output

{
 "heading": radians,
 "task_id": "T1", # or None
 "communicate": True,
 "reason": "Why this action"
}

Motion rules in this function replace preset steering. The simulator still handles walls, energy and message admission.

Python runs in this browser tab. Apply code you trust. Save a scene to keep your policy and setup; refreshing clears the current session.

Map & workload

Dimensions use abstract units. Generation replaces the scene and keeps its starting area clear.

Arena
Robot starting area
Conditions
Task arrivals

Applying starts a new run and clears this tab’s timeline. Save or export the current run first if needed.

Edit task

Leave deadline or work blank to remove that requirement. Deadlines use simulation time.

Using Swarm Lab

01

Run controls

Run or pause the simulation. Step advances one simulation tick. Network settings control the communication method and message constraints.

02

Change the environment

Drag to draw walls or circular condition zones. Click to place a task. Editing pauses the run so you can make a precise change.

03

Robot inspection

Select a robot. Read its current decision, capability, coordination state and known tasks. Robot knowledge shows the selected robot’s records and contact-supported coordinator.

04

Record and review runs

Scrub recent history to inspect an earlier moment. Export run keeps configuration, edits, metrics, event records and a reproducibility manifest. Save scene keeps the setup.

What this model means

Map exploration is an opt-in single-rover experiment. The rover observes occupancy cells and plans through observed free cells toward a frontier or known task. Unknown space stays unknown. Localization is assumed in a shared simulator frame; this is not SLAM. Reset and reboot clear this volatile map. Geometry stays fixed during mapped runs.

Movement is an abstract host-robot adapter. It avoids walls but does not model robot dynamics or guarantee collision-free robot-to-robot navigation. Weather and capability profiles are declared illustrative models.

Task allocation can use cooperative work or expiring local claims; robots in a partition may temporarily claim the same task. Gossip and aggregate forwarding carry bounded, versioned task state. A Regional Coordinator is elected within each robot’s fresh direct-contact group for a finite term, so separate partitions may elect separately.

Radio geometry shows physical link eligibility. Message-based discovery learns directed contacts from delivered heartbeats and expires them after the configured timeout. Temporary leadership also enables addressed heartbeats when discovery is otherwise inactive. Scheduled radio outages stop sends and receives while movement and sensing continue. “Only when knowledge changes” is best effort and does not retry a lost unchanged update.

Delivery = accepted unique frames / admitted sends, including sends still pending. Byte allowance resets every simulated second; gossip and aggregate updates have their own per-robot budget. Energy is an arbitrary allowance, not joules. All settings and canvas units are experimental parameters.

Space Run / pauseN One step1–5 Arena tools? This guide