Awesome! Replacing one block with another is clever, although it's tricky when organisms of one species are adjacent to organisms of another species.
I've played around with a similar idea in falling sand games [0], where individual cells interact to create new cells, but I got stuck developing a language flexible enough for greater expressiveness while still being performant.