I want to create a programming project that involves creation of a discrete autonomous system. It is very similar to cellular automaton as the simulation environment is composed of 2D cells on an unbounded grid. Cells have attributes assigned to them which makes them behave and function together as a self-sustaining system. For example, cells are programmed with basic functions such as moving and dividing and specialized tasks that they must perform such as energy retrieval, synthesis and storage, defense and information storage. To design the system and its rules, I'll need a programming language and a graphics rendering program. Should I use a general purpose programming language such as C++ coupled with OpenGL to render graphics or should I use a program designed for mathematical visualization such as MatLab or Mathematica? I don't know Mathematica/MatLab and I only know a little bit of C++ so I would not start this project any time soon but I would like to know the prerequisites of creating it.