Use of genetic algorithms to evolve Lindenmayer systems with image error as the fitness function

Mike Schuresko

Source tree on left, learned on right
Source tree on left, learned on right

Explanation of what this is

I had this wacky idea to use genetic algorithms to evolve Lindenmayer systems to look like trees in nature. Before going full-out and attempting this on real photographs, I decided to do an experiment with the much simpler case of matching synthetic data generated by another Lindenmayer system, when both were super-imposed on a black background.

My hope was that the constraints of the L-system would allow me to more easily generate accurate 3d from only a 2d image, and that the natural order present in L-systems would give me a good guess of what might be in the occluded parts of the tree. So far it hasn't worked as well as I had hoped, but the results have been semi-reasonable.

If you are curious about the implementation details, the project report is available here.


Note, in order to run this, you need a copy of MFC71.dll and MRC71R.dll.

You can download these files here (for mfc71.dll) and here (for msvcr71.dll). I think you need to put them in the same directory as the exe, but if you are sufficiently familiar with windows to do the "registering dlls" dance, then that might work too.

Download The application. Download someplace alongside the requisite MFC DLLs. Then run it. Please bear in mind that this is a windows executable, while I have not intentionally put malicious code into it, it should be treated with the same degree of caution as any windows executable downloaded from the internet.

Other screenshots



If you are interested in this visualization, you might also want to see Neural network learning visualizations or Training of an obstacle avoiding robot in simulation

mds at es oh ee dot you see es see dot eee dee you