Name for a body that can be completely described using its silhouettes

Solution 1:

I think you've underspecified the problem. In order to answer the question, one needs to know if the observed shadow shape is accompanied by accurate information about the instantaneous 3D rotational transform being applied to the solid. Also, it only makes sense to be asking this question for convex polyhedra. Also, if you don't place the light source at +infinity along a 3D axis, the problem is ill-conceived, as the light source could fail to throw a useful shadow (for instance, it could be inside the object, or between the object and the sihouette screen). A further practical constraint would be that the object rotation is about its centroid pinned to the origin. This problem set-up then implies that the silhouette screen is a plane perpendicular to the light rays.

Here is a technique that could solve the shape-from-shadow problem for convex polyhedra with low edge counts. Place the light-source at z = + infinity, so that shadow of a single revealed vertex indicates 3D coordinates [ x, y, ? ] at a specific 3D object rotation R (depth information is lost).

Think about the shadow formed by a single shadowed EDGE. For any edge, there is a rotation R that rotates the edge into the z == 0 plane. This rotation maximizes the length of the edge in the shadow * the distance of the edge from the centroid (the object centroid projects onto sensor coordinates (x=0, y=0). So, for each edge, the rotate algorithm searches for the rotation that maximizes the edge's shadow length * distance from 2D sensor (0, 0). At that specific rotation R, you can infer that the two endpoints of the 3D edge (line segment) are v1' = [ x1, y1, 0 ] and v2' = [ x2, y2 , 0 ]. (the x and y coordinates read out from the shadow sensor.)

Knowing the exact 3D shadowing rotation R, you now can infer two vertices of the polyhedron by inverse rotation v1 = R-1 • v1' and v2 = R-1 • v2'

The technique breaks down for polyhedra with so many faces and edges that the straight-line edges are indistinct in the shadow image. For instance, a regular polyhedron with a million faces would be indistinct from a sphere.

I expect there are published solutions to this problem in the SIG Graph journal, though I haven't looked there.