INDELible is one of the most sophisticated simulators for sequence evolution. It supports plenty of different sequence evolution models, various indel distributions, basically everything you could wish for. As such the code is pretty massive. It is also quite messy. The worst part: It contains six
.cpp files which just get included by the main file. No modularization, no hiding of implementation details. Have fun digging through the 17000 lines of code finding the point where five spaces are added to the end of each fasta sequence. I am sure that must have made sense at some point in time.
If you want to use indelible for your projects use the patched version from my github account. Most of the fixes will also find their way into the Debian version.