Plücker coordinates

In geometry, Plücker coordinates, introduced by Julius Plücker in the 19th century, are a way to assign six homogeneous coordinates to each line in projective 3-space, $\mathbb P^3$. Because they satisfy a quadratic constraint, they establish a one-to-one correspondence between the 4-dimensional space of lines in $\mathbb P^3$ and points on a quadric in $\mathbb P^5$ (projective 5-space). A predecessor and special case of Grassmann coordinates (which describe $k$-dimensional linear subspaces, or flats, in an $n$-dimensional Euclidean space), Plücker coordinates arise naturally in geometric algebra. They have proved useful for computer graphics, and also can be extended to coordinates for the screws and wrenches in the theory of kinematics used for robot control.

Geometric intuition
A line $L$ in 3-dimensional Euclidean space is determined by two distinct points that it contains, or by two distinct planes that contain it. Consider the first case, with points $$x=(x_1,x_2,x_3)$$ and $$y=(y_1,y_2,y_3).$$ The vector displacement from $x$ to $y$ is nonzero because the points are distinct, and represents the direction of the line. That is, every displacement between points on $L$ is a scalar multiple of $d = y – x$. If a physical particle of unit mass were to move from $x$ to $y$, it would have a moment about the origin. The geometric equivalent to this moment, is a vector whose direction is perpendicular to the plane containing $L$ and the origin, and whose length equals twice the area of the triangle formed by the displacement and the origin. Treating the points as displacements from the origin, the moment is $m = x × y$, where "×" denotes the vector cross product. For a fixed line, $L$, the area of the triangle is proportional to the length of the segment between $x$ and $y$, considered as the base of the triangle; it is not changed by sliding the base along the line, parallel to itself. By definition the moment vector is perpendicular to every displacement along the line, so $d ⋅ m = 0$, where "⋅" denotes the vector dot product.

Although neither $d$ nor $m$ alone is sufficient to determine $L$, together the pair does so uniquely, up to a common (nonzero) scalar multiple which depends on the distance between $x$ and $y$. That is, the coordinates


 * $$(\mathbf d : \mathbf m ) = (d_1:d_2:d_3\ :\ m_1:m_2:m_3)$$

may be considered homogeneous coordinates for $L$, in the sense that all pairs $(λd : λm)$, for $λ ≠ 0$, can be produced by points on $L$ and only $L$, and any such pair determines a unique line so long as $d$ is not zero and $d ⋅ m = 0$. Furthermore, this approach extends to include points, lines, and a plane "at infinity", in the sense of projective geometry. In addition a point $$x$$ lies on the line $L$ if and only if $$x \times d = m$$.


 * Example. Let $x = (2, 3, 7)$ and $y = (2, 1, 0)$. Then $(d : m) = (0 : −2 : −7 : −7 : 14 : −4)$.

Alternatively, let the equations for points $x$ of two distinct planes containing $L$ be


 * $$\begin{align}

0 &= a + \mathbf a \cdot \mathbf x, \\ 0 &= b + \mathbf b \cdot \mathbf x. \end{align}$$

Then their respective planes are perpendicular to vectors $a$ and $b$, and the direction of $L$ must be perpendicular to both. Hence we may set $d = a × b$, which is nonzero because $a, b$ are neither zero nor parallel (the planes being distinct and intersecting). If point $x$ satisfies both plane equations, then it also satisfies the linear combination


 * $$\begin{align}

0 &= a (b + \mathbf b \cdot \mathbf x) - b(a+ \mathbf a \cdot \mathbf x) \\ &= (a \mathbf b - b \mathbf a) \cdot \mathbf x \end{align}$$

That is,


 * $$\mathbf m = a \mathbf b - b \mathbf a$$

is a vector perpendicular to displacements to points on $L$ from the origin; it is, in fact, a moment consistent with the $d$ previously defined from $a$ and $b$.

Proof 1: Need to show that
 * $$\mathbf m = a \mathbf b - b \mathbf a = \mathbf r \times \mathbf d = \mathbf r \times (\mathbf a \times \mathbf b).$$what is "r"?

Without loss of generality, let


 * $$\mathbf a \cdot \mathbf a = \mathbf b \cdot \mathbf b = 1.$$

Point $L$ is the origin. Line $B$ passes through point $L$ and is orthogonal to the plane of the picture. The two planes pass through $D$ and $CD$ and are both orthogonal to the plane of the picture. Points $DE$ and $C$ are the closest points on those planes to the origin $E$, therefore angles $∠ BCD$ and $∠ BED$ are right angles and so the points $B$ lie on a circle (due to a corollary of Thales's theorem). $B, C, D, E$ is the diameter of that circle.


 * $$\begin{align}

& \mathbf a := \frac{BE}{||BE||}, \quad \mathbf b := \frac{BC}{||BC||}, \quad \mathbf r := BD; \\[4pt] & - \! a = ||BE|| = ||BF||, \quad -b = ||BC|| = ||BG||; \\[4pt] & \mathbf m = a \mathbf b - b \mathbf a = FG \\[4pt] & || \mathbf d || = || \mathbf a \times \mathbf b || = \sin\angle FBG \end{align}$$

Angle $∠ BHF$ is a right angle due to the following argument. Let $ε := ∠ BEC$. Since $△ BEC ≅ △ BFG$ (by side-angle-side congruence), then $∠ BFG = ε$. Since $∠ BEC + ∠ CED = 90°$, let $ε' := 90° – ε = ∠ CED$. By the inscribed angle theorem, $∠ DEC = ∠ DBC$, so $∠ DBC = ε'$. $∠ HBF + ∠ BFH + ∠ FHB = 180°$; $ε' + ε + ∠ FHB = 180°$, $ε + ε' = 90°$; therefore, $∠ FHB = 90°$. Then $∠ DHF$ must be a right angle as well.

Angles $∠ DCF, ∠ DHF$ are right angles, so the four points $BD$ lie on a circle, and (by the intersecting secants theorem)


 * $$||BF|| \, ||BC|| = ||BH|| \, ||BD||$$

that is,
 * $$\begin{align}

&ab \sin\angle FBG = ||BH|| \, || \mathbf r || \sin\angle FBG, \\[4pt] & 2 \, \text{Area}_{\triangle BFG} = ab \sin\angle FBG = ||BH|| \, ||FG|| = ||BH|| \, || \mathbf r || \sin\angle FBG, \\[4pt] & || \mathbf m || = ||FG|| = || \mathbf r || \sin\angle FBG = || \mathbf r || \, || \mathbf d ||, \\[4pt] & \mathbf m = \mathbf r \times \mathbf d. \blacksquare \end{align}$$

Proof 2:

Let


 * $$\mathbf a \cdot \mathbf a = \mathbf b \cdot \mathbf b = 1.$$

This implies that


 * $$a = -||BE||, \quad b = -||BC||.$$

According to the vector triple product formula,


 * $$\mathbf r \times (\mathbf a \times \mathbf b) = (\mathbf r \cdot \mathbf b) \mathbf a - (\mathbf r \cdot \mathbf a) \mathbf b.$$

Then


 * $$\begin{align}

\mathbf r \times (\mathbf a \times \mathbf b) &= \mathbf a \, || \mathbf r || \, || \mathbf b || \cos\angle DBC - \mathbf b \, ||\mathbf r || \, || \mathbf a || \cos\angle DBE \\[4pt] &= \mathbf a \, || \mathbf r || \cos\angle DBC - \mathbf b \, || \mathbf r || \cos\angle DBE \\[4pt] &= \mathbf a \, || BC || - \mathbf b \, || BE || \\[4pt] &= -b \mathbf a - (-a) \mathbf b \\[4pt] &= a \mathbf b - b \mathbf a\ \ \blacksquare \end{align}$$

When $$|| \mathbf r || = 0,$$ the line $C, D, H, F$ passes the origin with direction $d$. If $$|| \mathbf r || > 0,$$ the line has direction $d$; the plane that includes the origin and the line $L$ has normal vector $m$; the line is tangent to a circle on that plane (normal to $m$ and perpendicular to the plane of the picture) centered at the origin and with radius $$|| \mathbf r ||.$$


 * Example. Let $a_{0} = 2$, $a = (−1, 0, 0)$ and $b_{0} = −7$, $b = (0, 7, −2)$. Then $(d : m) = (0 : −2 : −7 : −7 : 14 : −4)$.

Although the usual algebraic definition tends to obscure the relationship, $(d : m)$ are the Plücker coordinates of $L$.

Primal coordinates
In a 3-dimensional projective space $L$, let $\mathbb P^3$ be a line through distinct points $L$ and $x$ with homogenous coordinates $(x0 : x1 : x2 : x3)$ and $(y0 : y1 : y2 : y3)$.

The Plücker coordinates $y$ are defined as follows:
 * $$p_{ij} = \begin{vmatrix} x_{i} & y_{i} \\ x_{j} & y_{j}\end{vmatrix} = x_{i}y_{j}-x_{j}y_{i} . $$

(the skew symmetric matrix whose elements are $pij$ is also called the Plücker matrix ) This implies $p_{ii} = 0$ and $p_{ij} = −p_{ji}$, reducing the possibilities to only six (4 choose 2) independent quantities. The sextuple


 * $$(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12}) $$

is uniquely determined by $p_{ij}$ up to a common nonzero scale factor. Furthermore, not all six components can be zero. Thus the Plücker coordinates of $L$ may be considered as homogeneous coordinates of a point in a 5-dimensional projective space, as suggested by the colon notation.

To see these facts, let $L$ be the 4×2 matrix with the point coordinates as columns.


 * $$ M = \begin{bmatrix} x_0 & y_0 \\ x_1 & y_1 \\ x_2 & y_2 \\ x_3 & y_3 \end{bmatrix}$$

The Plücker coordinate $M$ is the determinant of rows $p_{ij}$ and $i$ of $j$. Because $x$ and $y$ are distinct points, the columns of $M$ are linearly independent; $M$ has rank 2. Let $M$ be a second matrix, with columns $x&prime;, y&prime;$ a different pair of distinct points on $M&prime;$. Then the columns of $L$ are linear combinations of the columns of $M&prime;$; so for some 2×2 nonsingular matrix $Λ$,


 * $$ M' = M\Lambda . $$

In particular, rows $M$ and $i$ of $j$ and $M&prime;$ are related by


 * $$ \begin{bmatrix} x'_{i} & y'_{i}\\x'_{j}& y'_{j} \end{bmatrix} = \begin{bmatrix} x_{i} & y_{i}\\x_{j}& y_{j} \end{bmatrix} \begin{bmatrix} \lambda_{00} & \lambda_{01} \\ \lambda_{10} & \lambda_{11} \end{bmatrix} . $$

Therefore, the determinant of the left side 2×2 matrix equals the product of the determinants of the right side 2×2 matrices, the latter of which is a fixed scalar, $det Λ$. Furthermore, all six 2×2 subdeterminants in $M$ cannot be zero because the rank of $M$ is 2.

Plücker map
Denote the set of all lines (linear images of $M$) in $\mathbb P^1$ by $G_{1,3}$. We thus have a map:
 * $$\begin{align}

\alpha \colon \mathrm{G}_{1,3} & \rightarrow \mathbb P^5 \\ L & \mapsto L^{\alpha}, \end{align}$$ where
 * $$ L^{\alpha}=(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12}) . $$

Dual coordinates
Alternatively, a line can be described as the intersection of two planes. Let $\mathbb P^3$ be a line contained in distinct planes $a$ and $b$ with homogeneous coefficients $(a0 : a1 : a2 : a3)$ and $(b0 : b1 : b2 : b3)$, respectively. (The first plane equation is $\sum_k a^k x_k =0,$ for example.) The dual Plücker coordinate $L$ is


 * $$p^{ij} = \begin{vmatrix} a^{i} & a^{j} \\ b^{i} & b^{j}\end{vmatrix} = a^{i}b^{j}-a^{j}b^{i} . $$

Dual coordinates are convenient in some computations, and they are equivalent to primary coordinates:

(p_{01}:p_{02}:p_{03}:p_{23}:p_{31}:p_{12})= (p^{23}:p^{31}:p^{12}:p^{01}:p^{02}:p^{03}) $$ Here, equality between the two vectors in homogeneous coordinates means that the numbers on the right side are equal to the numbers on the left side up to some common scaling factor $λ$. Specifically, let $(i, j, k, ℓ)$ be an even permutation of $(0, 1, 2, 3)$; then


 * $$p_{ij} = \lambda p^{k\ell} . $$

Geometry
To relate back to the geometric intuition, take $x_{0} = 0$ as the plane at infinity; thus the coordinates of points not at infinity can be normalized so that $x_{0} = 1$. Then $p^{ij}$ becomes


 * $$ M = \begin{bmatrix} 1 & 1 \\ x_1 & y_1 \\ x_2& y_2 \\ x_3 & y_3 \end{bmatrix}, $$

and setting $$x=(x_1,x_2,x_3)$$ and $$y=(y_1,y_2,y_3)$$, we have $$d=(p_{01},p_{02},p_{03})$$and $$m=(p_{23},p_{31},p_{12})$$.

Dually, we have $$d=(p^{23},p^{31},p^{12})$$ and $$m=(p^{01},p^{02},p^{03}).$$

Plane equations
If the point $$\mathbf z = (z_0:z_1:z_2:z_3)$$ lies on $M$, then the columns of


 * $$ \begin{bmatrix} x_0 & y_0 & z_0 \\ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \end{bmatrix} $$

are linearly dependent, so that the rank of this larger matrix is still 2. This implies that all 3×3 submatrices have determinant zero, generating four (4 choose 3) plane equations, such as



\begin{align} 0 & = \begin{vmatrix} x_0 & y_0 & z_0 \\ x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \end{vmatrix} \\[5pt] & = \begin{vmatrix} x_1 & y_1 \\ x_2 & y_2 \end{vmatrix} z_0 - \begin{vmatrix} x_0 & y_0 \\ x_2 & y_2 \end{vmatrix} z_1 + \begin{vmatrix} x_0 & y_0 \\ x_1 & y_1 \end{vmatrix} z_2 \\[5pt] & = p_{12} z_0 - p_{02} z_1 + p_{01} z_2. \\[5pt] & = p^{03} z_0 + p^{13} z_1 + p^{23} z_2. \end{align} $$

The four possible planes obtained are as follows.


 * $$ \begin{matrix}

0 & = & {}+ p_{12} z_0 & {}- p_{02} z_1 & {}+ p_{01} z_2 & \\ 0 & = & {}- p_{31} z_0 & {}- p_{03} z_1 & & {}+ p_{01} z_3 \\ 0 & = & {}+p_{23} z_0 & & {}- p_{03} z_2 & {}+ p_{02} z_3 \\ 0 & = & & {}+p_{23} z_1 & {}+ p_{31} z_2 & {}+ p_{12} z_3 \end{matrix} $$

Using dual coordinates, and letting $(a0 : a1 : a2 : a3)$ be the line coefficients, each of these is simply $a^{i} = p^{ij}$, or


 * $$ 0 = \sum_{i=0}^3 p^{ij} z_i, \qquad j = 0,\ldots,3 . $$

Each Plücker coordinate appears in two of the four equations, each time multiplying a different variable; and as at least one of the coordinates is nonzero, we are guaranteed non-vacuous equations for two distinct planes intersecting in $L$. Thus the Plücker coordinates of a line determine that line uniquely, and the map α is an injection.

Quadratic relation
The image of $α$ is not the complete set of points in $L$; the Plücker coordinates of a line $\mathbb P^5$ satisfy the quadratic Plücker relation



\begin{align} 0 & = p_{01}p^{01}+p_{02}p^{02}+p_{03}p^{03} \\ & = p_{01}p_{23}+p_{02}p_{31}+p_{03}p_{12}. \end{align} $$

For proof, write this homogeneous polynomial as determinants and use Laplace expansion (in reverse).



\begin{align} 0 & = \begin{vmatrix}x_0&y_0\\x_1&y_1\end{vmatrix}\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}+ \begin{vmatrix}x_0&y_0\\x_2&y_2\end{vmatrix}\begin{vmatrix}x_3&y_3\\x_1&y_1\end{vmatrix}+ \begin{vmatrix}x_0&y_0\\x_3&y_3\end{vmatrix}\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix} \\[5pt] & = (x_0 y_1-y_0 x_1)\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- (x_0 y_2-y_0 x_2)\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ (x_0 y_3-y_0 x_3)\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix} \\[5pt] & = x_0 \left(y_1\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- y_2\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ y_3\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix}\right) -y_0 \left(x_1\begin{vmatrix}x_2&y_2\\x_3&y_3\end{vmatrix}- x_2\begin{vmatrix}x_1&y_1\\x_3&y_3\end{vmatrix}+ x_3\begin{vmatrix}x_1&y_1\\x_2&y_2\end{vmatrix}\right) \\[5pt] & = x_0 \begin{vmatrix}x_1&y_1&y_1\\x_2&y_2&y_2\\x_3&y_3&y_3\end{vmatrix} -y_0 \begin{vmatrix}x_1&x_1&y_1\\x_2&x_2&y_2\\x_3&x_3&y_3\end{vmatrix} \end{align} $$

Since both 3×3 determinants have duplicate columns, the right hand side is identically zero.

Another proof may be done like this: Since vector


 * $$ d = \left( p_{01}, p_{02}, p_{03} \right) $$

is perpendicular to vector


 * $$ m = \left( p_{23}, p_{31}, p_{12} \right) $$

(see above), the scalar product of $L$ and $d$ must be zero. q.e.d.

Point equations
Letting $(x0 : x1 : x2 : x3)$ be the point coordinates, four possible points on a line each have coordinates $x_{i} = p_{ij}$, for $j = 0, 1, 2, 3$. Some of these possible points may be inadmissible because all coordinates are zero, but since at least one Plücker coordinate is nonzero, at least two distinct points are guaranteed.

Bijectivity
If $$(q_{01}:q_{02}:q_{03}:q_{23}:q_{31}:q_{12})$$ are the homogeneous coordinates of a point in $m$, without loss of generality assume that $q_{01}$ is nonzero. Then the matrix


 * $$ M = \begin{bmatrix} q_{01} & 0 \\ 0 & q_{01} \\ -q_{12} & q_{02} \\ q_{31} & q_{03} \end{bmatrix} $$

has rank 2, and so its columns are distinct points defining a line $\mathbb P^5$. When the $L$ coordinates, $\mathbb P^5$, satisfy the quadratic Plücker relation, they are the Plücker coordinates of $q_{ij}$. To see this, first normalize $q_{01}$ to 1. Then we immediately have that for the Plücker coordinates computed from $L$, $p_{ij} = q_{ij}''$, except for


 * $$ p_{23} = - q_{03} q_{12} - q_{02} q_{31} . $$

But if the $M$ satisfy the Plücker relation
 * $$q_{23} + q_{02}q_{31} + q_{03}q_{12} = 0,$$

then $p_{23} = q_{23}$, completing the set of identities.

Consequently, $α$ is a surjection onto the algebraic variety consisting of the set of zeros of the quadratic polynomial


 * $$ p_{01}p_{23}+p_{02}p_{31}+p_{03}p_{12} . $$

And since $α$ is also an injection, the lines in $q_{ij}$ are thus in bijective correspondence with the points of this quadric in $\mathbb P^3$, called the Plücker quadric or Klein quadric.

Uses
Plücker coordinates allow concise solutions to problems of line geometry in 3-dimensional space, especially those involving incidence.

Line-line crossing
Two lines in $\mathbb P^5$ are either skew or coplanar, and in the latter case they are either coincident or intersect in a unique point. If $\mathbb P^3$ and $p_{ij}$ are the Plücker coordinates of two lines, then they are coplanar precisely when


 * $$\mathbf d \cdot \mathbf m' + \mathbf m \cdot \mathbf d' = 0,$$

as shown by



\begin{align} 0 & = p_{01}p'_{23} + p_{02}p'_{31} + p_{03}p'_{12} + p_{23}p'_{01} + p_{31}p'_{02} + p_{12}p'_{03} \\[5pt] & = \begin{vmatrix}x_0&y_0&x'_0&y'_0\\ x_1&y_1&x'_1&y'_1\\ x_2&y_2&x'_2&y'_2\\ x_3&y_3&x'_3&y'_3\end{vmatrix}. \end{align} $$

When the lines are skew, the sign of the result indicates the sense of crossing: positive if a right-handed screw takes $p&prime;_{ij}$ into $L$, else negative.

The quadratic Plücker relation essentially states that a line is coplanar with itself.

Line-line join
In the event that two lines are coplanar but not parallel, their common plane has equation


 * $$0 = (\mathbf m \cdot \mathbf d')x_0 + (\mathbf d \times \mathbf d')\cdot \mathbf x,$$

where $$x=(x_1,x_2,x_3).$$

The slightest perturbation will destroy the existence of a common plane, and near-parallelism of the lines will cause numeric difficulties in finding such a plane even if it does exist.

Line-line meet
Dually, two coplanar lines, neither of which contains the origin, have common point


 * $$(x_0:\mathbf x) = (\mathbf d \cdot \mathbf m': \mathbf m \times \mathbf m').$$

To handle lines not meeting this restriction, see the references.

Plane-line meet
Given a plane with equation


 * $$ 0 = a^0x_0 + a^1x_1 + a^2x_2 + a^3x_3, $$

or more concisely,
 * $$0 = a^0x_0 + \mathbf a \cdot \mathbf x;$$

and given a line not in it with Plücker coordinates $(d : m)$, then their point of intersection is


 * $$(x_0 : \mathbf x) = (\mathbf a \cdot \mathbf d : \mathbf a \times \mathbf m - a_0\mathbf d) .$$

The point coordinates, $(x0 : x1 : x2 : x3)$, can also be expressed in terms of Plücker coordinates as


 * $$ x_i = \sum_{j \ne i} a^j p_{ij}, \qquad i = 0 \ldots 3 . $$

Point-line join
Dually, given a point $(y_{0} : y)$ and a line not containing it, their common plane has equation


 * $$0 = (\mathbf y \cdot \mathbf m) x_0 + (\mathbf y \times \mathbf d - y_0 \mathbf m)\cdot \mathbf x.$$

The plane coordinates, $(a0 : a1 : a2 : a3)$, can also be expressed in terms of dual Plücker coordinates as


 * $$ a^i = \sum_{j \ne i} y_j p^{ij}, \qquad i = 0 \ldots 3 . $$

Line families
Because the Klein quadric is in $L&prime;$, it contains linear subspaces of dimensions one and two (but no higher). These correspond to one- and two-parameter families of lines in $\mathbb P^5$.

For example, suppose $\mathbb P^3$ are distinct lines in $L, L&prime;$ determined by points $x, y$ and $x&prime;, y&prime;$, respectively. Linear combinations of their determining points give linear combinations of their Plücker coordinates, generating a one-parameter family of lines containing $\mathbb P^3$ and $L&prime;$. This corresponds to a one-dimensional linear subspace belonging to the Klein quadric.

Lines in plane
If three distinct and non-parallel lines are coplanar; their linear combinations generate a two-parameter family of lines, all the lines in the plane. This corresponds to a two-dimensional linear subspace belonging to the Klein quadric.

Lines through point
If three distinct and non-coplanar lines intersect in a point, their linear combinations generate a two-parameter family of lines, all the lines through the point. This also corresponds to a two-dimensional linear subspace belonging to the Klein quadric.

Ruled surface
A ruled surface is a family of lines that is not necessarily linear. It corresponds to a curve on the Klein quadric. For example, a hyperboloid of one sheet is a quadric surface in $L$ ruled by two different families of lines, one line of each passing through each point of the surface; each family corresponds under the Plücker map to a conic section within the Klein quadric in $\mathbb P^3$.

Line geometry
During the nineteenth century, line geometry was studied intensively. In terms of the bijection given above, this is a description of the intrinsic geometry of the Klein quadric.

Ray tracing
Line geometry is extensively used in ray tracing application where the geometry and intersections of rays need to be calculated in 3D. An implementation is described in Introduction to Plücker Coordinates written for the Ray Tracing forum by Thouis Jones.