Mirek's Cellebration (MCell)

 

What is MCell

Mirek's Cellebration (MCell) is a 32-bit Windows program whose main purpose is exploring existing and creating new rules and patterns of 1-D and 2-D Cellular Automata. Current version (4.00 Beta) supports 14 different Cellular Automata families: Life, Generations, Weighted Life, Vote for Life, Rules tables, Cyclic CA, 1-D totalistic CA, 1-D binary CA, General binary, Neumann binary, Larger than Life, Margolus, User DLLs, and Special rules. MCell supports different neighborhoods (Moore 8 and 9, von Neumann 4 and 5, Margolus, Hexagonal, neighborhood ranges, properties). Each family contains many built-in rules, for example well-known Conway's Life, HighLife, Day & Night, Long life, Diamoeba, Fredkin, Vote 4/5, Brian's Brain, Star Wars, RainZha, Swirl, HGlass, Midges, Sticks, Career, Venus, WireWorld, and many more. Many rules were never seen in any other software yet - they were discovered by the author (and his family) and MCell users. All rules are illustrated with carefully designed patterns.

MCell handles all popular formats of Cellular Automata patterns (Life 1.05, Life 1.06, RLE, dbLife, ProLife, XLife, MCLife, MCell and variations of the above), both from UNIX and DOS formats, what makes it a perfect tool for viewing large collections of Cellular Automata patterns available on the Internet.

MCell is open for extensions and plugins. Programmers can add new rules programming them as external DLLs. Automation interface allows writing plugins that offer another user interface, automate frequently repeated tasks, control the program, perform analysis, drive demos, etc. Automation interface offers unlimited possibilities.

MCell is free for non-commercial use. It's written in Borland Delphi 5.0.


History of MCell

MCLife (Mirek's Colorful Life) was born on 8th of January, 1999, as a result of one long evening (OK, also a part of the night). The original name was MLife, as I didn't think about colors then. I didn't think then about hundreds of features available in the today's version.

I read about Life for the first time in 1980, in a very interesting Polish scientific periodical "Problemy". For at least 1 month Life occupied my mind then. I used many chequered notebooks for tracing the destiny of small patterns. Do You also remember those times? Because none of my friends shared my new hobby, Life was quickly forgotten (a note to younger readers: Internet was not available in those times).

Nearly 20 (!) years later, on 1998/1999 New Year's Eve I was watching the fireworks, and suddenly I recalled Life! Yes, I thought. Let's see if this can interest me again. So one week later I sat down and started thinking: how was it? Were they 2, 3,or 4 neighbours necessary to start a new birth? I remembered the glider well and one hour later I was sure: it must be 23/3. I took the Delphi compiler I always wanted to master and started programming:
"Let's make a 200x200 grid, yes, so big, the computers have much memory today" I thought.
"Let's apply rules to random cells."
One hour later: "Damn it! I need another table in memory. No chance to perform rules on one table. Wow, now it works!"
"Let's make a Go button."
"Let's name it Mirek's Life."

That was all I thought is necessary to play with Life. I was proud and happy: "I don't need to waste paper and pencils anymore!" And I played with patterns each evening.

Then I did a mistake. I typed "Life, cell, grid" in Altavista to check if anybody else remembers Life. And I've found the LifeX program. Wow! What perfect ideas! Saving patters! ASCII export! What? Rules? Isn't "23/3" the only possibility?

One week later I had several different programs downloaded and realized that Life is not limited to what I've programmed in my 1st version. Those programs could do really a lot. I even thought it makes no sense to write one more. But... all those programs had so strange user interfaces. I would have had much more fun if I programmed what they could do, but with another interface. It can't be much work... And it has started.

In two weeks I was proud again. One week more and I could load most patterns from popular libraries. But then I've found the CAV program by Jean-Philippe Rennard. Hey, what's this? Cellular Automata? Colors? States? History? Vote? It can't be that my program does not handle it. And soon it could. I renamed it to MCLife (Mirek' Colorful Life). I could again sit with my daughters and play with rules and patterns. On one evening we have found the "Star Wars" rule, the most interesting rule we've seen so far.

The next milestone was the Fast Java Applet by Alan Hensel and Life32 by Johan Bontes. Alan showed me how small is my universe and how fast Life can be. Johan showed me that not only I like nice user interfaces. So I had much work again. In the middle of April 1999 I said, "it's enough for now". Alan and Johan's programs are faster, but I have other advantages. It's time to show the program to others, let's see what they think about it.

And, what do You think about it?



Selected MCell features


1-D and 2-D Cellular Automata.
14 different CA families: Life, Generations, Weighted Life, Vote for Life, Rules tables, Cyclic CA, 1-D totalistic CA, 1-D binary CA, General binary, Neumann binary, Larger than Life, Margolus, User DLLs, and Special rules.
Many predefined rules for each family.
Support for different neighborhoods (Moore 8 and 9, von Neumann 4 and 5, Margolus, Hexagonal, neighborhood ranges).
Comfortable user interface: dockable toolbars, active status bar, built-in File Manager, interactive zooming/panning using the mouse, the keyboard or the mouse wheel, subzooms, scroll-bars, auto-fitting and centering patterns, keyboard shortcuts to virtually all MCell functions.
Comprehensive Help, Tool tips, full program customization, configurable colors, sound.
Complete file saving and loading abilities. Supported file formats include Life 1.05, Life 1.06, RLE, dbLife, ProLife, Xlife, MCLife, MCell and variations of the above. Files can be loaded both from UNIX and DOS formats.
Externally programmable rules (DLLs), support for most 32-bit compilers.
(OLE) Automation interface.
Comfortable rules explorer; own rules can be saved and reused.
Different color modes, up to 256 states of cells.
A rich library of selected standard Life patterns and new patterns showing properties of other Cellular Automata rules.
Advanced editing features: draw dots, lines, rectangles, filled rectangles; cut and paste, drag and drop, etc. Cut and paste to and from text editors; one can even interactively draw in the live cells without pausing the simulation.
Mirroring, rotating, inverting, randomizing, colorizing, ...
Fully configurable seeding and randomizing. Sophisticated area/coloring/density/mode selections. Statistical (Bernoulli) and exact seeding.
All or selected Life file types can be automatically associated with MCell for easy opening directly from the Windows Explorer.
Configurable, unlimited, event-driven Undo and Redo.
Various analysis: statistics, transitions, correlations, population logs, period checkers.
And much, much more...

 

Read more...

Download...

File attachments: