The Frenet Frame
Hello, everyone! I hope all is well. In the fifth chapter of our journey through differential geometry, I have a great deal to add to the concept of a curve defined in the previous chapters. Enjoy the article.
The Frenet Frame of a Curve in Three-Dimensional Euclidean Space
In this section, we will build new concepts on top of the tangent introduced in the previous chapter.
Theorem
Let be the unit tangent curve of . Then .
Proof.
This is actually very easy. Since , differentiating both sides with respect to gives , from which orthogonality follows. □
This theorem is simple but powerful, because it points to the existence of another vector field perpendicular to the tangent of a curve. This vector field is parallel to the derivative of the tangent and is called the unit normal of the curve.
Definition
Let be the unit tangent curve of .
The curve defined above is called the unit normal of .
The definition makes it clear that the unit normal is parallel to the derivative of the tangent. There is another point I want to emphasize, however. The norm of the derivative of the tangent gives us important information: as the length along the curve changes, the tangent changes with it, and this norm measures the magnitude of that change. We call it the curvature of the curve.
Definition
Let be the unit tangent curve of . The curvature of this curve is defined by
Corollary
Let be the unit tangent, the curvature, and the unit normal curve of . Then the following equalities hold.
Regrettably, the arc-length parameter is not something that will always be handed to you, so you may need other methods to calculate curvature. For that reason, after introducing the binormal vector field and torsion, I will give you another formula and prove it. In any case, let us continue our voyage of discovery. Given a curve, we can find a vector field tangent to it and another vector field normal to it at every point; what is more, we know its curvature. What we now want is to construct a local basis for the curve. Here is what I mean. In three-dimensional space, what does a point signify? It means that its component along the -axis is , its component along the -axis is , and its component along the -axis is . Our axes therefore form a basis. In the same way, we want to express a point relative to a special coordinate system that we calculate at a point on a curve (that sentence became rather like saying, “Of course you vehemently oppose entrusting children, placed in your care by their mothers, to a woman you consider inadequate in every respect”). Can we calculate a point using and ? The answer is “not always,” because our space is three-dimensional, and we cannot span a three-dimensional space with two vectors (recall the notion of spanning from linear algebra). We therefore need one more vector; then our local—yes, local—basis will be ready.
The Missing Piece: The Binormal Vector!
Let us do something quite different and differentiate the normal. In fact, to keep the calculus crowd from weeping, let me use more formal language: “Let the curve have the arc-length parameter , tangent , and normal .” Then}
How do we calculate this? We will behave like physicists and imagine some vectors as we work, just so you know. Let us begin. Since ,
and it follows that . One might initially—and mistakenly—conclude that , but we know that
Differentiating this gives
I can almost hear you asking what this is supposed to yield. Here it is: we know that is perpendicular to the tangent. Because the derivative of the normal contains this vector among its components—that is, because it has a component perpendicular to the tangent—the derivative of the normal cannot be parallel to the tangent. Besides the tangent vector, then, it must contain another component perpendicular to both the normal and the tangent. We call this vector the binormal vector, denoted by . To summarize the discussion so far, the derivative of the normal can be written, for functions and , as
Let us now examine and . By the definition of the binormal vector, we know that and . Indeed, by declaring that the binormal should be a unit vector (I have very good reasons for this), we may write . Using this and taking the inner product of both sides of the equation above with , we obtain
The left-hand side is not entirely unfamiliar. When defining curvature, we observed that . Moreover, since ,
Combining the two equations gives
So curvature has appeared once again. On the other hand, using orthogonality in a similar way,
and therefore
What is this expression? Torsion itself. The torsion of a curve is denoted by , so . With our calculations complete for now, let us turn to the results.
Corollary
I want to look a little more closely at the first result. We agree that the component of the derivative of the binormal in the normal direction is . Does it have any other component? Because the binormal is also defined as a unit vector, we know that , so there is no component in the binormal direction. Is there one in the tangent direction? To see, use the definition . Differentiating, we obtain
This tells us that the derivative of the binormal is perpendicular to the tangent, so it has only a normal component. Hence we obtain the following result.
Corollary
We now have three mutually perpendicular, and therefore linearly independent, vectors, and they span three-dimensional Euclidean space. Every vector can thus be written as a linear combination of these three vectors, so they form a local basis for every . This is what we call the Frenet frame.
The Frenet Frame of a Curve
Definition
Let the curve have arc-length parameter . Let its curvature be , its torsion , its tangent , its normal , and its binormal . Then the Frenet frame of this curve is
The elements of the Frenet frame are found by solving the following system of differential equations:
Readers who have previously taken a differential equations course will be accustomed to systems of this kind. Although this is actually a rather elementary system of differential equations, solving it gives us the entire curve. In other words, when the curvature and torsion functions are given, solving this system yields a curve. That means that the curvature and torsion of a curve are specific to that curve; no other curve has the same properties. This statement gives us the fundamental theorem of curves in Euclidean space.
The Fundamental Theorem of Curves in Euclidean Space
Let differentiable functions and be given. Then there exists only one regular curve parametrized by arc length whose curvature is and whose torsion is . Other curves are rotations or translations of this curve; that is, they are congruent to it.
We will omit the proof because it concerns differential equations rather than differential geometry. The theorem is in fact an application of the existence and uniqueness theorem. As I mentioned earlier, life is not always full of delights: sometimes a curve may not have an arc-length parametrization (see the example below). In such cases, calculating the Frenet frame can be a little more laborious, though certainly not impossible.
Example
Let the curve be defined by . Its arc-length parameter is calculated as
But this integral has no elementary antiderivative and can only be approximated numerically (try it if you do not believe us).
Theorem
Let be a curve with an arbitrary parameter . Its curvature , torsion , tangent , normal , and binormal are found by solving the following system of differential equations.
Here, and .
Proof.
It is clear that the factor in the differential-equation system comes from the chain rule, because the fundamental theorem of calculus tells us that
(yes, my esteemed high-school teachers, differentiation and integration are inverses of one another—exactly, exactly). It is enough to prove the formulas given for curvature and torsion. First, make an observation. If our parameter were , meaning the arc-length parameter, then , , and . Substitution already gives a formula identical to those we produced for the arc-length parameter, so our assertion is “consistent.” Now consider an arbitrary parameter . We have . We will keep differentiating this; first, for convenience, set . Using the properties of the Frenet frame, we obtain
From here, after inner and cross products start flying around—substitute these expressions into the equations written for and —the results follow. Good luck! □
Example
In this example, we will find the Frenet frame of the curve . We will use Python code for the calculations, but first notice that this curve is parametrized by arc length. Thus .
import sympy as smp
from sympy import *
import numpy as np
import matplotlib.pyplot as plt
from sympy.plotting import plot_parametric
#Kütüphaneleri indirdik.
x=smp.symbols("x",real=True,pos=True)#Değişkenimizi(yay uzunluğu parametremiz) tar
r=smp.Matrix([smp.cos(x), smp.sin(x), 0])#Eğimizi tanımlıyoruz.
v=smp.diff(r,x)#Eğrinin teğetini tanımlıyoruz.
T=v/v.norm()#Birim Teğeti tanımlıyoruz.
kappa=smp.diff(T,x).norm()/v.norm()#Eğriliği hesaplatıyoruz.
N=smp.diff(T,x)/smp.diff(T,x).norm()#Normali hesaplatıyoruz.
B=T.cross(N)#Binormali hesaplatıyoruz
tau=smp.diff(B,x).norm()/v.norm()#Burulmayı hesaplatıyoruz.
ax = plt.figure().add_subplot(projection='3d')
xx = np.linspace(0, 2*np.pi, 100)
rr_1 = smp.lambdify([x],r[0])(xx)
rr_2 = smp.lambdify([x],r[1])(xx)
ax.plot(rr_1,rr_2, label='Birim Çember')
ax.legend()
plt.show()

Now let us try a more elaborate example.
Example
In this example, we will find the Frenet frame of the curve . This curve is called a helix. Note that in this example is not our arc-length parameter. That is no problem, however, because we can write the Python code accordingly.
import sympy as smp
from sympy import *
import numpy as np
import matplotlib.pyplot as plt
from sympy.plotting import plot_parametric
#Kütüphaneleri indirdik.
x=smp.symbols("x",real=True,pos=True)#Değişkenimizi(yay uzunluğu parametremiz) ta
r=smp.Matrix([smp.cos(x), smp.sin(x), x])#Eğrimizi tanımlıyoruz.
v=smp.diff(r,x)#Eğrinin teğetini tanımlıyoruz.
T=v/v.norm()#Birim Teğeti tanımlıyoruz.
kappa=smp.diff(T,x).norm()/v.norm()#Eğriliği hesaplatıyoruz.
N=smp.diff(T,x)/smp.diff(T,x).norm()#Normali hesaplatıyoruz.
B=T.cross(N)#Binormali hesaplatıyoruz
tau=smp.diff(B,x).norm()/v.norm()#Burulmayı hesaplatıyoruz.
# Binormal
binormal_Line=r+t*B
# Normal
normal_Line=r+t*N
# Teğet
tangent_Line=r+t*T
ax = plt.figure().add_subplot(projection='3d')#Eğriyi çizdiriyoruz.
xx = np.linspace(0, 2*np.pi, 100)
rr_1 = smp.lambdify([x],r[0])(xx)
rr_2 = smp.lambdify([x],r[1])(xx)
rr_3 = smp.lambdify([x],r[2])(xx)
# Binormal Line
bb_1 = smp.lambdify([x, t],binormal_Line[0])(1, xx/10) bb_2 =
smp.lambdify([x, t],binormal_Line[1])(1, xx/10) bb_3 = smp.lambdify([x, t],binormal_Line[2])(1, xx/10)
# Normal Line
nn_1 = smp.lambdify([x, t],normal_Line[0])(1, xx/10) nn_2 =
smp.lambdify([x, t],normal_Line[1])(1, xx/10) nn_3 = smp.lambdify([x, t],normal_Line[2])(1, xx/10)
# Tangent Line
tt_1 = smp.lambdify([x, t],tangent_Line[0])(1, xx/10) tt_2 =
smp.lambdify([x, t],tangent_Line[1])(1, xx/10) tt_3 = smp.lambdify([x, t],tangent_Line[2])(1, xx/10) ax.plot(rr_1,rr_2,rr_3, label='Helis')
ax.plot(tt_1,tt_2,tt_3, label='Teğet')
ax.plot(nn_1,nn_2,nn_3, label='Normal')
ax.plot(bb_1,bb_2,bb_3, label='Binormal')
ax.legend()
plt.show()
Running this code displays the helix and the tangent, normal, and binormal vectors at the point corresponding to .

In the Next Chapter...
In this chapter, we defined the Frenet frame of a curve and worked through several examples. In the next, we will see how the Frenet frame reveals the characteristic properties of a curve—for example, what happens when its curvature is positive, or when its torsion is zero. We will look at torsion geometrically, and so on. Take very good care of yourselves!
