A wild idea that I don't have the knowledge to pull off...
Has anyone created a pair of cameras whose distance can be varied? (For example, a motor shifts the distance between the two cameras.)
If a computer knows the distance between its two cameras, it might be able to make a 3-d map of the surface of an object. The varying distance between the cameras would help with further objects -- or with closer, small objects.