1. A system for generating a three dimensional (3D) surface based on a closed edge curve, the system comprising: a processor; a memory in communication with the processor, the memory storing processor-executable instructions configured to: identify a plurality of curves, wherein the plurality of curves are continuously joined to define a single edge loop; segment the edge loop to define a plurality of edge segments, wherein each of the plurality of edge segments is associated with a curve feature; define a set of snap normal vectors for each end point defining the plurality of edge segments; reduce the segmented edge loop to a plurality sub-loops divided by chords, wherein each of the sub-loops is defined by three end points of one of the plurality of curves, wherein the processor-executable instructions are further configured to: select a chord division from a set of points including two points having a greatest linear distance therebetween, and wherein a tangent of the two points is substantially adjacent to a plane defined by the snap normals and between the tangents vectors of the end point; and determine a surface normal based on a weighted average normal of the divided sub-loops that share a given end point and the snap normals defined for that given end point.