Why Protelis? What is it?
Protelis is a programming language designed for people who want to get resilient collective behavior from a complex network of heterogeneous machines. Protelis leverages aggregate programming for applications like the Internet of Things or flocking robots. It lets you think about what you want the collection of machines to accomplish, rather than what you need each individual machine to do.
The goal of the Protelis language is to make it easier to build a resilient and well-behaved networked system out of an assortment of different potentially mobile devices. Protelis is designed for the paradigm of "aggregate programming", a way of thinking about and decomposing problems that can be solved with a network of distributed sensors and computers. Aggregate programming tries to produce reliable and robust collective behavior from uncoordinated local interactions between machines. That's hard to do, but Protelis helps!
What is it not?
Not an agent-based modeling framework
Although agent-based modeling (ABM) and aggregate programming both concern phenomena that occur when many individuals interact, they approach these phenomena in different ways. In ABM, you usually specify an individual’s behavior and interaction rules, and then simulate a collection of individuals to see what large-scale phenomena occur. In aggregate programming, you specify the desired collective action, which is then transformed into a distributed implementation for individual machines.
Not a simulation platform
Protelis is a programming language which can be used within simulation frameworks, but that per-se ships no simulation platform. One of the nice things you get out of it is that, if the simulation implementation respects the reference, the code written for a simulation can be reused as-is inside a deployed system.
Who uses it? The Protelis community
Alma Mater Studiorum—Università di Bologna (Italy)
Protelis is used in a variety of experiments and demos by the research group led by prof. Mirko Viroli. The team includes Danilo Pianini, chief architect and main developer of Protelis, and Roberto Casadei, lead developer of Scafi, a Scala internal DSL for aggregate programming.