DIRECTIONS: In this applet, you create a surface by prescribing
points on the surface and normal vectors for the surface at these points, along
a triangular grid (original set at one). The points
are larger points forming the base of the line segments (which represent
the normal vectors) drawn automatically in perspective. You can manipulate the base point
and the end point of the vector as normal, with the conventions that (1) when moving the base
point the vector is translated to start at the point to which it is moved, (2) the normal
vector is rescaled to have a unit length.

The surface is created by a subdivision scheme and approximated
in an iterative fashion. Starting with a triangle formed from
the three given points, new points are defined along the edge
curves by a Hermite type interpolation. A normal vector is then
defined at this point, we then have generated four smaller triangles
for each initial triangle, with the same structure (points and
normal vectors). The surface is then defined as the limiting surface
obtained by an iteration.