I remember discussion about this.
Basically from what I remember is doing something like the Duplicator, doing a getUpBrick() loop and rather than duplicating it, fakekill it for x amount of time. To make it collapse only when there's no support, though, that's a different story.