RPI has a long history in Computer Graphics. E.g. Prof Mike Wozny, Head of ECSE, was one of the founders of IEEE Computer Graphics and Applications, which printed the article by Maureen Stone that I presented last time.
For a curved surface, the normal vector at a point on the surface is the cross product of two tangent vectors at that point. They must not be parallel to each other.
If it's a parametric surface, partial derivatives are tangent vectors.
A mesh is a common way to approximate a complicated surface.
For a mesh of flat (planar) pieces (facets):
Find the normal to each facet.
Average the normals of the facets around each vertex to get a normal vector at each vertex.
Apply Phong (or Gouraud) shading from those vertex normals.