Meet the Dramies

Dramies are the little agents that bring your diagrams to life. They walk, wait, get stuck, throw tantrums, and carry luggage.

🎒

Carry Luggage

Dramies carry state as "luggage" — JSON data that accumulates as they move through nodes.

😤

Show Emotions

When stuck, Dramies get frustrated. Leave them too long and they'll throw a tantrum!

🎨

Customizable

Give each Dramie a unique color and mark to track different user types or scenarios.

Dramie States & Animations

Explore all the ways a Dramie can look and feel

Color:

Default Dramie - All States

3
idle
3
walking
3
arrived
3
filling
?
3
stuck
!
3
frustrated
3
looping
3
tantrum

Direction (Walking)

Right
Left

Luggage Variations

No Luggage
1 Item
5
5 Items

Clerks

Clerks are helper characters that belong to a node. They don't represent real users. They exist only to carry requests and responses between parts of the diagram.

When a Dramie reaches a situation that depends on someone else:

  • A Clerk takes the request
  • Travels to the relevant node
  • Waits for an answer
  • Returns with the result

Think of them as old-school office messengers — calm, dutiful, and a little dramatic.

Clerks never make decisions, never choose paths, and never roam freely. They simply make dependencies visible. The destination place answers via System rules.

IdleLives in home node. No request. Calm (reading, tapping, stamping air).
Received requestRequest accepted from Dramie. Holding package. Still at home.
In transitTraveling along a path to deliver or collect. No branching.
Waiting for responseAt target node while System rules evaluate the request. Impatient / bored.
ReturningCarrying result back to home node. Deterministic path.
DeliveredHands result to waiting Dramie. Then back to Idle.

System rules

Places can own simple declarative logic: if luggage matches conditions (AND), write outputs and optionally update persistent storage.

  • Dramie — runs when a Dramie occupies the place
  • Clerk — runs when a clerk delivers luggage here
  • Both — same rule for either trigger

First matching rule wins. No scripting — just boolean conditions, outputs, and storage updates.

Guards

Guards appear at nodes that have entry requirements (`requires`). They check if a Dramie (or a Clerk-delivered request) has enough luggage to pass.

If not, they block entry and the Dramie stays stuck until the condition is satisfied.

WatchingGuard is present because the node has requirements.
!
BlockingEntry denied. Requirement is not met yet.