A Mathematical Approach to Classifying Poi Patterns, using Trigonometry to Model Toroids

This post continues my section-by-section exploration of my poi math paper. Previously, I've posted on the basics of periodic math, how to model flowers and third-order motions with it, and how to model both simple and complex weaves with trigonometry. Today, we explore how toroids can be modeled with these functions.

7. Modeling Toroids

Toroids are the most complex type of movement we will address in this document. Modeling them requires not just tracking oscillations in all three axes, but simultaneously using the math of flowers coupled with the math for describing staff patterns. Why is this? Simply put, toroids are centered around the idea that rather than rotating the poi on an axis parallel to the axis of the handpath, we add the idea that it is now the poi plane that rotates on this axis parallel to that of the handpath. This mean that the poi plane now behaves much more like a staff than it does a poi and that the axis the poi rotates on is constantly shifting in relation to the hand. This results in patterns that are fully three-dimensional and consist of multiple plane bends. There are multiple frameworks for categorizing toroids, but for the purpose of this paper I am going to use the framework outlined by Ted Petrosky and Charlie Cushing--known colloquially as the “East Coast” method for categorizing toroids.

This framework distinguishes between three types of toroids based upon the movement of the plane relative to the movement of the hand. Like flowers, these toroids produce multiple petals, but each of the different toroid types will produce differing numbers and locations of plane bends to produce the same number of petals. These three types are:

  1. Isobend--in which the poi plane is locked in a synchronous orbit to the handpath, so that effectively the plane is always perpendicular to the handpath. This results in toroid patterns that look similar to the props of a propeller and tend to look like crosses and Xs when viewed head on. These are the toroids most similar to traditional flowers and indeed can be flattened down to traditional flowers by reducing the distance the poi travels along the z axis till the flower is flattened completely down to a standard flower. These are the toroid equivalent of an extension or isolation.
  2. Antibend--in which the poi plane completes one or more turns in the direction opposite to the handpath’s rotation in the time it takes to complete one handpath. This results in the poi plane switching between moments in which it is perpendicular to the handpath and moments when it is tangent to the handpath. If one conceptualizes a torus as having one side that faces the center and one side that faces the outside, antibend patterns tend to result in poi paths wherein the poi never travels on the inside of the torus. When viewed head-on, this approach can create polygonal patterns using straight lines that would otherwise be impossible in traditional flowers, such as triangles, squares, and pentagrams. These are the toroid equivalent of antispin in 2D spinning.
  3. Probend--in which the poi plane completes more than one turn in the same direction as the handpath in the time it takes to complete one such handpath. Like antibend, this results in the poi plane switching between being perpendicular and tangent to the handpath. Unlike antibend, probend patterns tend to result in poi paths where the poi never reaches the outside of the torus. This results in patterns that closely resemble inspin flowers in traditional 2D flower spinning, but the poi will switch between a plane in front of and behind the hand. These are the toroid equivalent of inspin in 2D spinning.

Given this framework, the astute reader may have noticed that many of the rules governing how the poi must move no longer apply to how a poi plane can move. Indeed, the most accurate model we have for understanding the behavior of the poi plane in a toroid is the behavior of a staff. With this in mind, we can easily understand the movement of the plane by updating our formula for deriving petals with poi movement to now work for staff. Where d is the number of staff/plane beats per handpath completion, to get the number of p petals, the equation will be p=|2(1-d)|. Keep this in mind as it will become very important very quickly!

a. Modeling Isobend Toroids

We will start with the easiest type of toroid to model: the isobend. Because this type of toroid is closest to a perfect torus, we can apply the equations used to model a torus with a few minor tweaks to produce the result we want. The traditional equation for producing a torus is usually listed as such:


Where t is equal to all values between 0 and 2, u is also equal to all values between 0 and 2, R is the distance from the center of the torus to the center of its ring, and r is the radius of that ring itself. Now, this at first looks like a vastly different equation from what we are used to dealing with, but if we dive into it, we will find it is not so terribly different from what we are already used to using. First, if we get rid of the (R+rcosu) terms, we can easily see that the resulting equation is very similar to what we already played with in our weaves section:


So what is that extra term doing? If you notice the weaves equation we have separated out, you may notice something odd about it: when we were playing in 2D land and x and y were the only axes we needed to worry about, we had sin and cos working in tandem to give us circular motion. When we add a z axis oscillation for weaves, we are adding an odd sin term that has no cos to balance it out. This does not matter as much with weaves because the z value is just bouncing back and forth essentially along a straight line. But when we model a torus, we need to be creating circles both along the x and y axes, as well as circles between the x and z axes as well as the y and z axes. The term we removed to achieve the weave-like equation above is the missing cos term that balances out the sin function on the z axis to give us a circle--and it needs to be applied to both the x and y axis because we need to create a relationship both between them and also individual between each of those axes and the z axis.

To make the torus equation easier to understand, I will recontextualize it to look more similar to what we’re used to dealing with so far:


Where t is equal to all values between 0 and 2 and u is also equal to all values between 0 and 2. Just like in our previous poi equations, the first set of terms on the x and y axes govern the movement of the hand. This equation produces the exact same result as the one I outlined above for a torus, but arranges the pieces in a way that is more in line with what we need to work with. Why are there two different variables that essentially do the same thing? Because to draw a torus we’re drawing two different sets of circles. When we draw a toroid using poi, we are only tracking a path along the surface of the torus, so u will be replaced by t.

Given this, we can graph the path for an isobend with 4 petals using the following equation: x=sint+(cos(4t))sint, y=cost+(cos(4t))sint, z=sin(4t).

Here, we have what would look like a 4-petal antispin flower as seen from the top axis, but each petal includes a single rotation in the z-axis. An example of this toroid being performed can be seen here where forward and back are treated as the z axis in this graph. The terms that govern the number of “petals” we get with an isobend toroid changes slightly as opposed to what we are used to seeing with 2D flowers. Now, the multiple of t that we find inside the cos functions on both the x and y axis in addition to the multiple of t on the sin function on the z axis are what controls the number of “petals” we wind up with. In this case, the multiple is equal to the number of “petals” we want to see in the resulting pattern. As noted above, petals is not the best term to describe the behavior of the poi relative to the handpath in toroids. We will explore a better term in the flower structure section of this paper under definitions.

An animation of how the poi tracks through this pattern can be found below.

b. Modeling Antibend Toroids

Antibend toroids are going to present a very different host of challenges to us. Where isobend toroids are planar locked to always be oriented perpendicularly to the handpath, antibends for the first time introduce the concept that the poi plane can turn in a different fashion, twisting up a torus into bizarre and wonderful self-intersecting shapes. This is one of the most popular types of toroids because it can be used to create shapes that leave a poi path that will appear similar to a polygon when seen from edge-on due to the poi plane functioning more like a straight line than a curve. This will also be the most diverse type of toroid we will explore as it presents multiple opportunities to create a variety of different shapes.

To start, we will need to update our equation open up additional possibilities for how the poi plane can rotate. Our equation now becomes:


Where f is the number of z-axis beats our pattern will have and d is the number of rotations the poi plane will have per handpath. This equation will also change what we know about the number of petals we are creating in a pattern. In isobend, because the poi plane is locked, the number of “petals” is essentially just determined by the number of times the poi is rotated as the plane goes around. For antibend, however, because the poi plane itself is rotating, we must for the first time consider what the shape generated by rotating the plane will be in addition to the number of beats the poi will have in the pattern.

For example, if we elect to display a full torus with three points, the equation will be x=sint+(cosu)sin(-1/2t), y=cost+(cosu)sin(-1/2t), z=sinu and it comes out looking like this:

Which, when viewed from above comes out looking like a triangle with slightly rounded corners.

Now remember, this is just the movement of the poi plane. Unlike in this example, the poi never occupies all points in its plane simultaneously, so we must now assign a given number of beats to this pattern to see what the resulting poi path will become. One of the more popular ways to perform this pattern is to perform an half beat for each rotation of the plane, resulting in a poi path that likewise resembles a triangle when seen from above, resulting in the equation x=sint+(cos(1.5t))sin(-1/2t), y=cost+(cos(1.5t))sin(-1/2t), z=sin(1.5t).

Now, something looks a little off, and a view from the side will help us see what it is. Because we are completing only 1.5 beats of the poi per handpath, the resulting poi path looks incomplete.

One way to fix this is to complete two repetitions of the pattern. Given that for each handpath, we are getting 1.5 poi beats, if we complete 2 handpaths we will get 3 poi beats, which because it is a whole number should produce a more complete looking pattern for us. We can easily perform this operation by setting t to equal all values between 0 and 4pi, or completing two repetitions.

Now we have a completed pattern where the poi path intersects itself at each corner of the triangle. Viewed head-on, this pattern will appear to look very similar to a triangle, as it does in this long exposure photograph where it is performed with a triquetra. Below is an animation of how the poi tracks through this pattern.

For another popular antibend toroid, we will model a pentagram. This toroid is much trickier! Pentagrams are generated via antispin when the poi completes -1.5 beats for each handpath, but a toroid will be different because the poi’s planes behave more like a staff than a poi. In this case, we are going to want the plane to complete 1/4 of a rotation per handpath to set a base plane shape that is a 5-pointed star polygon. The poi, then, will need to complete 1.25 beats per handpath to create the proper pattern. Thus, our equation is x=sint+(cos(1.25t))sin(-1/4t), y=cost+(cos(1.25t))sin(-1/4t), z=sin(1.25t). As we learned with the triangle, when the poi path has a number of beats that appears as a fraction, we have to perform multiple handpaths to catch up to it and generate a complete pattern. Because that number is 1/4 in this case, we need four handpaths to complete the pattern, so t is equal to all values between 0 and 8pi.


Again, we get an antibend toroid pattern where the poi traces a path along the outside edge of the torus, closely resembling a star polygon with straight edges and tight angles. An example of this toroid being performed with a long exposure photograph can be viewed here.

Let us model one final toroid with two variations to close out this section and see if we can’t derive a few conclusions about toroid behavior from these examples. Our last example will be much simpler to model than either of our previous examples--this will be an antibend toroid with four corners rather than three or five. Compared to our last two examples, the equation for a four-pointed pattern is relatively simple. It will be x=sint+(cos(2t))sin(-t), y=cost+(cos(2t))sin(-t), z=sin(2t) with t again returning to being equal to all values between 0 and 2.

From above, this pattern looks not unlike a square or a diamond with slightly curved sides.

Because the angles at the corners of this pattern approach 90 degrees (or 2 if we are working in radians), it is actually fairly difficult to accomplish this pattern with poi and maintain the angles cleanly, so it is a habit among poi spinners who perform this pattern to include what are called “grace” beats to stabilize the poi every quarter of the shape to prevent the pattern from looking a mess. Fortunately, we can model the grace beats and not lose the overall integrity of our equation. Because they require 1.5 beats per corner of the pattern, we just take the t multiplier on our two cos functions on the x and y axes as well as our sin function on the z axis and multiply it by 1.5, resulting in 6 being our new multiplier for this term. The resulting equation is x=sint+(cos(6t))sin(-t), y=cost+(cos(6t))sin(-t), z=sin(6t) and the graph looks like this:

Those who have performed this pattern will instantly notice that something is wrong: the grace beat is being performed on the sides of the pattern rather than the corners. Fortunately, this is just a simple matter of changing the phasing of the pattern. We can accomplish this by now adding to 6t to shift the pattern of the poi beats a half a circle. The resulting equation is x=sint+(cos(6t+pi))sin(-t), y=cost+(cos(6t+pi))sin(-t), z=sin(6t+pi).

This path now looks like a cross between the 4-petal isobend we looked at in the last section and the 4-corner antibend because in essence it is. At each corner we have a grace beat from which we are able to jump to the next corner. This lesson on phasing the poi beats of an toroid will again become important in the section on probend toroids. You’ll note, I’m accomplishing this in a different fashion than I did in our section on modeling isolations in 2D. The reason for this will become clear when I present an equation that includes variables to model each and every pattern presented in this document.

The reader will note that unlike the antibend triangle and pentagram, the antibend square required only one handpath to complete. This is just an interesting hiccup in the math--antibend patterns with an odd number of points will always require multiple handpaths of an even number to complete because each corner of the poi path reverses the direction of the poi. If you think of the rotation of the poi as having two sides (you could think of it as when the poi is rotating “up” vs “down” or in front of you vs behind you), the poi will return to the beginning of the handpath traveling in the opposite direction it started in. Thus, to return the poi to its origin, the number of handpaths needs to be doubled.

c. Modeling Probend Toroids

Like antibend toroids, probend toroids are also built on the notion that the poi plane rotates more freely in relation to the handpath. In this case, the plane will rotate in the same direction as the hand, but complete more than one rotation in the process. To give one such example, we will model a probend pattern that will have 4 “petals”. To do this we will use the equation x=sint+(cos(2t))sin(3t), y=cost+(cos(2t))sin(3t), z=sin(2t) to create this very odd-looking pattern:

It would be extremely difficult to perform this pattern given that a very rapid bend occurs at the top and bottom of the pattern. If, however, we use the same trick we learned for changing the phasing of an antibend with grace beats, we arrive at x=sint+(cos(2t+pi))sin(3t), y=cost+(cos(2t+pi))sin(3t), z=sin(2t+pi) and get a much different result:

I will present this shape from a few other perspectives as well:

It may be difficult to make out from these perspectives, but this probend can be described as consisting of a series of 4 arcs between petals where the petals then switch the plane of the poi back and forth along the z axis. This is the least-explored and most difficult to understand type of toroid and results in the opposite pattern as the antibend: in a probend, the poi travels a path across only the inside surface of the torus. It is a difficult maneuver to perform cleanly, but there are a few video examples of this type of toroid being performed, one of which can be found here.

Now that we have viewed examples of all three types of toroids, we can set down a series of variables and equations that are capable of describing any toroid pattern as well as set down certain rules governing the relationships between the values of variables in said equations.


Where c is the number of poi beats in the overall pattern, d is the phasing offset of the poi path within the pattern and f is the number of beats the poi plane will complete per handpath. To start making sense of how these values interrelate, let us start with f because it will likely be the most difficult variable to comprehend. This is because f now functions like a staff rotating rather than a poi rotating and a staff has two ends instead of one. Now we derive the number of petals p in the equation with p=2|1-f|. Or, if we’d like to think of antispin flowers as having negative petals and inspin flowers positive petals, the equation will be p=2(1-f). Which will be more useful to us because we can now solve the equation for f in order to find the value of f when we know how many petals we are hoping to produce in our pattern. For example, if we wish to have a -3 petal pattern (triangle), we can use f=(p/2)+1 to find f=-1/2, exactly the number we used for our antibend triangle!

In the next installment, we'll present a generalized equation for modeling poi patterns and talk a little about composite patterns such as stalls and CAPs.

Your rating: None Average: 3 (4 votes)

Subscribe for updates!

* indicates required