Everything you need to install, use and master CupCarbon Klaines
cupcarbon_win.bat,
cupcarbon_macm.command/cupcarbon_macx.command or
cupcarbon_linux.sh) β it starts CupCarbon from its own folder so the
utils/ resources are found.The map (OpenStreetMap tiles or offline backgrounds via the Map menu) is where you build your network. Useful interactions:
| Action | How |
|---|---|
| Add objects | press a number key (e.g. 2 for sensors) then click the map β or use console commands like add iot 25.3020 55.4855 |
| Select | click an object, or drag a rectangle; i inverts the selection |
| Change an IoT node's icon | select it and press j β an icon gallery opens |
| Radio / sensor radius | ; / , and ( ) on the selection |
| Duplicate | c on the selection |
| Map background | Map menu: OSM Light/Dark, offline backgrounds (work without internet) |
One environment per project: a project contains either IoT nodes (Python, IoT simulation) or classical WSN sensor nodes (SenScript, discrete-event simulation) β never both. The first node added defines the type, shown at the bottom-left corner of the map ("IoT" or "WSN"); every Run/Stop button and editor button then automatically targets the right simulation and the right editor.
IoT nodes run external Python scripts (or Julia/Node). Assign a script to a node
from the node panel or the Program editor (toolbar), write your logic with the
cup_* functions, then run the IoT simulation. The Program editor has
Python syntax highlighting, auto-indentation (Tab = 4 spaces, tabs highlighted in red,
one-click TabsβSpaces fix), the full function list with per-function help and examples,
and ready-made example buttons. The WSN environment has its own
SenScript editor β the same window, with SenScript highlighting and command
help β saving .csc files (extension added automatically).
Start your script with from cup_functions import * (for IDE completion β
CupCarbon injects the real implementations at simulation start).
| Category | Functions |
|---|---|
| Display | cup_print, cup_mark, cup_unmark, cup_pic, cup_visible, cup_alert, cup_message |
| Mobility | cup_move/cup_moveto, cup_speed, cup_rudder_angle, cup_routewait, cup_routestop, cup_routego, cup_route, cup_drawroutes |
| Reading | cup_getid, cup_getname, cup_getx, cup_gety, cup_getxy, cup_ismarked, cup_dsensor, cup_getmessage, cup_getaction |
| Messaging | cup_send, cup_read (node β node) |
| Agentic AI | cup_toagent(txt, chid), cup_fromagent(chid) (node β workflows) |
| Control | cup_wait, cup_stopsimulation |
from cup_functions import *
while True:
cup_mark()
cup_toagent('hello from node', 32)
answer = cup_fromagent(32)
cup_print(answer)
cup_unmark()
cup_wait(1)
cup_* functions and the agentic workflows.results/wisen_simulation.csv).add iot 25.3020 55.4855, list devices,
sim iot start⦠It is also an MQTT gateway with secure random
per-session topics: click Copy Topic and drive CupCarbon from any browser with the
Web Console,
CupCarbon Studio β and see the
CupCarbon Γ Claude page for the skills
and the MCP server or the
Web Workflow Editor.Full details, node list and the CupCarbon bridge on the Agentic AI page.
| Symptom | Fix |
|---|---|
| Map tiles don't load / project slow to open | No internet or blocked tile server: switch to an offline background (Map menu). Tile requests now time out after a few seconds. |
Python TabError |
Mixed tabs/spaces: tabs are highlighted in red in the editor β click Tabs β Spaces. |
| AI Agent answers "no rule matched" | The LLM wasn't reached: check the provider on the node, the API key (API Keys dialog; env vars take priority) and the console for the exact error. |
| IoT scripts don't start | Check the executor paths (Python must be on the PATH) and that a script is assigned to each IoT node. |
| Web pages can't reach CupCarbon | Open the Command console first (it activates MQTT), re-copy the topic (it changes at every launch), and try the ws://β¦:8083 broker endpoint if wss://β¦:8084 is blocked. |