Draw in the square then let go, the drawing becomes a floating cursor. It's a demonstration of quadtrees. https://en.wikipedia.org/wiki/Quadtree The square sub divides (makes 4 squares from one and adds a "2") till it finds only purple (adds a "1") or only white (adds a "0"). Try making a single dot in the bottom left corner, then the top left,and filling almost everything, and compare the quadtree base 3.
I used the costumes from an old project I made as AddZero. Now it's properly recursive using custom blocks. Quadtrees are cool because it (often) takes much less data than a bitmap to describe the same thing. Large filled quadrants use as much data as tiny ones. If it's empty, it's "0", if it's filled "1" is all it needs. Also, instead of many tiny 1x1 clones for the cursor, some are larger. I also convert it into base 9, so it takes half as much space, but don't really use it for anything else yet. I use the base 3 quadtree to make the cursor. It would be faster to make it directly when sensing, but wanted to try reading it. So you could transmit images this way with cloud variables.