Agent-based modeling in JavaScript in the browser or on the server. [v0.5.19]

Hi there! Flocc is a JavaScript library for modeling and simulating systems using computational agents. It's meant to be used by researchers, designers, engineers, and artists to more easily explore and understand complex systems, with less setup and overhead than other agent-based software.


As you can see on this page above, Flocc runs in a web browser! This means that, once you've created your agent-based model, sharing it with others is as easy as including it on an HTML-based web page and linking to it. However, using Node.js, it's also possible to run Flocc on a remote server (which can often be faster than in a browser).

What can I use Flocc for?

Flocc provides an entry point for modeling all types of systems — physical, chemical, biological, social, organizational, political (...the list goes on!).

One of the advantages of agent-based modeling/simulation in general is to test certain hypotheses about the functioning of systems that would be impractical or impossible to experiment with in our current reality. Especially in the context of complex social systems, where performing experiments ‘in the field’ (with real humans) can be prohibitively complicated — think of time requirements, privacy and personally identifying information, and the inherent bias you bring as a human observer — using Flocc can quickly allow you to model social systems and interactions. Your simulation will at best ever be a simplified model of reality, and at worst it won’t resemble reality in the slightest. But regardless of the fidelity of your model, in the process of creating it, you crystallize your beliefs and assumptions about how systems currently work — in the words of Donella Meadows, “expos[ing] your mental models to the open air.” By doing so, you can gain an intuitive, systems-based understanding of how your assumptions match reality, and can refine them alongside your encoded model.

Flocc is a tool not only for modeling systems, but for doing and thinking in systems.

Ready to get started?