One thing that bugs me a about the discussion of evolution in general is it tends to get treated as a smooth process influence mostly by the environment but DNA is essentially digital code for building bodies and probably the Cambrian was kicked off by some mutation a bit like a code refactor that allowed a lot of body variation subsequently by the changing of a few base pairs.
A bit like, in a loose analogy the old code was
print "protein"; print "protein"
and the new code was
for i=1 to 2 {print "protein"}
so that in the second case a single mutation in the "2" could result in a wide variety of body sizes.
A bit like, in a loose analogy the old code was
and the new code was so that in the second case a single mutation in the "2" could result in a wide variety of body sizes.