This page collects interactive constructions, dynamic visualizations, and exploratory computational models. Projects serve as mathematical laboratories — supporting intuition, testing structural conjectures, and providing visual companions to formal derivations in the Mathematics section.


🧮 Triangle Centers

What began in November 2020 as a series of contributions to the Brilliant.org community has evolved into a comprehensive digital laboratory for Euclidean and algebraic geometry. Following the sunsetting of the Brilliant community features, I transitioned my focus from solving static problems to building dynamic visualization tools. Using tools, like JavaScript and Geogebra, I’ve developed a suite of interactive ā€˜Boards’ (including the Nagel and Feuerbach studies) that allow users to manipulate vertices and observe the resulting loci of triangle centers in real-time.

This project represents a 4-year journey from community-driven problem solving to the independent development of STEM educational content, resulting in the discovery and documentation of complex rational curves and geometric identities. More interactive projects of different geometric setups to come soon!

Loci of Triangle Centers in Thales Configuration (In Progress)

For this section, suppose that a unit circle inscribes a triangle $\triangle ABC$, where points $A = (1,0)$ and $B = (-1,0)$ are fixed. As point $C$ varies, where $\theta \in [0,2\pi)$ the triangle center $X_n$ generates a locus. By considering $C = \left(\cos\theta, \sin\theta\right)$, where $\theta \in [0, \pi)$, the side lengths are

\[\begin{array}{rl} a =& \left|\overline{BC}\right| = 2\cos\dfrac{\theta}{2}\\ b =& \left|\overline{AC}\right| = 2\sin\dfrac{\theta}{2}\\ c =& \left|\overline{AB}\right| = 2 \end{array}\]

and the angles (in radians) are

\[\begin{array}{rl} \alpha =& \angle A = \dfrac{1}{2}\left(\pi - \theta\right)\\ \beta =& \angle B = \dfrac{1}{2}\theta\\ \gamma =& \angle C = \dfrac{\pi}{2} \end{array}\]

In classical geometry, we learn that the altitudes of a triangle concur at a single point. But as we move beyond the basics, a mystery unfolds: there are over 60,000 documented triangle centers, each with its own unique ā€œpersonalityā€ and algebraic signature.

How do these points move? What curves do they trace as the right triangle $\triangle ABC$ itself deforms? This collection of geometry projects isn’t just a collection of proofs—it is a computational laboratory designed to uncover the hidden logic of the plane.

  • Triangle Centers on the Thales Circle (Intro; JSXGraph):
    Launch Introduction

Experimental Geometry: Kimberling Triangle Centers

The notebook covers the research article noted in Mathematics section. Explore the fascinating world of triangle centers ($X_1$ - $X_n$) with interactive tools and dynamic visualizations.

  • Notebook (GitHub):
    View Notebook

  • Interactive Dashboard (Voila):
    Launch Dashboard

Each of these triangle centers between $X_1$ and $X_6$ generates a distinct locus as tabulated below:

ETC Reference Name Trilinear Coordinates Barycentric Coordinates
$X_1$ Incenter $1 : 1 : 1$ $a : b : c$
$X_2$ Centroid $bc : ac : ab$ $\dfrac{1}{3} : \dfrac{1}{3} : \dfrac{1}{3}$
$X_3$ Circumcenter $\cos\alpha : \cos\beta : \cos\gamma$ $a^2(b^2+c^2-a^2) : b^2(a^2+c^2-b^2) : c^2(a^2+b^2-c^2)$
$X_4$ Orthocenter $\sec\alpha : \sec\beta : \sec\gamma$ $(a^2+b^2-c^2)(c^2+a^2-b^2) : (b^2+c^2-a^2)(a^2+b^2-c^2) : (c^2+a^2-b^2)(b^2+c^2-a^2)$
$X_5$ Nine-point Center $\cos(\beta-\gamma) : \cos(\gamma-\alpha) : \cos(\alpha-\beta)$ $a^2(b^2+c^2)-(b^2-c^2)^2 : b^2(c^2+a^2)-(c^2-a^2)^2 : c^2(a^2+b^2)-(a^2-b^2)^2$
$X_6$ Symmedian Point $a : b : c$ $a^2 : b^2 : c^2$

See below for interactive widgets that support notebooks attached:

  • Geogebra:

Highlights:

  • Compute and visualize multiple triangle centers including centroid ($X_1$), incenter ($X_2$), circumcenter ($X_3$), and more.
  • Explore dynamic loci: see how changing vertex positions affects center locations.
  • Built using Jupyter Notebook, ipywidgets, and Voila for interactive exploration.
  • Fully reproducible — all code and dependencies are included in the repository.

Selected Triangle Centers

The following are snippets of my selected triangle centers.

Loci of Incenter $X_1$, Centroid $X_2$ and Nagel Point $X_8$

Three cycling points
As point $C$ varies along the circumference, with points $A = (1,0)$ and $B = (-1,0)$ fixed, points $X_1$, $X_2$ and $X_8$ rotate simultaneously, but at different directions.

This interactive snippet supports the example at the end of my research article, where we analyze three following points:

ETC Reference Name Trilinear Coordinates Barycentric Coordinates
$X_1$ Incenter $1 : 1 : 1$ $a : b : c$
$X_2$ Centroid $bc : ac : ab$ $\dfrac{1}{3} : \dfrac{1}{3} : \dfrac{1}{3}$
$X_8$ Nagel Point $\dfrac{b+c-a}{a} : \dfrac{a+c-b}{b} : \dfrac{a+b-c}{c}$ $s-a : s-b : s-c$

where $s = \frac{1}{2}(a + b + c)$ denotes the semiperimeter. Known for lying on the Nagel line, these points are governed by the following property:

\[X_8 + 2X_1 = 3X_2\]

While points $X_1$ and $X_2$ both rotate counterclockwise, point $X_8$ rotates clockwise! Check out the widget to visualize how these three special points interact with the parameter $\theta$.

  • Geogebra:
  • JSXGraph:

Ellipse Locus of the Lemoine/Symmedian Point $X_6$

Feuerbach Bow-tie Locus
The ellipse locus of the Lemoine point $X_{6}$.

One of the elegant-looking loci is the ellipse. Above is the diagram of the Lemoine point $X_6$ whose trilinear coordinates are

\[a : b : c\]

The exact form is $x^2 + 4y^2 = 1$, where the parametric curve with the substitution $t = \tan\frac{\theta}{4}$ is

\[X_6(t) = \left(\dfrac{t^4 - 6t^2 + 1}{(1+t^2)^2}, \dfrac{2t - 2t^3}{(1+t^2)^2}\right)\]

View widgets to see how the point $X_6$ interacts with $\theta \in [0, 2\pi)$:

  • Geogebra:
  • JSXGraph:

Bow-Tie Shaped Locus of the Feuerbach Point $X_{11}$

Feuerbach Bow-tie Locus
The bow-tie shaped locus of the Feuerbach point $X_{11}$.

Another special mention of mine is the Feuerbach point $X_{11}$. The trilinear coordinates of the Feuerbach point $X_{11}$ is

\[1 - \cos\left(\beta - \gamma\right) : 1 - \cos\left(\gamma - \alpha\right) : 1 - \cos\left(\alpha - \eta\right)\]

Unlike some triangle centers whose loci are ellipses or circles, the locus of $X_{11}$ is bow-tied shape whose representation of the curve in the upper half plane can be presented as

\[(x^2 + y^2)^3 - (1 + 2y)(x^2 + y^2)^2 + 2y(x^2 + y^2) + y^2 = 0\]

With $t = \tan\frac{\theta}{4}$, where $t \in [0, \pi)$, we have

\[X_11(t) = \left( \dfrac{1 - 4t + 3t^2 + 8t^3 - 13t^4 - 4t^5 + t^6}{(1 + t^2)^2(1 - 4t + 5t^2)}, \dfrac{2t(1 - t)(1 - 2t - t^2)^2}{(1 + t^2)^2(1 - 4t + 5t^2)} \right)\]

View widgets below to see how the point $X_{11}$ interacts with $\theta \in [0, 2\pi)$:

  • Geogebra:
  • JSXGraph:

Kimberling Triangle Center Loci Compilation (In Progress)

Inspired by my previous dual-role work at AiCure, I displayed interest to extract coordinates and symbolically analyze the locus for each triangle center $X_n$. The half-angle substitution, also known as the Weierstrass substitution, is $t = \tan\frac{\theta}{2}$, where

\[\left( \cos\theta, \sin\theta \right) \mapsto \left( \dfrac{1 - t^2}{1 + t^2}, \dfrac{2t}{1 + t^2} \right)\]

which transforms equations, containing $\sin\theta$ and $\cos\theta$, into rational expressions. In the similar manner, the substitution $t = \tan\frac{\theta}{2^{n}}$ produces the following pattern for powers of $2$’s:

Cosine $t$-Equation Sine $t$-Equation Tangent $t$-Equation
$\cos\!\left(\dfrac{\theta}{2^{n-1}}\right)$ $\dfrac{1-t^2}{1+t^2}$ $\sin\!\left(\dfrac{\theta}{2^{n-1}}\right)$ $\dfrac{2t}{1+t^2}$ $\tan\!\left(\dfrac{\theta}{2^{n-1}}\right)$ $\dfrac{2t}{1-t^2}$
$\cos\!\left(\dfrac{\theta}{2^{n-2}}\right)$ $\dfrac{1-6t^2+t^4}{(1+t^2)^2}$ $\sin\!\left(\dfrac{\theta}{2^{n-2}}\right)$ $\dfrac{4t(1-t^2)}{(1+t^2)^2}$ $\tan\!\left(\dfrac{\theta}{2^{n-2}}\right)$ $\dfrac{4t(1-t^2)}{1-6t^2+t^4}$
$\cos\!\left(\dfrac{\theta}{2^{n-k}}\right)$ $\dfrac{1}{(1+t^2)^{2^k-1}}\displaystyle\sum_{j=0}^{\infty}(-1)^j\dbinom{2^k}{2j}t^{2j}$ $\sin\!\left(\dfrac{\theta}{2^{n-k}}\right)$ $\dfrac{1}{(1+t^2)^{2^k-1}}\displaystyle\sum_{j=0}^{\infty}(-1)^j\dbinom{2^k}{2j+1}t^{2j+1}$ $\tan\!\left(\dfrac{\theta}{2^{n-k}}\right)$ $\dfrac{\displaystyle\sum_{j=0}^{\infty}(-1)^j\binom{2^k}{2j+1}t^{2j+1}}{\displaystyle\sum_{j=0}^{\infty}(-1)^j\binom{2^k}{2j}t^{2j}}$

where $k$ is an integer. Above derivations follow that cosines and sines are related to the complex exponentials:

\[\cos\left(\dfrac{\theta}{2^{n - k}}\right) = \dfrac{\mathrm{Re}\left(\left(1 + it\right)^{2^k}\right)}{(1 + t^2)^{2^{k - 1}}}, \qquad \sin\left(\dfrac{\theta}{2^{n - k}}\right) = \dfrac{\mathrm{Im}\left(\left(1 + it\right)^{2^k}\right)}{(1 + t^2)^{2^{k - 1}}}\]

Since triangle side lengths are of the form $\sin\frac{\theta}{2}$ and $\cos\frac{\theta}{2}$, we can apply that idea for greater powers of $2$’s i.e. $\sin\frac{\theta}{4}$ and $\cos\frac{\theta}{8}$. For instance, if the ā€œdeepestā€ angle factor detected in the expression $\sin\frac{\theta}{2}\cos\frac{\theta}{4}$ is $4$, then the substitution $t = \tan\frac{\theta}{4 \cdot 2} = \tan\frac{\theta}{8}$. The pipeline dynamically chooses the minimal $n$ (the ā€œWeierstrass Depthā€) required to clear all half-angle or quarter-angle identities found in the ETC source.

Extending this to mixed angle denominators, we can deduce that for the universal substitution $t = \tan\left(\frac{\theta}{p}\right)$ where $p$ is an integer,

  • For angle powers of $2$’s only, $p = 2^{\mathrm{max} + 1}$, where $\max$ checks denominators.
  • Otherwise, for angle powers of different prime factors, $p$ takes the least common demoninator of angle denominators. For instance, for expressions, like $\tan\frac{\theta}{3}\cos\frac{\theta}{2}$, we set $t = \tan\frac{\theta}{6}$.

The objective is to extract barycentric coordinates and determine the parametrized curve for each of the triangle centers $X_n$, using the above idea. The following is the list of files generated to analyze the locus:

  • ETC Center Table Repository (Github):
    Visit Repository
  • JupyterLab (Binder):
    View Notebook
  • Classic Notebook (Binder):
    View Notebook

Highlights:

  • Extract barycentric coordinates from 36 pages of Evansville’s Encyclopedia of Triangle Center site.
  • Using the discoveries from the formal derivation, convert barycentric coordinates into parametric curves in the form of $(x(t),y(t))$, where $t = \tan\left(\frac{\theta}{p}\right)$ is the Weierstrass tangent substitution.
  • Includes Jupyter notebooks, Python pipeline and JSON pipeline to better optimize the solver.

Formal derivation in progress: see Mathematics.


Interactive constructions and notebooks are added as analytical work progresses.
Projects cross-reference formal derivations in the Mathematics section wherever applicable.