First off, great work very impressive work there! Is there any you will share how you determine which are visible blocks? Do you do some kind of neighbour visible parse? I guess there are lots of ways to do this, but only a few that would perform well.
In anyway, big thumbs up and keep up the good work man!