Introducing CEML

Introducing CEML, the world’s first system for scripting group dynamics and civic logistics.

CEML, the Coordinated Event Markup Language. The only scripting language which allows you to, say, rapidly divide a stadium worth of people into six person teams with different roles and assignments. Here’s an example script:

“a citizen investigation”
takes 20m
involves 1 photographer, 1-2 interviewers, 1-3 reporters, 1 topic, 1 location
offers connection inclusion democracy adventure

link photographer ==> others {
askfor clothing: What are you wearing? (so the others can recognize you?)
}

tell photographer {
go to |location|. the other members of your team will find you.
research |topic| by taking photos and sending them back to this number.
do this for |duration|
}


tell interviewers {
go to |location| and find someone wearing |clothing|. that’s your photographer.
your assignment is to interview people to research |topic|
do this for |duration|
}


tell reporters {
go to |location| and find someone wearing |clothing|. that’s your photographer.
your assignment is to to research |topic| and send back textual reports
do this for |duration|. good luck!
}

Running this script from the Groundcrew Viewer will actually cast people for the different roles, have them report and exchange information via text message, connect them up, and then gather the resulting reports into a handy RSS feed which you can syndicate out to your site, or use to build a compelling narrative.

If you run the script on a large crowd, it will automatically divide respondents into teams of the right size, and even hook up the stragglers. It responds fluidly to cancelations and problems that come up, and will pass them up to relevant organizers for personal attention.

Organizing has never been this easy, or this creatively flexible.

Here’s another script, simple and more fun:

“a high five”
takes 2m
offers connection inclusion
involves 1 mobile_agent, 1 stationary_agent, 1 streetcorner

link stationary_agent ==> mobile_agent {
askfor clothing: What are you wearing (so the other person can recognize you)?
}

tell stationary_agent {
mill around at |streetcorner|
a stranger will approach you and give you a high five
when that happens nod and run in the direction they came from
find some trash and clean it up
}


tell mobile_agent {
go to |streetcorner| and
find someone wearing |clothing|
give them a high five
nod, and keep walking around the corner
}