# How Do Snakes Slither? A Recipe for Reptation

**Figure 1.**The snake in motion and static.

**1a.**The velocity of the snake in the grass is tangential.

**1b.**The propulsion force \(F\) is given by \((1)\). Instead of pulling the fingers, the snake can use \(F\) to overcome friction with the grass when slithering. This figure is only a thought experiment. I did not touch the snake.

The snake slithering in the grass converts the bending/unbending effort of the body—the only thing it can do, I think—into forward motion. How exactly does the snake do it? Which muscles must it contract, and which ones must it relax? In other words, what is the recipe for such reptation?^{1} Our simplified snake has a negligibly thin body that is confined to a prescribed channel, which allows only tangential motion.

After watching the snake, I realized that the pulling force \(F\) in Figure 1b is given by

\[F=\int^L_0\tau(s)k'(s)ds,\tag1\]

where \(s\) is the arclength parameter, \(\tau\) is the bending torque (see Figure 2), \(k\) is the curvature, and \(L\) is the length of the snake.

Taking \((1)\) for granted, how should the snake flex its muscles? To fix the assumptions, we take the channel in which the snake moves as given. Presumably, the very least the snake should do is make sure that \(\tau(s)k'(s)>0\) for all \(s\) in order to avoid cancellation in \((1)\) — i.e., a wasteful competition between pulling forward \((\tau k'>0)\) and backward \((\tau k'<0)\) with different parts of its body. Figure 3 illustrates this recipe for reptation: *bend the body to the right (or left) if *\(k\) *is increasing (or decreasing)*.

**Figure 2.**The torque \(\tau=\varepsilon T\), which is created by compression \(T\) of the backbone and the equal tension of the muscle, tries to rotate the shaded section counterclockwise. Here, \(\varepsilon\) is small (the snake is thin), \(T\) is large, and \(\tau=\varepsilon T\) is finite. The torque is counterclockwise, so \(\tau>0\).

### A Dynamical Recipe for Reptation

The aforementioned recipe is good for a mathematician, but detecting \(k'(s)\) seems like a physiologically formidable task for the snake, since doing so involves the apple-versus-orange type comparison of \(k\) between two different parts of the body. How can the snake then estimate \(k'\), which it must do in some way because \((1)\) captures the physics of slithering? Here is a possible answer.

**Figure 3.**The recipe for reptation is to change the direction of the bending effort \(\tau\) at points \(A\), \(B\), \(C\), and \(D\) of extreme curvature. Here, \(k\) is minimal (negative) at \(A\) and \(C\) and maximal (positive) at \(B\) and \(D\).

\[k'(s)=v^{-1}\partial k/ \partial t;\]

\(k'(s)\) is thus determined by \(\partial k / \partial t\), which feels like bending/unbending and hence is much easier to sense than \(k'(s)\). We can consequently restate the recipe for reptation as follows: *the bending effort must coincide with the direction of bending change*. That is, \(\tau\) must attempt to enhance the deformation that is imposed by travel along the channel. Or more palpably, *tense the muscles that are contracting* (due to bending/unbending while the snake slithers along the channel) and *relax the muscles that are stretching*.

Under this recipe, the muscles do positive work — which then must go into locomotion (e.g., into overcoming friction, into acceleration, or both).

### Some Consequences of \((1)\)

1. If the snake can exert effort \(|\tau| \le 1\) for all \(s\), then it must choose \(\tau=\textrm{sign } k'\) for the maximum pull; the resulting pull

\[\int^L_0|k'(s)|ds\]

is the total variation of \(k\). For the snake, it thus pays to be wiggly.

2. In contrast, adopting the shape of a circular arc is bad because \(k'(s)=0\) results in \(F=0\), regardless of the bending effort \(\tau(s)\).

3. Figure 3 illustrates the fact that \(\tau\) *must change sign at the points of maximal curvature* in order to avoid having some sections of the body pull backwards.

4. How would Euler’s elastica behave if confined to a channel? The elastica tries to straighten with moment \(\tau=-k\) (the minus sign is there because the torque *resists *bending if \(k>0\), thus making \(\tau<0\)). From \((1)\), we get the propulsion force

\[\int^L_0(-k)k'(s)ds=\frac{1}{2}(k^2(0)-k^2(L)).\]

In this case, the force depends only on the curvature at the ends.

**Figure 4.**For this snake, \(\tau(s)\) does not change as the snake bends or unbends.

**4a.**The potential energy of the element \(ds\) is \(-\tau d\theta\).

**4b.**The snake advances by \(\varepsilon\) along the channel.

### Derivation of \((1)\) Via Potential Energy

Let us replace the live snake with an elastica that tries to bend with an intensity \(\tau(s)\) that is independent of its curvature. This is unlike Euler’s elastica, which wants to be straight with an intensity that is proportional to \(k\). In contrast with Euler’s, each element of our elastica wants to curl up with a fixed intensity \(\tau(s)\) — either left or right depending on the sign of \(\tau(s)\). The potential energy of such an element is, by definition, the work that we must do to bend the element from the straight shape to its current one (see Figure 4a). To that end, we must apply torque \(\tau\) in opposition to the one that this element applies to our hand, i.e., \(-\tau\). The potential energy of an element \(ds\) in Figure 4a is therefore

\[-\tau d\theta=-\tau kds.\]

For example, if \(\tau>0\) in Figure 4, then the element tries to curl up from the straight shape and hence does work for us (so that we do negative work). The potential energy of the “snake” in Figure 4b is therefore

\[P(\varepsilon)=-\int^L_0\tau(s)k(s+\varepsilon)ds,\]

where \(s=0\) corresponds to the tail and \(\varepsilon\) is the distance by which we advance the “snake” along the channel. Indeed, as the snake advances by \(\varepsilon\), its curvature changes to \(k(s+\varepsilon)\) while \(\tau\) remains the same by the assumption. The potential energy determines the force

\[F(\varepsilon)=-P'(\varepsilon)=\int^L_0\tau(s)k'(s+\varepsilon)ds,\]

which agrees with \((1)\) when \(\varepsilon=0\).

### A Geometrical Explanation of \((1)\)

**Figure 5.**Here, \(k'>0\) and the “muscle” at \(B\) contracts, i.e., \(\tau>0\). There are two different explanations of propulsion: (i) Projection of \(R_C\) onto the tangent at \(B\) wins over that of \(R_A\) due to \(k'>0\), and (ii) a small displacement of the “train” \(ABC\) to the right decreases \(\angle ABC\) and also the potential energy of the system.

*exactly how*the bending propels the snake forward. Here is an attempted explanation.

Figure 5 shows a segment of the snake that is discretized, i.e., replaced by two rods of fixed equal lengths with the ends \(A\), \(B\), and \(C\) attached to skates that can slide on the prescribed channel but cannot move transversally to it. The “muscle” at \(B\) tries to contract, i.e., \(\tau>0\). This attempted contraction results in reaction forces \(R_A\) and \(R_C\). Consider the projections of these forces onto the tangent at \(B\). If \(k'>0\), then \(\theta_C>\theta_A\), thus suggesting that \(R_C\)'s projection—which pulls \(B\) to the right—wins over its counterpart at \(A\), which pulls \(B\) to the left. This is indeed the case since \(|R_C| \approx |R_A|\) (with sufficient precision, as it turns out).

*As an alternative explanation*, an infinitesimal displacement to the right of the “train” \(ABC\) in Figure 5 results in a decrease of \(\angle ABC\) because \(k(s)\) is an increasing function, and decreasing \(\angle ABC\) is exactly what the “muscle” at \(B\) attempts to do.

^{1}Some snakes, such as sidewinders, reptate by different mechanisms without obeying the velocity constraint. Here I only address one specific type of reptation.

*The figures in this article were provided by the author.*