Surface geometry

Tangent, normal, curvature

The aim of this session is to extend the ideas of parametric spline curves to surfaces. Most concepts work exactly the same but moving up one dimension requires certain ideas to be revisited.

The appeal of spline surfaces is that they behave like rubber sheets. We can deform them to produce various geometric shapes, from planes, to cylinders and spheres as well as forms of more complex curvature characteristics. Nevertheless, no matter the apparent geometric complexity, internally spline surfaces are always represented via a rectangular grid of points associated with a set of polynomial functions.

Spline surfaces were invented for automotive and aerospace applications but as CAD software availability and literacy became more wide spread, they became popular for product design, fashion and architecture applications.

Point Evaluation

Evaluating points on a surface is not unlike evaluating points at a parameter along a curve. Instead of one parameter “t”, surfaces require two values, one per direction; by convention we call those “u” and “v” and we can represent them as 2D points. In this sense a surface is just a transformation map from the flat R2 plane into R3 space.

Like spline curves, surfaces are also defined within bounded domains. Those domains however are two dimensional, meaning each parameter takes values from its own “u” and “v” intervals ie. “u: [umin, umax]” and “v: [vmin, vmax]”. In the same manner curves can arbitrarily parameterized, surfaces follow the same exact principles. For simplicity we reparameterize curves and surfaces into the unit “[0, 1]” domain to reduce clutter and work with percentage-like values.

Practice

  • Use the “series” component to extract multiple points along a surface. Points having one of their parameter fixed while the other varying are also known as isoparametric.

  • Extract the surface domain using the “domain2” component and decompose it using the “deconstruct domain2“. You can now manually reparameterize the surface in the same sense of a curve for practice.

Tangent Plane

The notion of a tangent vector can be replicated in each surface direction producing a pair of tangent vectors. Those define a tangent plane as opposed to a tangent line of curves. Below we just directly use the outputs of the “evaluate surface” component instead of computing them from first principles using the finite difference scheme as we did for curves. Tangent vectors produced using the “evaluate surface” component are automatically normalized.

Practice

  • Use the “Analyse | Direction” menu item or in the command line interface enter the “dir” command to flip or exchange surface directions.

  • Compute the tangent vectors by replicating the equivalent finite difference scheme used for curves. Keep one parameter fixed and take a sample a tiny bit forward in the other parameter. The tangent vectors are mathematically partial derivatives of the surfaces in each of its parameter directions i.e. dsdu\dfrac{ds}{du} and dsdv\dfrac{ds}{dv}.

Surface Normal

The cross product between the “u” tangent and the “v” tangent vectors produces the surface “normal” vector at a particular point along the surface. The normal vector by definition is perpendicular to the surface because it is perpendicular to the tangent plane. The normal vector assigns directionality to a surface in a front and back sense.

The use of the term “normal” for surfaces, compared to curves, may be a confusing because unlike the tangent on a curve, which became two tangents on surfaces, the normal on the curve did not split into two different vectors when we moved to the surface condition. The reason is that the term “normal” generally means square onto a geometric object. In this sense the logic is consistent.

Practice

  • Verify that the normal vector is the result of the cross product between the tangent vectors. Use the dot product to verify squareness or the cross product between the reported normal and the one computed from the tangents.

  • Extract two iso-parametric curves passing through a point along a surface using the “iso curve” component. Extract the tangent, normal and bi-normal for each curves and compare them with the surface tangents and normal.

  • Use the surface normals to translate, aka offset, points along an isoparametric range such that you extrude beams, aka fins, along a surface. Surfaces where their normals are parallel to one another in an isoparametric sense are constructible by paper aka developable [>].

Surface Frames

The tangent vectors of a surface are not necessarily square to one another. But if we orthonormalize them, i.e. make them square and unit length, we can define a proper 3D coordinate system, or frame, for each point on the surface. The idea here is to use the normal and one of the tangents, say the “u” tangent, to produce a vector being perpendicular to both.

This is exactly what the “evaluate surface” component returns as the “frame” output parameter. In the animation notice how the “v” tangent vector and “y” plane axis i.e. the green vectors, are not the same. Orthonormalization discards the “v” tangent direction for the sake of squareness between all coordinate system vectors. Therefore only the “u” direction and normal are preserved.

Practice

  • The choice of prioritizing the “u” tangent versus the “v” tangent is totally arbitrary. Create a coordinate system by combining both tangents, e.g. use the average, then perform the orthonormalization process.

  • If you are math inclined, try applying the Gram-Schmidt [>] method to produce an orthonormal coordinate system instead of the “repeated cross product” method.

Surface Curvatures

Following the concepts developed for curves, only repeating twice, we can define the curvature circles, one per direction. The curvature per direction, as a reminder, is the inverse of the radius of the circle of curvature. The “osculating circle” component as seen below computes the curvature circles per surface direction. Surfaces having two curvature components means that they can be bent simultaneously in two different directions.

For surfaces in order to get a unified sense of curvature, instead of the partial view offered by each direction, we can combine them to a single number. There are two common ways to do so: (a) mean curvature [>] is the average of both, (b) Gaussian curvature [>] is the product thereof. Let’s visualize them:

Practice

  • Create some basic surfaces such as plane, cone, cylinder, sphere, hyperbolic paraboloid etc. and visualize their curvature.

  • If you are interested in differential geometry, derive curvature based on the first and second fundamental form [>] using the finite difference scheme.

Surface Divisions

Unlike curves where have a number of division components available, for surfaces we can only subdivide along equally spaced parameter intervals. The “divide surface” component creates isoparametric grids of points along the surface domain in exactly the same way using a Cartesian product was used to produce multiple points for the curvature visualization demonstration.

Practice

  • An alternative way to produce very similar results is using the “surface frames” component which instead of point, normal and parameter, it computes the coordinate systems for each grid point on the surface.

  • Try to generate surface grids by extracting isoparametric curves using the “iso curve” component and dividing those curves using non-isoparametric types of curve divisions.

Surface Closest Point

Computing the closest point from any location in space to a surface produces a point of projection on the surface. Projection is by definition perpendicular to the surface. Therefore, connecting the original point and the projected point traces a line along the normal vector direction from the point of projection. Notice that if the point falls outside the domain of the surface the “surface closest point” component clamps the returned “uv” value within the surface’s domain.

If the point is actually on the surface, the “surface closest point” component can be used as a way of converting between 3D points in space to 2D point in the surface domain. Therefore, it is somewhat the inverse of the “evaluate surface” component.

Practice

  • Some surfaces have more than one closest point so this being the inverse of evaluate surface is not strictly true. Model some surface that the closest point is not unique and see what the result is.

  • Create a grid of points on sphere and project all of them on another surface. This will approximate the projection from everywhere idea. What can you tell about the point concentrations produced?

Conclusions

In this session we examined parametric spline surfaces as dimensional upgrades of spline curves. We extended the idea of a “t” parameter along a curve to a “uv” point along a surface, defined the tangent vectors, normal direction, curvatures and surface frames. The study of surfaces is fascinating and can be extended to cover an entire term worth of content. We limit ourselves here to core concepts and techniques used for common computational design tasks.

Nevertheless, for the genuinely interested, there some highly recommended content online for self-study including “Shape Interrogation for Computer Aided Design and Manufacturing” [>], “Introduction to Computing with Geometry” [>], as well as books available for purchase such as “The NURBS Book” [>].

Spline Surface Limitations

While spline surfaces offer amazing capabilities of creating smooth curved forms they also have some drawbacks. The main challenge with spline surfaces is that they are constrained to a rectangular sheet topology. We can perform severe distortions such as collapsing an edge to a point to describe cones and spheres, but we cannot create “Y” junctions or implicit surface forms [>] with a single sheet.

Interesting Topics Not Covered

Another important topic of discussion regarding spline surfaces is the concept of embedding domain curves also known a trim or boundary curves. This allows us to insert holes or in general create multiple regions within the domain of a surface. Again this falls beyond the scope of introductory notes on surfaces and enters the realm of boundary solid representations.

Surface Modelling Practice

We focused primarily on the analytical properties of surfaces instead of methods of construction such as extruding, lofting, sweeping and revolving. The implementation of the relevant visual programming components replicate exactly the available CAD drawing commands. It is recommended you practice and get familiar with those by following the software’s help manual.

Last updated