# Clustering based Contrastive Learning
for Improving Face Representations

Vivek Sharma1,2, Makarand Tapaswi3, M. Saquib Sarfraz1,4 and Rainer
Stiefelhagen1
1Karlsruhe Institute of Technology, 2Massachusetts Institute of Technology,
3Inria Paris, and 4Daimler TSS

###### Abstract

A good clustering algorithm can discover natural groupings in data. These
groupings, if used wisely, provide a form of weak supervision for learning
representations. In this work, we present Clustering-based Contrastive
Learning (_CCL_), a new clustering-based representation learning approach that
uses labels obtained from clustering along with video constraints to learn
discriminative face features. We demonstrate our method on the challenging
task of learning representations for video face clustering. Through several
ablation studies, we analyze the impact of creating pair-wise positive and
negative labels from different sources. Experiments on three challenging video
face clustering datasets: BBT-0101, BF-0502, and ACCIO show that CCL achieves
a new state-of-the-art on all datasets.

##  I Introduction

Learning strong and discriminative representations is important for diverse
applications such as face analysis, medical imaging, and several other
computer vision and natural language processing (NLP) tasks. While
considerable progress has been made using deep neural networks, learning a
representation often requires a large-scale dataset with manually curated
ground-truth labels. To harness the power of deep networks on smaller datasets
and tasks, pre-trained models (_e.g_. ResNet-101 [17] trained on ImageNet,
VGG-Face [27] trained on a large number of face images) are often used as
feature extractors or fine-tuned for the new task.

We introduce a clustering-based learning method CCL to obtain a strong face
representation on top of features extracted from a deep CNN. An ideal
representation has small distances between samples from the same class, and
large inter-class distances in feature space. Different from a fully-
supervised setting where ground-truth labels are often provided by humans, we
view CCL as a self-supervised learning paradigm where ground-truth labels are
obtained automatically based on natural groupings of the dataset.

Self-supervised learning methods are receiving increasing attention as
collecting large-scale datasets is extremely expensive. In NLP, word and
sentence representations (_e.g_. word2vec [23], BERT [7]) are often learned by
modeling the structure of the sentence. In vision, there are efforts to learn
image representations by leveraging spatial context [9], ordering frames in a
short video clip [11, 24], or tracking image regions [41]. There are also
efforts to learn multimodal video representations by ordering video clips
[35].

Among recent works in the self-supervised learning paradigm, [4, 13, 19, 46,
49] propose to learn image representations (often with an auto-encoder) using
a clustering algorithm as objective, or as a means of providing pseudo-labels
for training a deep model. One challenge with the above methods is that the
models need to know the number of clusters (usually the number of categories)
a priori. Our paper is related to the above as we utilize clustering
algorithms to discover the structure of the data, however, we do not assume
knowledge of number of clusters. In fact, our method is based on working with
a clustering setup that yields a large number of clusters with high purity and
few samples per cluster.

Our main contribution, CCL, is a method for refining feature representations
obtained using deep CNNs by discovering dataset clusters with high purity and
typically few samples per cluster, and using these cluster labels as
potentially noisy supervision. In particular, we obtain positive (same class)
and negative (different class) pairs of samples using the cluster labels and
train a Siamese network. We adopt the recently proposed FINCH clustering
algorithm [30] as a backbone since it provides hierarchical partitions with
high purity, does not need any hyper-parameters, and has a low computational
overhead while being extremely fast.

Towards our task of clustering faces in videos, we demonstrate how cluster
labels can be integrated with video constraints to obtain positive (within and
across neighboring clusters) and negative pairs (co-occurring faces and
samples from farthest clusters). Both the cluster labels and video constraints
are used to learn an effective face representation.

Our proposed approach is evaluated on three challenging benchmark video face
clustering datasets: Big Bang Theory (BBT), Buffy the Vampire Slayer (BF) and
Harry Potter (ACCIO). We empirically observe that deep features can be further
refined by using weak cluster labels and video constraints leading to state-
of-the-art performance. Importantly, we also discuss why the cluster labels
may be more effective than using labels from alternative groupings such as
tracking (_e.g_. TSiam [34]).

The remainder of this paper is structured as follows: Section II provides an
overview of related work. In Section III, we propose our method for
clustering-based representation learning, CCL. Extensive experiments, an
ablation study, and comparison to the state-of-the-art are presented in
Section IV. Finally, we conclude our paper in Section V.

##  II Related Work

This section discusses face clustering and identification in videos. We
primarily present methods for face representation learning with/without CNNs,
followed by a short overview of FINCH-clustering algorithm and learning from
clustering.

Video face clustering methods often follow 2 steps: obtain pairwise
constraints typically by analyzing tracks, followed by representation/metric
learning approaches and clustering. We present models through a historical
perspective, with and without a CNN.

Face representation learning without CNNs. The most common source of
constraints is the temporal information contained in face tracks. Faces within
the same track are assigned a positive label (same character), while faces
from temporally overlapping tracks are assigned a negative label (different
characters). This approach has been exploited by learning a metric to obtain
cast-specific distances [5] (ULDML); iteratively creating a generative
clustering model and associating short sequences using a hidden Markov Random
Field (HMRF) [43, 44]; or performing clustering with a weighted block-sparse
low-rank representation (WBSLRR) [45]. Additional constraints from video
editing cues such as shots, threads, and scene boundaries are used in an
unsupervised way to merge tracks [39] by learning track and cluster
representations with SIFT Fisher vectors [26].

Face representation learning with CNNs. With the popularity of Convolutional
Neural Networks (CNNs), there is a growing emphasis on improving face track
representations using CNNs. An improved triplet loss that pushes the positive
and negative samples apart in addition to the anchor relations is used by [52]
to fine-tune a CNN. Zhang  _et al_. [53] (JFAC) use a Markov Random Field to
discover dynamic constraints iteratively to learn better representations
during the clustering process. Inverse reinforcement learning on a ground-
truth data is also used to learn a reward function that decides whether to
merge a given pair of face features [18]. In a slightly different vein, the
problem of face detection and clustering is addressed jointly by [20], where a
link-based clustering algorithm based on rank-1 counts verification merges
frames based on a learned threshold.

Among recent works, [38] aim to estimate the number of clusters and their
assignment and learn an embedding space that creates a fixed-radius balls for
each character. Datta  _et al_. [6] use video constraints to generate a set of
positive and negative face pairs. Perhaps most related to this work, [34]
proposes two approaches: _SSiam_ , a distance matrix between features on a
subset of frames is used to generate hard positive/negative face pairs; and
_TSiam_ uses temporal constraints and mines negative pairs for singleton
tracks by exploiting track-level distances. Features are fine-tuned using a
Siamese network with contrastive loss [15].

Different from related work, we propose a simple, yet effective approach where
weak labels are generated using a clustering algorithm that is independent of
video/track level constraints to learn discriminative face representations. In
particular while [18, 38] require ground-truth labels to learn embeddings, CCL
does not.

Person identification is a related field of naming characters, and often
employs multimodal sources of constraints/supervision such as: clothing [37],
gender [54], context [51], multispectral information [36]; audio including
speech [28] and voice models [25]; and textual cues such as weak labels
obtained by aligning transcripts with subtitles [2, 10], joint action/actor
labels [22] via transcripts, or name mentions in subtitles [16]. In contrast
to the above, CCL is free from additional context and operates directly on
detected faces (even without tracking).

FINCH clustering algorithm. Sarfraz  _et al_. [30] propose a new clustering
algorithm (FINCH) based on first neighbor relations. FINCH does not require
training and relies on good representations to discover a hierarchy of
partitions. While FINCH demonstrates that pseudo labels can be used to train
simple classifiers with cross-entropy loss [30], such a setup is challenging
to use in the context of faces. When using a partition at high purity with
many more clusters than classes, faces of one character belong to multiple
clusters, and the CE loss pushes these clusters and their samples apart – an
undesirable effect for our goal of clustering. Thus, in our work, we use FINCH
to generate weak positive and negative face pairs that are used to improve
video face clustering.

Clustering based learning. Recently clustering is also used to learn an
embedding of data [4, 13, 19, 46, 49]. Almost all of these methods cluster
data samples at each forward pass (or at pre-determined epochs) into a given
number of clusters. Subsequently, generated cluster labels or a loss over the
clustering function are used to train a deep model (usually an auto-encoder).
These methods require to specify the number of clusters, that is often the
target number of classes. This is different from CCL that leverages a large
number of small and pure clusters without specifying the particular number of
clusters.

In summary, we show how pseudo-labels from clustering can be used effectively:
(i) without needing to know the number of clusters, and (ii) by creating
positive/negative pairs at a high-purity stage of clustering.

##  III Clustering based Representation Learning

Figure 1: CCL training overview: Given a video with several face detections
(top left), we first start by extracting features using a deep CNN and perform
clustering using FINCH to obtain a large number of small but highly pure
clusters (top). We create several positive and negative face image pairs using
these cluster labels and train an MLP to further improve the feature
representation using the contrative loss (bottom). At test time, the MLP is
used as an embedding, and we cluster our samples using Hierarchical
Agglomerative Clustering (HAC).

We present our method to improve face representations using weak cluster
labels instead of manual annotations. We start this section by introducing the
notation used throughout the remainder of the paper. We then present a short
overview and motivation for FINCH, followed by a description on how we use it
to obtain automatic labels. Finally, we discuss how we train our embedding and
perform inference at test time. Algorithm 1 provides an overview of our
proposed CCL approach, independent to the face clustering task.

###  III-A Preliminaries

Let the dataset contain $N$ face tracks
$\mathcal{D}=\\{(T_{i},y_{i})_{i=1}^{N}\\}$, where each track $T_{i}$ has $K$,
a variable number of face images, _i.e_. $T_{i}=\\{(f_{i}^{k})_{k=1}^{K}$}.
$y_{i}\in\\{1,\dots,C\\}$ is the label (person identity) corresponding to the
track $T_{i}$, where $C$ is the total number of characters in the video.
Please note that tracks are not necessary for the proposed learning approach,
however, they are used during a part of the evaluation.

We use a CNN trained for recognizing faces (VGG2Face [3]) and extract features
for each face image in the track from the penultimate layer of the network.
The features for a track are vectors
$\\{\mathbf{x}_{i}^{1},\ldots,\mathbf{x}_{i}^{K}\\}$ of size
$\mathbf{x}_{i}^{k}\in\mathbb{R}^{D\times 1}$, where $D$ denotes the feature
dimension of the CNN feature maps. We refer to these as _base_ features as
they are not refined further by a learning approach.

Track-level representations are formed by an aggregation function
$\Phi:\\{\mathbf{x}_{i}^{1},\ldots,\mathbf{x}_{i}^{K}\\}\rightarrow\mathbf{v}_{i}$,
that combines $K$ features to produce a single vector
$\mathbf{v}_{i}\in\mathbb{R}^{D\times 1}$. While there are several methods of
aggregation such as Fisher Vectors [26], Covariance Learning [40], Quality
Aware Networks [21] or Neural Aggregation Networks [50], Temporal 3D
Convolution [8], we find that simple average pooling often works quite well.
In our case, averaging allows us to learn from features at the frame level
(without requiring tracking), but evaluate at the track level.

We additionally $\ell_{2}$ normalize the features to be unit vectors before
using them for clustering, _i.e_. $\|\mathbf{v}_{i}\|_{2}=1$. Several previous
works in this area [33, 34, 38, 52, 53] have used Hierarchical Agglomerative
Clustering (HAC) as the preferred technique for clustering. For a fair
comparison, we too use HAC with the stopping condition set to the number of
clusters equalling the number of main cast ($C$) in the video. We use the
minimum variance ward linkage [42] for all methods.

###  III-B Clustering Algorithm

Integral to our core method, we adopt the recently proposed FINCH algorithm
[30] to obtain weak labels from clustering. FINCH belongs to the family of
hierarchical clustering algorithms and automatically discovers groupings in
the data without requiring hyper-parameters or a priori knowledge such as
number of clusters. The output of FINCH is a _small_ set of partitions that
provide a fine to coarse view on the discovered clustering. Note that this is
different from classical HAC methods where each iteration merges one sample
with existing clusters providing a complete list of partitions ranging from
$N$ clusters (all samples in their own cluster) to 1 cluster (all samples in
one cluster).

FINCH works by linking first neighbors of each sample. An adjacency matrix is
defined between all sample pairs:

$A(i,j)=\begin{dcases*}1&if $j=\kappa_{i}^{1}$ or $\kappa_{j}^{1}=i$ or
$\kappa_{i}^{1}=\kappa_{j}^{1}$\\\ 0&otherwise \, ,\end{dcases*}\\\ $ (1)

where $\kappa_{i}^{1}$ represents the first neighbor of sample $i$. The
adjacency matrix joins each sample $i$ to their first neighbors via
$j=\kappa_{i}^{1}$, enforces symmetry through $\kappa_{j}^{1}=i$, and links
samples that share a common first neighbor $\kappa_{i}^{1}=\kappa_{j}^{1}$.
Clustering is performed by identifying the connected components in the
adjacency matrix.

Why use FINCH? FINCH is a suitable clustering algorithm for our task for
several reasons: (i) it does not require specifying the number of clusters;
(ii) it provides clusters with very high purity at early partitions; and (iii)
it is a fast and scalable algorithm.

As demonstrated in [30], FINCH outperforms Affinity Propagation (AP), Jarvis
and Patrick (JP), Robust Continuous Clustering (RCC), and Rank Order
Clustering (RO) on several datasets. Additionally, all algorithms AP, JP, RCC,
and RO (except FINCH) have memory requirements quadratic in number of samples
and are unable to cluster features on our machines with 128 GB RAM.

The first partition of FINCH corresponds to linking samples through the first
neighbor relations, while the second partition links clusters created in the
first step. We use clusters from the second partition of the FINCH algorithm
to mine positive and negative pairs as this partition increases diversity,
without compromising on quality of the labels. We find that most samples
clustered in the first partition are from within a track (_e.g_. neighboring
frames), while those in the second partition are often from across tracks
(_c.f_. Fig. 2 (right)). Empirically, we analyze the impact of choosing
different partitions through ablation studies.

Using FINCH to obtain weak labels. We treat each face image as a sample and
perform clustering with FINCH to obtain the second clustering partition
$P_{2}=\\{G_{1},\ldots,G_{M}\\}$. $G_{i}$ corresponds to the $i^{\mathrm{th}}$
group of samples. Based on the cluster labels, we obtain positive and negative
pairs as:

  * •

PosC: All face images in a cluster are considered for positive pairs. For
clusters that have less than 10 samples, we also create positive pairs by
combining samples from the current cluster $G_{p1}$ with randomly sampled
frames from another cluster $G_{p2}$, where $G_{p2}$ is among the $Z=25$
nearest clusters to $G_{p1}$.

  * •

NegC: We create negative pairs by combining samples from a cluster $G_{n1}$
with randomly sampled frames from a different cluster $G_{n2}$, where $G_{n2}$
is among the $Z$ farthest clusters to $G_{n1}$.

$K$-means as a baseline. As an alternative to FINCH, we perform experiments
with $K$-means as a baseline to obtain clusters that provide weak labels. Note
that $K$-means has an important disadvantage – we need to know the number of
clusters before hand. For a fair empirical comparison, we use the number of
clusters estimated by FINCH at each partition. Specifically, we use _MiniBatch
$K$-means_ [32] that is more suitable to work with large datasets. Our
analysis shows that FINCH provides purer clusters that yield more accurate
pairwise labels.

###  III-C Video Level Constraints

Video face clustering often employs face tracking to link face detections made
in a sequence of consecutive frames. Note that tracking can be thought of as a
form of clustering in a small temporal window (typically within a shot). Using
tracks, positive pairs are created by sampling frames within a track, while
negative pairs are created by analyzing co-occurring tracks [5, 6, 39, 44].

In this work, we consider video constraints that can be derived at a frame
level (_i.e_. without tracking). We include co-occurring face images appearing
in the same frame as potential negative pairs (NVid). About 50%-70% of the
face images appear as singletons in a frame (as shown by TSiam [34]), and do
not yield negative pairs through the video level constraints. Thus, being able
to sample negative pairs using the cluster labels as discussed above is
beneficial.

In addition to sampling negative pairs, we also use co-occurrence to correct
clusters provided by FINCH. For example, if a cluster contains samples from a
known negative pair, we keep the sample closest to the cluster mean, and
create a new cluster using the rejected sample.

###  III-D Training and Inference

We use the weak cluster labels and video constraints to obtain positive and
negative face pairs for training a shallow Siamese network. We adopt the
Contrastive loss [15] as it brings together positive samples, in contrast to
the widely used Triplet loss [31] that only maintains a margin between
positive and negative samples. We sample a pair of face representations
$\mathbf{x}_{1}$ and $\mathbf{x}_{2}$ with $y=0$ for a positive pair and $y=1$
when corresponding to a negative pair and train a multi-layer perceptron
$Q_{\theta}$ by minimizing

$\begin{split}\mathcal{L}\left(W,y,Q_{\theta}(\mathbf{x}_{1}),Q_{\theta}(\mathbf{x}_{2})\right)=\qquad\qquad\qquad\qquad\qquad\\\
\frac{1}{2}\left((1-y)\cdot(d_{W})^{2}+y\cdot(\max(0,m-d_{W}))^{2}\right)\,,\end{split}$
(2)

where $W\in\mathbb{R}^{D\times d}$ is a linear layer that embeds
$Q_{\theta}(\cdot)$ such that $d\ll D$ (in our case, $d=2$). Here, each face
image is encoded as $Q_{\theta}(\mathbf{x})$, where $\theta$ corresponds to
the trainable parameters. We find that $Q_{\theta}(\cdot)$ performs well when
using a single linear layer. $d_{W}$ is the Euclidean distance $d_{W}=\|W\cdot
Q_{\theta}(\mathbf{x}_{1})-W\cdot Q_{\theta}(\mathbf{x}_{2})\|^{2}$, and $m$
is the margin, empirically chosen to be 1. Fig. 1 illustrates this learning
procedure.

During inference, we compute embeddings for face images using the MLP trained
above. For frame-level evaluation, we cluster the features for each face
image, while for track-level evaluation, we first aggregate image features
using mean pool, followed by HAC. We report the clustering performance at the
ground truth number of clusters (_i.e_. the number of main characters in the
video).

Algorithm 1 Overview of CCL (task agnostic).

Input: Feature maps $X=\\{(\mathbf{x}_{n})_{n=1}^{N}\\}\in\mathbb{R}^{D}$. $N$
is total number of samples. $D$ is feature dimension.

Output: Final clustering of the $N$ samples.

Procedure:

1. Compute the partitions using FINCH clustering algorithm. $P_{1:L}=\mbox{FINCH}(X)$.

2. Select second partition $P_{2}=\\{G_{1},\ldots,G_{M}\\}$.

3. Train model parameters for 20 epochs:

– Sample positive and negative pairs for a
batch.$(\mathbf{x}_{p1},\mathbf{x}_{p2})\sim(G_{p1},G_{p2})$ and
$(\mathbf{x}_{n1},\mathbf{x}_{n2})\sim(G_{n1},G_{n2})$.

– Train MLP $Q_{\theta}(\cdot)$ using Contrastive loss.

4. Compute embeddings for each sample using $Q_{\theta}(\mathbf{x}_{n})$ and perform HAC to get $C$ clusters.

###  III-E Implementation Details

CNN. We employ the VGG-2 Face CNN [3] (ResNet 50) pre-trained on MS-Celeb-1M
[14] and fine-tuned on 3.31M face images of 9131 subjects (VGG2 data). We
extract pool5_7x7_s1 features by first resizing RGB face images to $224\times
224$ and pushing them through the CNN, resulting in
$\mathbf{x}^{i}_{k}\in\mathbb{R}^{2048}$. At test time, we compute face
embeddings using the learned MLP $Q_{\theta}$ and $\ell_{2}$ normalize before
HAC.

Siamese network MLP. The network comprises of fully-connected layers:
$\mathbb{R}^{2048}\rightarrow\mathbb{R}^{256}\rightarrow\mathbb{R}^{2}$. Note
that the second linear layer is part of the contrastive loss (corresponds to
$W$ in Eq. 2), and we use the feature representations at $\mathbb{R}^{256}$
for clustering. The model is trained using the Contrastive loss, and
parameters are updated using Adam optimizer. We initialize the learning rate
with $10^{-5}$ and decrease it by a factor of 10 at 15 epochs. We train the
model for 20 epochs. We use batch normalization.

Sampling positive and negative pairs for training. An epoch corresponds to
sampling pairs from all clusters created by the FINCH algorithm. We consider 5
clusters per batch. For each data point in a cluster, we randomly sample from
the same (or nearest) cluster and create one positive pair, and sample from
the farthest clusters to create two negative pairs. Finally, we randomly
subsample the above list to obtain 25 positive and 25 negative pairs for each
cluster, resulting in a batch with 250 pairs (125 positive/negative).

##  IV Evaluation

We present our evaluation on three challenging datasets. We first describe the
clustering metric, followed by a thorough analysis of the proposed methods,
and end this section with a comparison of our approach against state-of-the-
art.

TABLE I: Dataset statistics for BBT [43, 44, 52], BF [53] and ACCIO [53]. |  | This work |  | Previous work
---|---|---|---|---
Datasets | #Cast | #TR (#FR) | LC/SC (%) | #TR (#FR)
BBT-0101 | 5 | 644 (41220) | 37.2 / 4.1 | 182 (11525)
BF-0502 | 6 | 568 (39263) | 36.2 / 5.0 | 229 (17337)
ACCIO | 36 | 3243 (166885) | 30.93/0.05 | 3243 (166885)

Datasets. We conduct experiments on three popular video face clustering
datasets: (i) Buffy the Vampire Slayer (BF) [2, 53] (season 5, episodes 1): a
drama series with several dark scenes and non-frontal faces; (ii) Big Bang
Theory (BBT) [2, 37, 43, 52] (season 1, episodes 1): a primarily indoors
sitcom with a small cast, and (iii) ACCIO-1 [12]: the first movie in the
“Harry Potter” series featuring a large number of scenes at night and a higher
number of characters.

We follow the protocol used in several recent video face clustering works [5,
34, 44, 52, 53] that focus on improving feature representations for video-face
clustering. First, we assume the number of main characters is known. Second,
as the labels are obtained automatically, we learn episode specific
embeddings. We use the tracks provided by [34] that incorporate several
detectors to encompass all pan angles and in-plane rotations up to 45 degrees.
The face tracks are obtained by an online tracker that uses a particle filter.

Table I presents key information about the datasets such as the number of
tracks (#TR) and face images (#FR). In particular, note that previous works
(except [34]) use much smaller datasets. It is also important to note that
different characters have wide variations in the number of tracks, indicated
by the cluster skew between the largest class (LC) to the smallest class (SC).

Evaluation metric. We use Clustering Accuracy (ACC) [34] also called Weighted
Clustering Purity (WCP) [39] as the metric to evaluate the quality of
clustering. Accuracy is computed by assigning the most common ground truth
label within a cluster to all elements in that cluster:

$\mbox{ACC}=\frac{1}{N}\sum_{c=1}^{|C|}n_{c}\cdot p_{c}\,,$ (3)

where $N$ is the total number of samples, $n_{c}$ is the number of samples in
the cluster $c$, and cluster purity $p_{c}$ is measured as the fraction of the
largest number of samples from the same label to $n_{c}$. $C$ corresponds to
the number of main casts. For ACCIO, we also report B-Cubed Precision (P),
Recall (R) and F-measure (F) [1]. Unless stated otherwise, clustering
evaluation is performed at track-level.

###  IV-A Clustering Performance and Generalization

TABLE II: Clustering accuracy at track-level. Comparison against all evaluated models. Train/Test | Base |  PRF [48] |  TSiam [34] |  SSiam [34] | CCL
---|---|---|---|---|---
BBT-0101 | 0.932 | 0.930 | 0.964 | 0.962 | 0.982
BF-0502 | 0.836 | 0.814 | 0.893 | 0.909 | 0.921
TABLE III: Clustering accuracy at track-level, extending to all named characters. BBT-0101 has 5 main and 6 named characters; BF-0502 has 6 main and 12 named characters. | BBT-0101 | BF-0502
---|---|---
| TSiam | SSiam | CCL | TSiam | SSiam | CCL
Main cast | 0.964 | 0.962 | 0.982 | 0.893 | 0.909 | 0.921
All named | 0.958 | 0.922 | 0.966 | 0.829 | 0.870 | 0.903
TABLE IV: A study on the impact of clustering algorithm. FINCH partitions are
created for each dataset, and shown as separate table rows. In each row,
results are presented for FINCH (above) and MiniBatch $K$-means (below). From
left to right, Part. indicates the partition level of FINCH. #C is the total
number of clusters in that partition as estimated by FINCH. Largest and
smallest cluster sizes are indicated as LC/SC. Clustering purity of
FINCH/$K$-means clusters (before CCL) is presented as ACC. L+/L- represents
the number of samples correctly and wrongly clustered for the given partition.
Finally, CCL-ACC is the performance of CCL: by training a model using weak
labels from FINCH/$K$-means estimated clusters.

FINCH | BBT-0101 | BF-0502 | ACCIO
---|---|---|---
Partition | #C | LC/SC | ACC | L+/L- | CCL-ACC | #C | LC/SC | ACC | L+/L- | CCL-ACC | #C | LC/SC | ACC | L+/L- | CCL-ACC
| 41220 |  |  |  | @#C=5 | 39263 |  |  |  | @#C=6 | 166885 |  |  |  | @#C=36
1 | 10156 | 48/2 | 0.997 | 41128/92 | 0.978 | 9677 | 42/2 | 0.994 | 39054/209 | 0.915 | 21444 | 3937/2 | 0.847 | 141496/25389 | 0.816
1030/1 | 0.988 | 40744/476 | 0.971 | 758/1 | 0.986 | 38717/546 | 0.909 | 16041/1 | 0.899 | 150177/16708 | 0.841
2 | 2236 | 777/4 | 0.990 | 40809/411 | 0.995 | 2167 | 1346/4 | 0.978 | 38414/849 | 0.938 | 3972 | 33461/4 | 0.832 | 138903/27982 | 0.837
1236/1 | 0.987 | 40687/533 | 0.991 | 1566/1 | 0.971 | 38161/1102 | 0.923 | 18076/1 | 0.866 | 144613/22272 | 0.857
3 | 490 | 2031/8 | 0.974 | 40149/1071 | 0.954 | 560 | 2574/9 | 0.957 | 37588/1675 | 0.922 | 944 | 41405/13 | 0.812 | 135543/31342 | 0.801
1568/1 | 0.979 | 40367/853 | 0.957 | 2120/1 | 0.962 | 37806/1457 | 0.926 | 9838/1 | 0.845 | 141036/25849 | 0.813
4 | 101 | 7258/32 | 0.968 | 39936/1284 | 0.943 | 127 | 9335/27 | 0.923 | 36260/3003 | 0.903 | 161 | 70825/39 | 0.784 | 130987/35898 | 0.767
2019/1 | 0.981 | 40475/745 | 0.945 | 2360/1 | 0.956 | 37555/1708 | 0.923 | 16502/1 | 0.800 | 133639/33246 | 0.782
5 | 13 | 10.9K/0.K | 0.968 | 39.9K/1.2K | 0.943 | 24 | 13.7K/0.2K | 0.895 | 35.1K/4.0K | 0.869 | 24 | 84.8K/0.2K | 0.690 | 115.1K/51.7K | 0.652
7.3K/1 | 0.966 | 39.8K/1.3K | 0.931 | 3.7K/0.2K | 0.920 | 36.1K/3.1K | 0.875 | 26.7K/1 | 0.724 | 120.9K/45.9K | 0.696

Comparison against baselines. We present a thorough comparison of CCL against
related baselines that employ a similar learning scheme.

In pseudo-relevance feedback [48, 47] (PRF), samples are treated independent
of each other, and pairs are created by considering closest positives and
farthest negatives. However, these pairs often provide negligible training
signal (gradients) as they already conform to the loss requirements.

SSiam [34] is an improved version of PRF with batch processing where farthest
positives and closest negatives are formed by looking at a batch of queries
rather than whole dataset. This creates harder training samples that show
improved performance over PRF.

In TSiam [34], positive pairs are formed by looking at samples within a track
(a track is treated as a cluster of face images) and negative pairs by using
co-occurrence and distances between track representations.

Finally, our proposed method CCL does not rely on tracking and uses pure
clusters created by an automatic partitioning method (FINCH). We sort clusters
by distances between their mean representations and then form positive and
negative pairs. Table II shows that CCL outperforms both SSiam and TSiam, and
also provides significant gains over the base VGG2 features on BBT and BF.

Generalization to unseen characters. We further study how CCL can cope with
adding unseen characters at test time by clustering all named characters in an
episode. Results from Table III show that CCL is better poised at clustering
new characters and achieves higher performance in all cases. We believe that
CCL’s performance scales well as it is trained on a diverse set of pairs and
can generalize to unseen characters.

###  IV-B Sources of Positive and Negative Pairs

TABLE V: Impact of mining positive and negative pairs from different sources. Track-level accuracy of CCL. |  | PosC | NegC | NVid | BBT-0101 | BF-0502
---|---|---|---|---|---|---
1 | Base | - | - | - | 0.932 | 0.836
2 |  | ✓ | - | - | 0.951 | 0.859
3 |  | - | ✓ | - | 0.968 | 0.883
4 |  | ✓ | - | ✓ | 0.956 | 0.865
5 |  | ✓ | ✓ | - | 0.971 | 0.896
6 |  | - | ✓ | ✓ | 0.979 | 0.917
7 | CCL | ✓ | ✓ | ✓ | 0.982 | 0.921

In Table V, we present the importance of each source from which we obtain
positive and negative pairs. Recall that positive pairs obtained from clusters
are denoted as PosC; negative pairs from clusters as NegC; and negative pairs
using video constraints as NVid.

Rows 2 to 6 evaluate different combinations of the sources of pairs and show
their relative importance. It can be seen that negative pairs alone (row 3)
are more important than positive pairs (row 2). Additionally, using pairs from
the clusters alone (row 5) provides performance similar to TSiam and SSiam
(refer to Table II). In Fig. 2, we show the number of faces in each cluster
and the number of tracks that they are derived from. CCL’s ability to obtain
positive pairs from faces across multiple tracks (different from TSiam) might
be an explanation for improved performance. Further, including negatives from
videos (row 7) provides best performance. This means that our learning
approach sees relatively hard positive pairs, and standard (neither hard nor
easy) negative pairs. We believe that together with the contrastive loss that
brings together samples from positive pairs, this is a good way to learn
representations, and is an important factor for the increased performance.

###  IV-C Impact of Clustering Algorithm

We now present a study on the impact of the clustering algorithm used for
obtaining weak labels. We first obtain the hierarchy of partitions by
processing each dataset with the FINCH algorithm. Then, as a comparison, we
use MiniBatch $K$-means with $K$ set to the number of clusters provided by
FINCH. Each row of Table IV shows performance at one partition. Results using
FINCH are in the top half and $K$-means in the bottom half. The number of
clusters in higher partitions (6 onwards) are less than the number of
characters and are omitted.

We observe that FINCH not only automatically discovers meaningful partitions
of the data but also achieves higher-performance (ACC in Table IV) as compared
to $K$-means, especially at higher number of clusters. It is interesting to
note the number of samples that are clustered correctly or wrongly (L+/L- in
Table) as these play an important role while creating weak labels. Fig. 2
(left) shows that while the clusters are often very small ($<10$ samples),
they contain have faces from more than one track (right). CCL with FINCH at
the second partition obtains high performance after training with weak labels
(CCL-ACC) and outperforms labels provided by $K$-means clustering.

Additionally, as indicated earlier, running FINCH on large datasets such as
ACCIO takes $\sim$2 minutes with fast nearest neighbors as compared to
MiniBatch $K$-means that takes $\sim$1 hour even though it is optimized for
large datasets.

Figure 2: Key characteristics of FINCH (second partition) clustering for
BBT-0101. Left: Histogram showing the number of faces in a cluster. Even if
most clusters have less than 5 samples, we are able to obtain meaningful
positive and negative pairs to train our model. Right: We plot the number of
faces and number of tracks for each of the cluster indices (sorted by size for
convenience). About 900 of the 2200 clusters created by FINCH contain faces
from more than one track, leading to increased diversity of pairs.

###  IV-D Comparison with the state-of-the-art

TABLE VI: Comparison to state-of-the-art with clustering accuracy (%) at frame
level. Note that many previous works use fewer tracks (# of frames) (also
indicated in Table I) making the task relatively easier. We use the tracks
from [30, 34].

Method | BBT-0101 | BF-0502 | Data Source
---|---|---|---
BBT | BF
FINCH (CVPR ’19) [30] | 99.16 | 92.73 |  [2]* |  [2]*
ULDML (ICCV ’11) [5] | 57.00 | 41.62 | $-$ | [5]
HMRF (CVPR ’13) [44] | 59.61 | 50.30 | [29] | [10]
HMRF2 (ICCV ’13) [43] | 66.77 | $-$ | [29] | $-$
WBSLRR (ECCV ’14) [45] | 72.00 | 62.76 | $-$ | [10]
VDF (CVPR ’17) [33] | 89.62 | 87.46 | [2] | [2]
Imp-Triplet (PacRim ’16) [52] | 96.00 | $-$ | [29] | $-$
JFAC (ECCV ’16) [53] | $-$ | 92.13 | $-$ | [10]
TSiam (FG ’19) [34] | 98.58 | 92.46 |  [2]* |  [2]*
SSiam (FG ’19) [34] | 99.04 | 90.87 |  [2]* |  [2]*
CCL (Ours with HAC) | 99.56 | 93.79 | [34] | [34]

TABLE VII: Frame-level accuracy (%) of CCL and comparison to TSiam and SSiam over all datasets: BBT-0101, BF-0502 and ACCIO. | #Cast | Base |  TSiam [34] |  SSiam [34] | CCL
---|---|---|---|---|---
BBT-0101 | 5 | 94.00 | 98.58 | 99.04 | 99.56
BF-0502 | 6 | 91.20 | 92.46 | 90.87 | 93.79
ACCIO | 36 | 79.90 | 81.30 | 82.00 | 83.40
TABLE VIII: Comparison of CCL with the state-of-the-art on ACCIO, evaluated at
36 and 40 clusters. Clustering accuracy at frame-level. #Clusters = 36
---
Methods | P | R | F
FINCH (CVPR ’19) [30] | 0.748 | 0.677 | 0.711
JFAC (ECCV ’16) [53] | 0.690 | 0.350 | 0.460
TSiam (FG ’19) [34] | 0.749 | 0.382 | 0.506
SSiam (FG ’19) [34] | 0.766 | 0.386 | 0.514
CCL (Ours with HAC) | 0.779 | 0.402 | 0.530
#Clusters = 40
Methods | P | R | F
FINCH (CVPR ’19) [30] | 0.733 | 0.711 | 0.722
DIFFRAC-DeepID2+ (ICCV ’11) [53] | 0.557 | 0.213 | 0.301
WBSLRR-DeepID2+ (ECCV ’14) [53] | 0.502 | 0.206 | 0.292
HMRF-DeepID2+ (CVPR ’13) [53] | 0.599 | 0.230 | 0.332
JFAC (ECCV ’16) [53] | 0.711 | 0.352 | 0.471
TSiam (FG ’19) [34] | 0.763 | 0.362 | 0.491
SSiam (FG ’19) [34] | 0.777 | 0.371 | 0.502
CCL (Ours with HAC) | 0.786 | 0.392 | 0.523

While previous analysis has been done at the track-level, we now report frame-
level clustering performance to present a fair comparison against previous
work.

BBT and BF. We compare the results obtained with CCL to the current state-of-
the-art approaches for video face clustering in Table VI. We report clustering
accuracy (%) on two videos: BBT-0101 and BF-0502. Following [34], we similarly
report the data source to indicate that our dataset is much harder in
comparison to previous works such as [53, 52], that evaluate on a subset of
tracks. We can observe that CCL outperforms previous approaches, achieving
$0.52\%$ and $1.33\%$ absolute improvement in accuracy on BBT-0101 and BF-0502
respectively.

ACCIO. As common in previous works [34, 53], we evaluate our method on the
ACCIO dataset with 36 (the main cast) and 40 clusters – see Table VIII. CCL
significantly outperforms the state-of-the-art in unsupervised learning
techniques and is comparable to [30]. Note that FINCH [30] is not trainable.

CCL vs. TSiam and SSiam. In Table VII, we report the frame-level clustering
performance on all three datasets (as compared to track-level performance in
Table II). We observe that CCL outperforms TSiam, SSiam and also the base
features by significant gains. CCL operates directly on face detections (like
SSiam), while TSiam requires tracks.

Computational complexity. The time to compute FINCH partitions for BBT, BF,
and ACCIO is approximately 45 seconds, and $\sim$2 minute respectively on CPU.
Training CCL for 20 epochs on BBT-0101 requires less than half an hour on a
GTX 1080 GPU using the PyTorch framework.

##  V Conclusion

We proposed a self-supervised, clustering-based contrastive learning approach
for improving deep face representations. We showed that we can train
discriminative models using positive and negative pairs obtained through
clustering and video level constraints that do not rely on face tracking.
Through experiments on three challenging datasets, we showed that CCL achieves
state-of-the-art performance while being computationally efficient and easily
scalable.

Acknowledgments. This work is supported by the DFG (German Research
Foundation) funded PLUMCOT project.

## References

  * [1] E. Amigó, J. Gonzalo, J. Artiles, and F. Verdejo.  A comparison of extrinsic clustering evaluation metrics based on formal constraints.  Information retrieval, 2009.
  * [2] M. Bäuml, M. Tapaswi, and R. Stiefelhagen.  Semi-supervised Learning with Constraints for Person Identification in Multimedia Data.  In CVPR, 2013.
  * [3] Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman.  VGGFace2: A Dataset for Recognising Faces across Pose and Age.  In FG, 2018.
  * [4] M. Caron, P. Bojanowski, A. Joulin, and M. Douze.  Deep clustering for unsupervised learning of visual features.  In ECCV, 2018.
  * [5] R. G. Cinbis, J. Verbeek, and C. Schmid.  Unsupervised Metric Learning for Face Identification in TV Video.  In ICCV, 2011.
  * [6] S. Datta, G. Sharma, and C. Jawahar.  Unsupervised learning of face representations.  In FG, 2018.
  * [7] J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova.  Bert: Pre-training of deep bidirectional transformers for language understanding.  arXiv preprint arXiv:1810.04805, 2018.
  * [8] A. Diba, M. Fayyaz, V. Sharma, A. Hossein Karami, M. Mahdi Arzani, R. Yousefzadeh, and L. Van Gool.  Temporal 3d convnets using temporal transition layer.  In CVPR Workshops, 2018.
  * [9] C. Doersch, A. Gupta, and A. A. Efros.  Unsupervised visual representation learning by context prediction.  In ICCV, 2015.
  * [10] M. Everingham, J. Sivic, and A. Zisserman.  “Hello! My name is … Buffy” – Automatic Naming of Characters in TV Video.  In BMVC, 2006.
  * [11] B. Fernando, H. Bilen, E. Gavves, and S. Gould.  Self-supervised video representation learning with odd-one-out networks.  In CVPR, 2017.
  * [12] E. Ghaleb, M. Tapaswi, Z. Al-Halah, H. K. Ekenel, and R. Stiefelhagen.  Accio: A Dataset for Face Track Retrieval in Movies Across Age.  In ICMR, 2015.
  * [13] X. Guo, L. Gao, X. Liu, and J. Yin.  Improved deep embedded clustering with local structure preservation.  In IJCAI, 2017.
  * [14] Y. Guo, L. Zhang, Y. Hu, X. He, and J. Gao.  MS-Celeb-1M: A Dataset and Benchmark for Large-Scale Face Recognition.  In ECCV, 2016.
  * [15] R. Hadsell, S. Chopra, and Y. LeCun.  Dimensionality Reduction by Learning an Invariant Mapping.  In CVPR, 2006.
  * [16] M.-L. Haurilet, M. Tapaswi, Z. Al-Halah, and R. Stiefelhagen.  Naming TV Characters by Watching and Analyzing Dialogs.  In WACV, 2016.
  * [17] K. He, X. Zhang, S. Ren, and J. Sun.  Deep residual learning for image recognition.  In CVPR, 2016.
  * [18] Y. He, K. Cao, C. Li, and C. C. Loy.  Merge or not? learning to group faces via imitation learning.  In AAAI, 2018.
  * [19] Z. Jiang, Y. Zheng, H. Tan, B. Tang, and H. Zhou.  Variational deep embedding: An unsupervised and generative approach to clustering.  In IJCAI, 2017.
  * [20] S. Jin, H. Su, C. Stauffer, and E. Learned-Miller.  End-to-end Face Detection and Cast Grouping in Movies using Erdős–Rényi Clustering.  In ICCV, 2017.
  * [21] Y. Liu, J. Yan, and W. Ouyang.  Quality Aware Network for Set to Set Recognition.  In CVPR, 2017.
  * [22] A. Miech, J.-B. Alayrac, P. Bojanowski, I. Laptev, and J. Sivic.  Learning from video and text via large-scale discriminative clustering.  In ICCV, 2017.
  * [23] T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean.  Distributed representations of words and phrases and their compositionality.  In NIPS, 2013.
  * [24] I. Misra, C. L. Zitnick, and M. Hebert.  Shuffle and learn: unsupervised learning using temporal order verification.  In ECCV, 2016.
  * [25] A. Nagrani and A. Zisserman.  From Benedict Cumberbatch to Sherlock Holmes: Character Identification in TV series without a Script.  In BMVC, 2017.
  * [26] O. M. Parkhi, K. Simonyan, A. Vedaldi, and A. Zisserman.  A Compact and Discriminative Face Track Descriptor.  In CVPR, 2014.
  * [27] O. M. Parkhi, A. Vedaldi, and A. Zisserman.  Deep Face Recognition.  In BMVC, 2015.
  * [28] G. Paul, K. Elie, M. Sylvain, O. Jean-Marc, and D. Paul.  A conditional random field approach for audio-visual people diarization.  In ICASSP, 2014.
  * [29] M. Roth, M. Bäuml, R. Nevatia, and R. Stiefelhagen.  Robust Multi-pose Face Tracking by Multi-stage Tracklet Association.  In ICPR, 2012.
  * [30] M. S. Sarfraz, V. Sharma, and R. Stiefelhagen.  Efficient parameter-free clustering using first neighbor relations.  In CVPR, 2019.
  * [31] F. Schroff, D. Kalenichenko, and J. Philbin.  FaceNet: A Unified Embedding for Face Recognition and Clustering.  In CVPR, 2015.
  * [32] D. Sculley.  Web-scale K-means Clustering.  In International Conference on World Wide Web, 2010.
  * [33] V. Sharma, M. S. Sarfraz, and R. Stiefelhagen.  A simple and effective technique for face clustering in tv series.  In CVPR: Brave New Motion Representations Workshop, 2017.
  * [34] V. Sharma, M. Tapaswi, M. S. Sarfraz, and R. Stiefelhagen.  Self-supervised learning of face representations for video face clustering.  In FG, 2019.
  * [35] V. Sharma, M. Tapaswi, and R. Stiefelhagen.  Deep multimodal feature encoding for video ordering and retrieval tasks.  In ICCV Workshop on Holistic Video Understanding (HVU), 2019.
  * [36] V. Sharma and L. Van Gool.  Image-level classification in hyperspectral images using feature descriptors, with application to face recognition.  arXiv:1605.03428, 2016.
  * [37] M. Tapaswi, M. Bäuml, and R. Stiefelhagen.  “Knock! Knock! Who is it?” Probabilistic Person Identification in TV-Series.  In CVPR, 2012.
  * [38] M. Tapaswi, M. T. Law, and S. Fidler.  Video face clustering with unknown number of clusters.  In ICCV, 2019.
  * [39] M. Tapaswi, O. M. Parkhi, E. Rahtu, E. Sommerlade, R. Stiefelhagen, and A. Zisserman.  Total Cluster: A Person Agnostic Clustering Method for Broadcast Videos.  In ICVGIP, 2014.
  * [40] R. Wang, H. Guo, L. S. Davis, and Q. Dai.  Covariance Discriminative Learning: A Natural and Efficient Approach to Image Set Classification.  In CVPR, 2012.
  * [41] X. Wang and A. Gupta.  Unsupervised learning of visual representations using videos.  In ICCV, 2015.
  * [42] J. H. Ward Jr.  Hierarchical Grouping to Optimize an Objective Function.  Journal of the American Statistical Association, 58(301):236–244, 1963.
  * [43] B. Wu, S. Lyu, B.-G. Hu, and Q. Ji.  Simultaneous Clustering and Tracklet Linking for Multi-face Tracking in Videos.  In ICCV, 2013.
  * [44] B. Wu, Y. Zhang, B.-G. Hu, and Q. Ji.  Constrained Clustering and its Application to Face Clustering in Videos.  In CVPR, 2013.
  * [45] S. Xiao, M. Tan, and D. Xu.  Weighted Block-sparse Low Rank Representation for Face Clustering in Videos.  In ECCV, 2014.
  * [46] J. Xie, R. Girshick, and A. Farhadi.  Unsupervised deep embedding for clustering analysis.  In ICML, 2016.
  * [47] R. Yan, A. Hauptmann, and R. Jin.  Multimedia search with pseudo-relevance feedback.  In International Conference on Image and Video Retrieval, 2003.
  * [48] R. Yan, A. G. Hauptmann, and R. Jin.  Negative pseudo-relevance feedback in content-based video retrieval.  In ACM MM, 2003.
  * [49] J. Yang, D. Parikh, and D. Batra.  Joint unsupervised learning of deep representations and image clusters.  In CVPR, 2016.
  * [50] J. Yang, P. Ren, D. Zhang, D. Chen, F. Wen, H. Li, and G. Hua.  Neural Aggregation Network for Video Face Recognition.  In CVPR, 2017.
  * [51] L. Zhang, D. V. Kalashnikov, and S. Mehrotra.  A unified framework for context assisted face clustering.  In ICMR, 2013.
  * [52] S. Zhang, Y. Gong, and J. Wang.  Deep Metric Learning with Improved Triplet Loss for Face Clustering in Videos.  In Pacific Rim Conference on Multimedia, 2016.
  * [53] Z. Zhang, P. Luo, C. C. Loy, and X. Tang.  Joint Face Representation Adaptation and Clustering in Videos.  In ECCV, 2016.
  * [54] C. Zhou, C. Zhang, H. Fu, R. Wang, and X. Cao.  Multi-cue augmented face clustering.  In ACM MM, 2015.


# Looping Pendulum: Theory, Simulation, and Experiment

Collin Dannheim<EMAIL_ADDRESS>Luke Ignell<EMAIL_ADDRESS>Brendan
O’Donnell<EMAIL_ADDRESS>Robert McNees<EMAIL_ADDRESS>Constantin
Rasinariu<EMAIL_ADDRESS>Department of Physics, Loyola University
Chicago, Chicago, IL 60626

###### Abstract

The looping pendulum is a simple physical system consisting of two masses
connected by a string that passes over a rod. We derive equations of motion
for the looping pendulum using Newtonian mechanics, and show that these
equations can be solved numerically to give a good description of the system’s
dynamics. The numerical solution captures complex aspects of the looping
pendulum’s behavior, and is in good agreement with the experimental results.

##  I Introduction

The looping pendulum consists of two different masses, one heavy and one
light, connected with a string that passes over a horizontal rod. One lifts up
the heavy mass by pulling down on the light one at a given angle with the
vertical axis. Releasing the light mass, it sweeps around the rod, keeping the
heavy mass from falling to the ground. This mesmerizing physics demo, which we
first became aware of through a video on YouTube YouTube , appeared as one of
the problems in the 2019 International Young Physicists Tournament IYPT  and
was also studied to some degree in a recent paper Yubo .111The model presented
in this paper was developed before the publication of reference Yubo . Its
simple implementation and spectacular dynamics make it an intriguing problem
for physics students and professors alike.

In this paper we study the looping pendulum using Newtonian mechanics,
simulate its motion using numerical methods, and compare the theoretical
predictions with the experimental results. The experiments closely confirm the
numeric simulations and reveal rich dynamics with surprising features. In some
cases we notice a hint of sensitivity to small changes in the initial
conditions.

The manuscript is organized as following: in Section II we derive the
equations of motion, and obtain a pair of coupled, second-order, non-linear
differential equations. In Section III we present the experimental setup, and
in Section IV we compare the experimental results with numerical solutions of
the model obtained using Mathematica Mathematica . Finally, in Section V we
review our results, outline plans to improve the apparatus, and consider the
possibility that, for a given range of the parameters of the model, the
looping pendulum may exhibit chaotic behavior.

##  II Equations of Motion for the Looping Pendulum

The dynamics of the looping pendulum can be described using physics that is
typically covered in first-year and second-year undergraduate courses in
United States universities. Our setup is shown in Fig. 1.

Figure 1: This cross-section view of the looping pendulum shows masses $M_{1}$
and $M_{2}$ connected by a string that passes over a rod with radius $R$. The
radius of the rod is much smaller than the initial values of $\ell$ or $h$ in
our experiments, and is exaggerated here for clarity.

A heavy mass $M_{2}$ is suspended vertically by a string that passes over a
rigid rod of radius $R$. The distance from $M_{2}$ to the point where the
string makes contact with the rod is $h$. The string winds around the rod for
an angle $\theta$, then extends a distance $\ell$ from the rod to a lighter
mass $M_{1}$ which is held at rest. The lighter mass is released, and the
system is allowed to move freely. During this motion the quantities $h$,
$\theta$, and $\ell$ will change, but the total length of the string remains
fixed at $L=\ell+R\,\theta+h$.

The motion of mass $M_{2}$ is best described using a fixed coordinate system
$\hat{x}$ and $\hat{y}$ with the origin taken at the center of the rod’s
circular cross section. Mass $M_{2}$ is assumed to move straight up and down
with no horizontal component to its motion. Its position is
$\vec{r{}}_{2}=R\,\hat{x}-h\,\hat{y}$ and its velocity is
$\vec{v}_{2}=-\dot{h}\,\hat{y}$, where a dot indicates the derivative with
respect to time. Since the length $L$ of the string is fixed,
$\dot{L}=\dot{\ell}+R\,\dot{\theta}+\dot{h}=0$ and the velocity and
acceleration of $M_{2}$ can be written as:

$\displaystyle\vec{v{}}_{2}=(\dot{\ell}+R\,\dot{\theta})\,\hat{y}~{},\qquad\vec{a{}}_{2}=(\ddot{\ell}+R\,\ddot{\theta})\,\hat{y}~{}.$
(1)

The lighter mass $M_{1}$ follows a more complicated path. Its position is
given by

$\displaystyle\vec{r{}}_{1}=\big{(}R\,\cos\theta-\ell\,\sin\theta\big{)}\,\hat{x}+\big{(}R\,\sin\theta+\ell\,\cos\theta\big{)}\,\hat{y}~{}.$
(2)

However, it is convenient to describe its motion using a co-moving system of
coordinates that point parallel and perpendicular to the string connecting
$M_{1}$ to the rod. We define the orthonormal unit vectors $\hat{e}_{1}$ and
$\hat{t}_{1}$ (shown in Fig. 1) as

$\displaystyle\hat{e}_{1}=\sin\theta\,\hat{x}-\cos\theta\,\hat{y}~{},$ (3)
$\displaystyle\hat{t}_{1}=-\cos\theta\,\hat{x}-\sin\theta\,\hat{y}~{}.$ (4)

Then the position of $M_{1}$ can be written as

$\displaystyle\vec{r{}}_{1}=-\ell\,\hat{e}_{1}-R\,\hat{t}_{1}~{}.$ (5)

Because these new unit vectors depend on $\theta$, they will change as the
string loops around the rod. Their first and second derivatives with respect
to time are

$\displaystyle\dot{\hat{e}}_{1}=-\dot{\theta}\,\hat{t}_{1}\,,\qquad\dot{\hat{t}}_{1}=\dot{\theta}\,\hat{e}_{1}\,,$
(6)
$\displaystyle\ddot{\hat{e}}_{1}=-\ddot{\theta}\,\hat{t}_{1}-\dot{\theta}^{\,2}\hat{e}_{1}\,,\qquad\ddot{\hat{t}}_{1}=\ddot{\theta}\,\hat{e}_{1}-\dot{\theta}^{\,2}\hat{t}_{1}~{}.$
(7)

Using these results, we obtain for the velocity and acceleration of $M_{1}$

$\displaystyle\vec{v{}}_{1}=-\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}\hat{e}_{1}+\ell\,\dot{\theta}\,\hat{t}_{1}\,,$
(8)
$\displaystyle\vec{a{}}_{1}=\big{(}\ell\,\dot{\theta}^{\,2}-\ddot{\ell}-R\,\ddot{\theta}\big{)}\hat{e}_{1}+\big{(}2\,\dot{\ell}\,\dot{\theta}+\ell\,\ddot{\theta}+R\,\dot{\theta}^{\,2}\big{)}\hat{t}_{1}~{}.$
(9)

As a check, notice that the $\hat{e}_{1}$ component of $\vec{v}_{1}$ – the
rate at which the string is moving onto or off of the rod – is minus the rate
at which $M_{2}$ is moving downwards or upwards in Eq. (1).

Now that we have expressions for the accelerations of each mass, we need to
identify the forces acting on them. For mass $M_{2}$ there is an upward force
due to a tension $\vec{F}_{T,2}$, a downward force $\vec{F{}}_{g,2}$ due to
gravity, and a small but non-negligible amount of air resistance
$\vec{F{}}_{\text{air},2}$ in the direction opposite to $\vec{v{}}_{2}$. These
forces are

$\displaystyle\vec{F{}}_{T,2}=T_{2}\,\hat{y}\,,\qquad\vec{F{}}_{g,2}=-M_{2}\,g\,\hat{y}\,,\qquad\vec{F{}}_{\text{air},2}=-\gamma_{2}\,|\vec{v{}}_{2}|\,\vec{v{}}_{2}~{},$
(10)

where the coefficient $\gamma_{2}$, discussed in more detail in Section IV,
encodes the dependence of $\vec{F{}}_{\text{air},2}$ on the drag coefficient
of $M_{2}$ and the area it presents in a plane perpendicular to
$\vec{v{}}_{2}$. Using Eq. (1), the net force on mass $M_{2}$ is

$\displaystyle\vec{F}_{\text{net},2}=\big{(}T_{2}-M_{2}\,g-\gamma_{2}\,|\dot{\ell}+R\,\dot{\theta}|\,(\dot{\ell}+R\,\dot{\theta})\big{)}\,\hat{y}~{}.$
(11)

Notice that the force due to air resistance changes sign based on the
direction of $\vec{v}_{2}$.

Figure 2:  The forces acting on $M_{1}$ and $M_{2}$ include gravity, tension
in the string, and air resistance.

For mass $M_{1}$ there are four forces: a tension $\vec{F}_{T,1}$ pulling
along the direction $\hat{e}_{1}$ of the string, gravity pulling downwards,
air resistance in the direction opposite to $\vec{v}_{1}$, and an effective
force associated with air resistance experienced by the string. The first
three forces have the form

$\displaystyle\vec{F{}}_{T,1}=T_{1}\,\hat{e}_{1}~{},\qquad\vec{F{}}_{g,1}=-M_{1}\,g\,\hat{y}~{},\qquad\vec{F{}}_{\text{air},1}=-\gamma_{1}\,|\vec{v{}}_{1}|\,\vec{v{}}_{1}~{}.$
(12)

The final force acting on $M_{1}$ comes from drag on the string connecting it
to the rod. Because drag forces are proportional to area, and the diameter of
the string’s cross section is much smaller than its length, we approximate
this force as being due entirely to the area of the string in a plane
perpendicular to $\hat{t}_{1}$ and ignore its motion in the $\hat{e}_{1}$
direction. Therefore,

$\displaystyle\vec{F}_{\text{air},\text{str}}\simeq-\gamma_{\text{str}}\,|\vec{v}_{1}\cdot\hat{t}_{1}|\,(\vec{v}_{1}\cdot\hat{t}_{1})\,\hat{t}_{1}~{}.$
(13)

The area of the string factoring into $\gamma_{\text{str}}$ is proportional to
its length $\ell$, which changes as the masses move. To account for this, we
write $\gamma_{\text{str}}=\ell\,\alpha_{\text{str}}$. Using Eqs. (3)-(4) and
Eq. (8), the net force on $M_{1}$ is then

$\begin{split}\vec{F}_{\text{net},1}=\big{(}T_{1}+M_{1}\,g\,\cos\theta+\gamma_{1}\,|\vec{v}_{1}|\,(\dot{\ell}+R\,\dot{\theta})\big{)}\,\hat{e}_{1}\\\
+\big{(}M_{1}\,g\,\sin\theta-\gamma_{1}\,|\vec{v}_{1}|\,\ell\,\dot{\theta}-\alpha_{\text{str}}\,|\ell\,\dot{\theta}|\,\ell^{2}\,\dot{\theta}\big{)}\,\hat{t}_{1}~{}.\end{split}$
(14)

The coefficients $\gamma_{1}$ and $\alpha_{\text{str}}$ characterizing the
air-resistance forces will be discussed in more detail in Section IV.

The tensions $T_{1}$ and $T_{2}$ will differ because of friction between the
string and the rod.

Figure 3:  Friction between the string and the rod determines the difference
between the tensions $T_{1}$ and $T_{2}$.

Figure 3 shows an infinitesimal segment of string covering an angle
$\text{d}\theta$ along the rod. We assume here that the string is sliding
across the surface of the rod in the clockwise direction. This produces a
small amount of friction $\text{d}F_{f}=\mu\,\text{d}N$ in the
counterclockwise direction, where $\mu$ is the coefficient of friction between
the string and the rod and $\text{d}N$ is the normal force acting on the
string segment. Since $\text{d}\theta\ll 1$, we use
$\cos\frac{\text{d}\theta}{2}\simeq 1$ and
$\sin\frac{\text{d}\theta}{2}\simeq\frac{\text{d}\theta}{2}$ to write the net
force on the segment of string as

$\displaystyle\vec{F}_{\text{net}}=(\text{d}T-\mu\,\text{d}N)\,\hat{x}+(\text{d}N-T\,\text{d}\theta)\,\hat{y}~{}.$
(15)

Requiring the net force to vanish gives

$\displaystyle\text{d}T=T\,\mu\,\text{d}\theta~{}.$ (16)

Integrating $\text{d}T$ over the interval between the two points where the
string makes contact with the rod, as illustrated in Fig. 1, gives the
relationship between $T_{1}$ and $T_{2}$:

$\displaystyle T_{2}=T_{1}\,e^{-\text{sign}(v_{2})\,\mu\,\theta}~{}.$ (17)

The factor of $-\text{sign}(v_{2})$ in the exponent accounts for the fact that
the string may slide along the rod in either direction, depending on whether
$M_{2}$ is moving downwards or upwards. The clockwise sliding shown in Fig. 3
corresponds to $M_{2}$ moving downwards, in which case $\text{sign}(v_{2})<0$
and $T_{2}>T_{1}$.

We are now in position to write the equations of motion for the looping
pendulum. For mass $M_{1}$, the $\hat{e}_{1}$ and $\hat{t}_{1}$ components of
Newton’s second law give

$\displaystyle
M_{1}\,\big{(}\ell\,\dot{\theta}^{\,2}-\ddot{\ell}-R\,\ddot{\theta}\big{)}={}$
$\displaystyle
T_{1}+M_{1}\,g\,\cos\theta+\gamma_{1}\sqrt{\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}^{2}+\big{(}\ell\,\dot{\theta}\big{)}^{2}}\,\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}~{},$
(18) $\displaystyle
M_{1}\,\big{(}2\,\dot{\ell}\,\dot{\theta}+\ell\,\ddot{\theta}+R\,\dot{\theta}^{\,2}\big{)}={}$
$\displaystyle
M_{1}\,g\,\sin\theta-\gamma_{1}\,\sqrt{\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}^{2}+\big{(}\ell\,\dot{\theta}\big{)}^{2}}\,\ell\dot{\theta}-\alpha_{\text{str}}\,|\ell\,\dot{\theta}|\,\ell^{\,2}\dot{\theta}~{}.$
(19)

For mass $M_{2}$ the equation of motion is

$\displaystyle
M_{2}\,\big{(}\ddot{\ell}+R\,\ddot{\theta}\big{)}=T_{2}-M_{2}\,g-\gamma_{2}\,|\dot{\ell}+R\,\dot{\theta}|\,\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}~{}.$
(20)

Solving Eq. (18) for $T_{1}$ and using Eq. (17) leads to the following pair of
coupled, second-order, non-linear differential equations for $\ell(t)$ and
$\theta(t)$:

$\displaystyle 0={}$ $\displaystyle
2\,\dot{\ell}\,\dot{\theta}+\ell\,\ddot{\theta}+R\,\dot{\theta}^{\,2}-g\,\sin\theta+\frac{\gamma_{1}}{M_{1}}\,\sqrt{\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}^{2}+\big{(}\ell\,\dot{\theta}\big{)}^{2}}\,\ell\,\dot{\theta}+\alpha_{\text{str}}\,|\ell\,\dot{\theta}|\,\ell^{\,2}\dot{\theta}\,,$
(21) $\displaystyle 0={}$
$\displaystyle\ddot{\ell}+R\,\ddot{\theta}+g+\frac{\gamma_{2}}{M_{2}}\,|\dot{\ell}+R\,\dot{\theta}|\,\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}$
(22)
$\displaystyle-e^{-\text{sign}(v_{2})\mu\,\theta}\left(\frac{M_{1}}{M_{2}}\,\big{(}\ell\,\dot{\theta}^{\,2}-\ddot{\ell}-R\,\ddot{\theta}-g\,\cos\theta\big{)}-\frac{\gamma_{1}}{M_{2}}\sqrt{\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}^{2}+\big{(}\ell\,\dot{\theta}\big{)}^{2}}\,\big{(}\dot{\ell}+R\,\dot{\theta}\big{)}\right)~{}.$

These equations cannot be solved in closed form, so in this paper we use
Mathematica to solve them numerically. The numerical solution is compared with
our experimental results in Section IV.

The phenomenon that first drew our attention to the looping pendulum is the
tendency of mass $M_{2}$ to fall some distance from its initial position and
then stop moving. In some cases its motion will stop temporarily before
falling again, or it may even briefly move upwards. But once $M_{2}$ stops
completely – a behavior we refer to as _halting_ – the subsequent motion of
$M_{1}$ simplifies somewhat. First, the shape of its trajectory (assuming it
is moving fast enough to maintain tension in the string) is entirely
determined by the action of the string wrapping around the rod. Second, if air
resistance is ignored then the time dependence of $\ell$ and $\theta$ are
well-approximated by a simple function. These observations, which aren’t
essential in what follows, are discussed in more detail in Appendix B.

##  III Experimental Setup

To test the model derived in Section II we constructed several looping
pendulums and recorded the motion of masses $M_{1}$ and $M_{2}$ for a range of
initial conditions. The $x$ and $y$ positions of each mass were then extracted
from a slow-motion video using the Tracker Video Analysis and Modeling Tool
Tracker .

A schematic of our apparatus is shown in Fig. 4. The frame consisted of three
aluminum rods. Two vertical rods were mounted on lab stands, with clamps
connected to each rod supporting a third, horizontal rod. The third rod, which
was aligned using a level, appears in cross section in Fig. 1. The two masses
were connected by a string which was placed over this rod. The lighter mass
was then released from rest at different initial angles. The subsequent motion
of the masses was recorded in a 240 fps video using an iPhone placed in front
of the apparatus. A large white panel with a grid drawn on it was mounted
behind the apparatus to improve alignment of the camera and visibility of the
masses.

Figure 4:  The arrangement of the rods, masses, string, and camera is shown in
this schematic of the apparatus used in our experiments.

The materials used in the apparatus were selected because they were on hand at
the beginning of the project. With the exception of a set of cylindrical
masses used in later trials, all materials were taken from one of the
undergraduate project rooms in the Physics Department at Loyola University
Chicago. Multiple pendulums were built following the setup described above,
but there was some variation in materials. A number of different aluminum rods
were used for the horizontal rod. While all the rods had a length of
approximately $1\,\text{m}$ and a diameter between $1.2$-$1.3\,\text{cm}$,
rough spots and variations in surface finish gave different values for the
coefficient of friction $\mu$. The string connecting the masses was taken from
a spool of generic kite string and was not selected for any particular
properties other than its negligible mass. The masses themselves initially
comprised bundles of washers with individual masses in the range of
$7.5$-$7.7\,\text{g}$. The irregular shape of the bundles made it difficult to
model air resistance so they were eventually replaced with a set of
cylindrical masses. Later versions of the apparatus also corrected problems
like alignment of the camera, using a leveled tripod to mount the iPhone
rather than a standard lab clamp.

There were several dimensionless parameters that could be varied when running
the experiment: the ratio $M_{2}/M_{1}$ of the masses; various ratios of the
lengths $L$, $\ell$, and $R$; and the initial angle $\theta_{i}$ for the point
of contact between the string and the rod. We observed the behavior of the
masses for several values of $M_{2}/M_{1}$, multiple values of the initial
angle $\theta_{i}$ for each value of the mass ratio, and fixed 222Fixed values
within small variations associated with positioning the string, attaching the
masses, and using different rods values of $L$, $\ell$, and $R$.

A run of the experiment began by selecting two masses that gave a specific
value of $M_{2}/M_{1}$. The masses were connected by a string, a spot was
marked on the string where it would make contact with the rod, and the total
length of the string $L$ and the length $\ell$ from the point of contact to
$M_{1}$ were measured. The mass $M_{1}$ was then positioned at different
initial angles, held at rest but with tension in the string, and released. The
participant recording the run would scrutinize the video for signs that the
masses had made contact with each other or with the string. If there was any
indication of contact the run would be repeated. This happened frequently, so
getting a “clean” run with no collisions typically required several attempts.
This process was then repeated for a new initial angle, with multiple initial
angles tested for each mass ratio.

Once a run was successfully completed, the 240 fps video was trimmed to begin
at the frame where the masses were released and loaded into the Tracker Video
Analysis and Modeling Tool. The length scale was set by identifying the
distance between two points in the first frame with one of the measured
lengths (typically $\ell$), and then verified by comparing the computed and
measured values of the other lengths ($L$, $R$, and $h$). The initial angle
that the string connected to $M_{1}$ made with the horizontal direction was
measured and converted into the initial angle $\theta$ shown in Fig. 1. Then
the positions of each mass were recorded frame-by-frame until mass $M_{1}$
reached the rod – typically resulting in between 200 and 400 data points. The
positions were marked on screen at the points where the string attached to the
masses. Once all the positions had been marked, the data was exported to CSV
files containing the $(t,x,y)$ data points for each mass. The data was then
imported into Mathematica and compared with the numerical solution of our
model.

There were aspects of the apparatus which could not be incorporated into the
model of Section II. For example, the model assumes that the trajectory of the
masses lies in a plane. However, it was difficult to realize this in practice.
When the masses experienced coplanar motion they often collided with each
other or with the string. To avoid this, the trajectory of mass $M_{1}$ had to
have a small component in the direction parallel to the rod, which is not
included in our simulation. Another problem arose from the string looping over
itself as it wound around the rod. This changed the value of the coefficient
of friction in a way that we could not account for in the model. Fortunately,
these effects could be minimized: a careful release of the mass reduced motion
parallel to the rod, and a trial could be repeated if the video showed the
string looping over itself and subsequently slipping. More significant sources
of error which can be addressed in future experiments with different materials
or equipment are discussed in Section V.

##  IV Experimental Results and Comparison with Simulation

To compare our experimental results to the model of Section II we solve Eqs.
(21)-(22) numerically. The equations depend on several parameters which must
be measured or estimated. The quantities $R$, $L$, $\ell$, and $\theta_{i}$
were measured directly and/or extracted from video using the Tracker Video
Analysis and Modeling Tool, while the coefficient of friction $\mu$ was
determined using a procedure described below. The drag coefficients could not
be measured and were instead estimated based on the shape and dimensions of
the masses and string.

Figure 5:  The masses are suspended vertically and released from rest. Mass
$M_{2}$ moves downwards with a constant acceleration (ignoring air resistance)
that depends on $g$, $\mu$, and the ratio $M_{2}/M_{1}$.

The coefficient of friction $\mu$ between the string and rod was determined by
tracking the motion of masses $M_{1}$ and $M_{2}$ after they were suspended
vertically and released from rest. This arrangement is shown in Fig. 5. In
that case the masses move up or down with constant acceleration. The motion of
the masses was recorded, the position of $M_{2}$ as a function of time was
extracted from the video using Tracker, and $\mu$ was determined by fitting
this data to the trajectory

$\displaystyle
y_{2}(t)=y_{2}(0)-\frac{1}{2}\,g\,\frac{M_{2}-M_{1}\,e^{\mu\pi}}{M_{2}+M_{1}\,e^{\mu\pi}}\,t^{2}~{}.$
(23)

An example of a best-fit for the case $M_{2}/M_{1}=10$, yielding the value
$\mu=0.34$, is shown in Fig. 6.

Figure 6:  For the case $M_{2}/M_{1}=10$, the green curve shows the trajectory
with $\mu=0$, the purple circles show the positions extracted from video of
the falling mass, and the blue curve represents the best-fit value $\mu=0.34$
for Eq. (23).

Air resistance of the masses and string was more difficult to quantify. In
Eqs. (21)-(22) the three coefficients $\gamma_{1}$, $\gamma_{2}$, and
$\alpha_{\text{str}}=\gamma_{\text{str}}/\ell(t)$ determine the magnitude of
the drag forces. These coefficients are generally expected to take the form

$\displaystyle\gamma=\frac{1}{2}\,C\,\rho_{\text{air}}\,A~{},$ (24)

where $C$ is a drag coefficient of order 1, $\rho_{\text{air}}\simeq
1.2\,\text{kg}/\text{m}^{3}$ is the density of air, and $A$ is the area that
the object presents in a plane perpendicular to its direction of motion. In
early runs of the experiment the masses comprised bundles of washers. The
irregular shape of the bundles made estimates of $A$ difficult, especially as
$M_{1}$ changed orientation during its motion, so the washers were later
replaced with a set of cylindrical masses. Assuming a drag coefficient $C$ of
order 1, and treating the area $A$ as that of a rectangle with dimensions
given by the height and diameter of the cylinder, the coefficients
$\gamma_{1}$ and $\gamma_{2}$ were estimated to both be of order
$10^{-3}\,\text{kg}/\text{m}$. For the string connecting $M_{1}$ to the rod,
the area in the plane perpendicular to $\hat{t}_{1}$ is equal to its length
$\ell(t)$ times its diameter. The string used in the experiment has a diameter
of approximately $2\,\text{mm}$, so the ratio
$\alpha_{\text{str}}=\gamma_{\text{str}}/\ell(t)$ is estimated to be
$\alpha_{\text{str}}\simeq 10^{-3}\,\text{kg}/\text{m}^{2}$.

(a)

(b)

(c)

(d)

Figure 7: These plots show experimental data for $M_{1}$ (red circles) and
$M_{2}$ (green circles), along with the numerical solution of our model (blue
curve), for $M_{2}/M_{1}=10$. The vertical purple line in Figs. 7(b), 7(c),
and 7(d) indicates the time when $M_{2}$ halts.

Data for a typical trial with mass ratio $M_{2}/M_{1}=10$
($M_{1}=10\,\text{g}$, $M_{2}=100\,\text{g}$) is compared with the numerical
solution of our model in Fig. 7. The first subfigure, Fig. 7(a), shows the
path followed by $M_{1}$ as it loops around the rod. The simulation accurately
tracks the measured position of $M_{1}$ from release until the point where
$M_{2}$ halts (the solid black dot), and then precisely replicates the spiral
produced by the string wrapping around the rod (see also Appendix B). The
primary source of error affecting these plots is uncertainty in accurately
judging the position of $M_{1}$, caused by the blurring of the mass in the
video.

Figure 7(b) compares the observed and simulated dynamics of $M_{2}$ as it
falls vertically. The model predicts that the mass drops a distance $\Delta
y_{2,\textrm{\tiny num}}=-0.37\,\text{m}$ before halting, and the observed
value was $\Delta y_{2,\textrm{\tiny exp}}=-0.37\,\text{m}$. The numerical
solution predicts that $M_{2}$ halts $0.38\,\text{s}$ after $M_{1}$ is
released, which is again in good agreement with the observed halt time of
$0.40\,\text{s}$. However, in Fig. 7(b) the mass can be seen to pass directly
through its final $y_{2}$ value closer to the predicted halt time. It briefly
dips below its final $y_{2}$ value and then returns to the same point at a
slightly later time. We suspect that this behavior is caused by the slight
elasticity of the string, which was not accounted for in the model.

Finally, Figs. 7(c) and 7(d) show the $x$ and $y$ positions of mass $M_{1}$ as
a function of time. As with $M_{2}$, the numerical solution precisely captures
the dynamics of $M_{1}$ as it loops around the rod. The numerical solution
predicts that $M_{1}$ reaches the rod ($\ell=0$) at $t_{\textrm{\tiny
end}}=1.1\,\text{s}$. This prediction can’t be directly compared to
experiment, since the finite size of $M_{1}$ in our apparatus causes it to
collide with the rod before the length $\ell$ reaches zero. However, we can
compare the times at which $x_{1}$ and $y_{1}$ reach local extrema where
$v_{1,x}=0$ or $v_{1,y}=0$. These times are shown in Table 1 of Appendix A and
the predictions of the numerical solution are in excellent agreement with the
observed values. We should emphasize that the effects of air resistance are
essential for the accuracy of the model. Without air resistance, the model’s
prediction for when $M_{1}$ reaches the rod is typically $5-10\%$ earlier than
with air resistance included. Although this might amount to less than a tenth
of a second, it is enough for the late time behavior of the simulation to move
completely out of phase with the data. To faithfully track the dynamics of
$M_{1}$, air resistance must be included in the model.

(a)

(b)

Figure 8:  The numerical solution captures nontrivial features of the
trajectory and dynamics of the masses for the mass ratio $M_{2}/M_{1}=2$.

Our experiments show that the behavior of the looping pendulum for large
values of $M_{2}/M_{1}$ usually involves a quick halt, followed by a regular
spiral like the one in Fig. 7(a). 333The shape traced out by $M_{1}$ after
$M_{2}$ halts can also be understood in terms of the geometrical
considerations discussed in Appendix B. However, the looping pendulum exhibits
more complicated behavior at smaller values of $M_{2}/M_{1}$, which is also
well accounted for in our model.

An example is shown in Fig. 8 for the case $M_{2}/M_{1}=2$
($M_{1}=50\,\text{g}$, $M_{2}=100\,\text{g}$). The mass $M_{1}$ follows a path
with a qualitatively different shape than the trajectory shown in Fig. 7(a).
Nevertheless, it is well described by the numerical solution. The motion of
$M_{2}$ is also very different than what is seen in Fig. 7(b). It is observed
to drop, briefly stop at time $t_{A}$, then move upwards before stopping again
at time $t_{B}$, and then resume falling at time $t_{C}$ before finally
halting. The same behavior appears in the numerical solution of our model.
Table 2 in Appendix A summarizes the observed and predicted values for the
times and positions of these events. The dynamics match up well for the first
few events, with small differences between the predicted and observed values
for $t_{A}$ and $t_{B}$. There is a larger disagreement between the observed
and predicted values for the time $t_{C}$ at which $M_{2}$ begins its final
downward plunge. But the model’s halting time is once again in good agreement
with the data, and it successfully reproduces the final distance that $M_{2}$
drops. (There appears to be another small “bounce” in the data as $M_{2}$
abruptly stops, likely due to stretching of the string.) Despite slightly
larger errors for some of the intermediate features in $M_{2}$’s trajectory,
the model gives a compelling description of what was observed in the
experiment. In fact, the $M_{2}/M_{1}=2$ trial was carried out because the
simulation predicted this interesting behavior for $M_{2}$.

##  V Discussion

In this paper we developed a model of the looping pendulum using Newton’s
Laws. The result is a system of two coupled, nonlinear differential equations
which we solved numerically. The numerical solution accurately describes the
trajectory and dynamics of the masses, and reproduces complex behaviors
observed for smaller values of the ratio $M_{2}/M_{1}$.

The apparatus described in Section III was built with materials that were on
hand. Replacing some of the components would reduce uncertainty in data
collection, eliminate the effects of forces we did not account for, and
improve our ability to estimate parameters that appear in the model.

The single largest source of uncertainty when collecting position data was
blurring of the fast-moving masses (especially $M_{1}$) in the video. Future
versions of the experiment will rely on a dedicated high speed camera instead
of an iPhone, which will reduce blurring and allow us to more accurately
identify the positions of the masses in each frame.

Another source of error is the slight elasticity of the string. The string
connecting the masses will be replaced with a material that is less
susceptible to stretching. We expect that this will reduce the small bounce
seen in $M_{2}$’s position as it halts, resulting in more reliable
measurements of the halting time.

A final challenge is factoring in air resistance, which proved important for
reproducing the dynamics of the pendulum. The orientations of the masses, and
hence the area they present in a plane perpendicular to their velocity, change
throughout their motion. This alters the drag coefficients, which are already
difficult to estimate. Replacing bundles of washers with cylindrical masses
was an improvement, but spherical masses that present the same area throughout
their motion would better address this problem.444One could also conduct the
experiment in a vacuum, but this seems impractical.

Using an improved apparatus, we will explore a larger range of the looping
pendulum’s parameter space. These first investigations sampled a relatively
small number of initial angles for mass ratios $2\leq M_{2}/M_{1}\leq 10$. We
hope to extend this to higher and lower values of $M_{2}/M_{1}$, and to
explore a much larger set of initial angles. For lower values of $M_{2}/M_{1}$
the system only seems to halt for isolated values of the initial angle, so it
would be interesting to see if there is a nontrivial value of $M_{2}/M_{1}$
below which halting does not occur at all. Also, the presence of air
resistance in the model means that the individual masses are important, as
opposed to just their ratio. It would also be interesting to explore the
behavior of the system as $M_{1}$ and $M_{2}$ are increased (or decreased)
with $M_{2}/M_{1}$ held fixed. The ratios $\gamma_{1}/M_{1}$ and
$\gamma_{2}/M_{2}$ appear in the equations of motion, so the area scaling of
$\gamma$ and volume scaling of $M$ should make air resistance less important
for larger masses.

Finally, at smaller values of $M_{2}/M_{1}$ our model seems to show
sensitivity to small changes in initial conditions. This is reminiscent of
simple systems that display chaotic behavior, like the double-pendulum. For
larger values of $M_{2}/M_{1}$ the numerical solutions are robust in the sense
that small changes in the initial angle (or other parameters of the model)
lead to small changes in the trajectory and quantities like $t_{\textrm{\tiny
halt}}$. But as we decrease $M_{2}/M_{1}$ these “nearby” solutions often
describe qualitatively different behaviors.

Figure 9: The simulated behavior of $y_{2}$ and $\ell$ for $M_{2}/M_{1}=2.5$
and initial angles $75^{\circ}$, $75.1^{\circ}$, $75.2^{\circ}$, and
$75.3^{\circ}$ suggests sensitive dependence on the initial conditions.

Figure 9 shows an example of this for $M_{2}/M_{1}=2.5$ ($M_{2}=38\,\text{g}$,
$M_{1}=15.2\,\text{g}$). Beginning at an initial angle of $75^{\circ}$ and
incrementing in steps of $0.1^{\circ}$, the solutions exhibit the same initial
behavior before branching out into a wide range of halting times. It is not
clear yet whether this is a genuine feature of the looping pendulum or an
artifact of the numerical methods used to solve the equations of motion. But
we suspect that the looping pendulum may exhibit chaotic behavior, and we are
currently investigating this possibility.

###### Acknowledgements.

We wish to thank Loyola University Chicago for facilitating lab access during
the COVID-19 pandemic shutdown, and the Department of Physics for providing
the materials and work space used in the experiments.

##  Appendix A Data

Table 1 shows the observed and predicted times for the local extrema of
$x_{1}$ and $y_{1}$ in Figs. 7(c) and 7(d), respectively. Times in the
$t_{\textrm{\tiny exp}}$ columns were found by identifying points with the
largest local values (positive or negative) of $x_{1}$ and $y_{1}$ in the
data. The values in the $t_{\textrm{\tiny num}}$ columns were obtained by
evaluating the derivatives $\dot{x}_{1}$ and $\dot{y}_{1}$ for the numerical
solution and finding their roots. As explained in the text, the numerical
solution is in excellent agreement with the data. Table 2 records the times
and positions for various events experienced by mass $M_{2}$ as shown in Fig.
8(b).

| $v_{1,x}=0$ | $v_{1,y}=0$
---|---|---
|  $t_{\textrm{\tiny exp}}$ |  $t_{\textrm{\tiny num}}$ |  $t_{\textrm{\tiny exp}}$ |  $t_{\textrm{\tiny num}}$
1 | $0.38\,\text{s}$ | $0.38\,\text{s}$ | $0.25\,\text{s}$ | $0.24\,\text{s}$
2 | $0.52\,\text{s}$ | $0.52\,\text{s}$ | $0.45\,\text{s}$ | $0.45\,\text{s}$
3 | $0.63\,\text{s}$ | $0.63\,\text{s}$ | $0.58\,\text{s}$ | $0.58\,\text{s}$
4 | $0.75\,\text{s}$ | $0.75\,\text{s}$ | $0.70\,\text{s}$ | $0.69\,\text{s}$
5 | $0.84\,\text{s}$ | $0.84\,\text{s}$ | $0.79\,\text{s}$ | $0.79\,\text{s}$
6 | $0.91\,\text{s}$ | $0.92\,\text{s}$ | $0.87\,\text{s}$ | $0.88\,\text{s}$
7 | $0.98\,\text{s}$ | $0.99\,\text{s}$ | $0.95\,\text{s}$ | $0.96\,\text{s}$
Table 1:  Experiment and numerical solution values for the times when $x_{1}$ and $y_{1}$ experience local extrema in Figs. 7(c) and 7(d). Quantity |  Experiment |  Numerical |  Percent Error
---|---|---|---
$t_{A}$ | $0.31\,\text{s}$ | $0.32\,\text{s}$ | $4.6$
$\Delta y_{2}(t_{A})$ | $-0.21\,\text{m}$ | $-0.23\,\text{m}$ | $8.5$
$t_{B}$ | $0.46\,\text{s}$ | $0.48\,\text{s}$ | $3.0$
$\Delta y_{2}(t_{B})$ | $-0.20\,\text{m}$ | $-0.21\,\text{m}$ | $8.6$
$t_{C}$ | $0.71\,\text{s}$ | $0.62\,\text{s}$ | $12.7$
$t_{\textrm{\tiny halt}}$ | $1.0\,\text{s}$ | $0.95\,\text{s}$ | $4.6$
$\Delta y_{2}(t_{\textrm{\tiny halt}})$ | $-0.44\,\text{m}$ | $-0.44\,\text{m}$ | $0.7$
Table 2:  Observed and predicted values for the times and changes in position
at different points along the trajectory of $M_{2}$ as illustrated in Fig.
8(b).

##  Appendix B Motion of $M_{1}$ After Halting

Once the heavier mass halts, the shape of the path followed by the lighter
mass is completely determined by the string wrapping around the rod. The shape
of this spiral can be described using the polar coordinates $(\rho,\psi)$
shown in Fig. 10, where $\rho=\sqrt{R^{2}+\ell^{2}}$ is the distance from the
center of the rod to $M_{1}$ and $\psi=\theta+\arctan(\ell/R)$ is its angular
position.

Figure 10:  After $M_{2}$ has halted, the subsequent path of $M_{1}$ is
determined by the fixed length of string $\ell_{\textrm{\tiny halt}}$ looping
around the rod. The polar coordinates $(\rho,\psi)$ shown here are used to
describe this path.

Let $\ell_{\textrm{\tiny halt}}$ and $\theta_{\textrm{\tiny halt}}$ be the
values of $\ell$ and $\theta$, respectively, when $M_{2}$ halts. Since $h$ is
now constant, $L-h=\ell+R\,\theta=\ell_{\textrm{\tiny
halt}}+R\,\theta_{\textrm{\tiny halt}}$ and the shape of the curve is

$\displaystyle\rho(\psi)=\sqrt{R^{2}+(\ell_{\textrm{\tiny
halt}}+R\,\theta_{\textrm{\tiny halt}}-R\,\theta(\psi))^{2}}~{},$ (25)

where $\theta(\psi)$ is defined implicitly by the transcendental equation

$\displaystyle\psi=\theta(\psi)+\arctan\Big{(}\frac{\ell_{\textrm{\tiny
halt}}}{R}+\theta_{\textrm{\tiny halt}}-\theta(\psi)\Big{)}~{}.$ (26)

The value of $\theta$ when $M_{1}$ reaches the rod ($\ell=0$) is
$\theta_{\textrm{\tiny halt}}+\ell_{\textrm{\tiny halt}}/R$, so $\psi$ takes
values in the range

$\displaystyle\theta_{\textrm{\tiny
halt}}+\arctan\Big{(}\frac{\ell_{\textrm{\tiny
halt}}}{R}\Big{)}\leq\psi\leq\theta_{\textrm{\tiny
halt}}+\frac{\ell_{\textrm{\tiny halt}}}{R}~{}.$ (27)

The values $\ell_{\textrm{\tiny halt}}$ and $\theta_{\textrm{\tiny halt}}$
depend on the dynamics of the system, and for some initial conditions halting
may not occur at all. But once $M_{2}$ has completely stopped moving, the
shape of the curve traced out by $M_{1}$ is geometrically determined by the
string looping around the rod. As an example, Fig. 11 reproduces this path for
$M_{1}$ in the $M_{2}/M_{1}=10$ trial shown in Fig. 7(a).

Figure 11: After mass $M_{2}$ halts in Fig. 7(a), mass $M_{1}$ follows the
spiral described by Eqs. (25)-(26) with $\ell_{\textrm{\tiny
halt}}=0.196\,\text{m}$ and $\theta_{\textrm{\tiny halt}}=4.738$.

Once $M_{2}$ has completely halted we can also give an approximate solution
for $\ell(t)$ and $\theta(t)$ in the case where air resistance is negligible.
As above, $\ell+R\,\theta=\ell_{\textrm{\tiny halt}}+R\,\theta_{\textrm{\tiny
halt}}$ is constant and therefore
$\dot{\ell}+R\,\dot{\theta}=\ddot{\ell}+R\,\ddot{\theta}=0$. Then the
$\hat{t}_{1}$ component of the equation of motion for $M_{1}$ becomes

$\displaystyle\dot{\ell}\,\dot{\theta}+\ell\,\ddot{\theta}=g\,\sin\theta~{},$
(28)

which can be rewritten as

$\displaystyle\dot{\ell}^{2}+\ell\,\ddot{\ell}=-g\,R\,\sin\left(\theta_{\textrm{\tiny
halt}}+\frac{\ell_{\textrm{\tiny halt}}}{R}-\frac{\ell}{R}\right)~{}.$ (29)

If we ignore the right-hand side of the equation then the solution from the
time $t_{\text{\tiny halt}}$ when $M_{2}$ halts until the time $t_{\text{\tiny
end}}$ when $M_{1}$ reaches the rod is

$\displaystyle\ell(t)=\ell_{\textrm{\tiny halt}}\,\sqrt{\frac{t_{\text{\tiny
end}}-t}{t_{\text{\tiny end}}-t_{\text{\tiny halt}}}}$ (30)
$\displaystyle\theta(t)=\theta_{\textrm{\tiny halt}}+\frac{\ell_{\textrm{\tiny
halt}}}{R}-\frac{\ell_{\textrm{\tiny halt}}}{R}\,\sqrt{\frac{t_{\text{\tiny
end}}-t}{t_{\text{\tiny end}}-t_{\text{\tiny halt}}}}~{}.$ (31)

For the cases we have considered these expressions differ from the numerical
solution of the system by no more than a few percent. This suggests that an
analytic solution of the full equation Eq. (29) can be obtained
perturbatively. However, our experiments show that the effects of air
resistance are important for capturing the dynamics of the system, so we will
not pursue this further.

## References

  * (1) See for example the YouTube channel “Homemade Science with Bruce Yany” https://youtu.be/SXQ9VaYm3yQ which gathered over 1.4 M views since 2015.
  * (2) “Looping Pendulum” https://www.iypt.org/problems/problems-for-the-32nd-iypt-2019, problem 14.
  * (3) Zhou Yu-bo et al, “Research on the looping pendulum phenomenon,” European Journal of Physics 41 025003 (2020). DOI: https://doi.org/10.1088/1361-6404/ab5e68
  * (4) Wolfram Research, Inc., Computer Program “Mathematica,” Version 12.2 (2020), https://www.wolfram.com/mathematica
  * (5) D. Brown, Computer Program “Tracker Video Analysis and Modeling Tool,” Version 5.1.4 (2020), WWW Document, https://physlets.org/tracker/.