
Generative art software built on advanced mathematical modeling of collective behavior—driving innovation in digital art, gaming, design, and architecture.
For information about the developer: Google Scholar, Research Gate, LinkedIn.
Imagine a flock of living brushes moving across your canvas. You set their initial positions and walking directions, define a speed limit, instruct them on how to interact with one another, choose a rule for selecting colors at each step, and finally, release them to wander freely.
What emerges as a result? It might resemble this background, these videos, the images in the gallery below—or something entirely unique.
With Math Chaos Patterns (MCP), you can control thousands of brushes on a digital canvas. It provides a visual programming environment that requires no coding. Brushes are managed through the UI and user‑defined images with color‑coded areas, where each pixel can trigger instructions to change the direction, speed, transparency, and other properties of passing brushes.
MCP was presented at SIGGRAPH2020.
To share your results and experiences with this app, join the Facebook group Math Chaos Art
To see news, examples, and tutorials, or to leave feedback, visit the Facebook page Math Chaos Patterns
To download the latest version of MCP, click here.
To access a previous version, click here.
MCP 2.5 and later can automatically save all images generated during rendering. The free utility Ims2V (Images to Video) makes it easy to quickly create a video from those images. [Click here] to download the latest version of Ims2V.
Gallery
![]() | ![]() | ![]() |
|---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() |































































