
01/01/2023
Sunday
Project Overview
This project explores web scraping methods to collect large datasets and experiment with different ways to visualize them. To approach this, I wanted to work with a dataset that was both engaging and rich in visual potential. Being interested in boxing and Muay Thai, I found an online archive containing photos of title fights from 1964 to 2025. This dataset provided a unique opportunity to analyze decades of combat sports history through imagery, allowing me to experiment with different ways to represent trends, patterns, and narratives within the sport. By extracting and organizing this data, I wanted to explore how visual elements, such as color, motion, and composition, can convey information beyond traditional charts and graphs.

Initial Data Scraping
Using ParseHub, I scraped data from Sport Photo Gallery to compile an archive of boxing title fight images from 1964 to 2025. To capture the data effectively, I ran two separate web scrapers: one to extract images only and another to include both images and fight names. Below, I’ve attached a screenshot of my workflow on ParseHub to illustrate the process.

Data Visualization
I used Jupyter Notebook to perform data visualization on image datasets using multiple dimensionality reduction techniques, including t-SNE (t-Distributed Stochastic Neighbor Embedding), Pyramid (multi-scale image representation), CNN (Convolutional Neural Networks feature extraction), and UMAP (Uniform Manifold Approximation and Projection). These methods allowed for effective high-dimensional data exploration by projecting the image feature spaces into lower dimensions for visualization.
Edited Video
The final output of my project is a one-minute animated video depicting a boxing match, created by sequencing a series of still images. To maintain a cohesive visual experience, I rendered the video in monotone that the audience remains focused on the movement and intensity of the fight rather than being distracted by the colors from different images. Additionally, I refined the animation by cutting out certain frames from the initial sequence. This eliminated abrupt transitions and enhanced the overall fluidity of the motion.
I wish I had started with a dataset that had more visual coherence. While I aimed to capture the intensity of a boxing fight, the variations in the original images made it challenging to create 'seamless' transitions. Converting everything to monotone helped unify the visuals, but I still had to cut certain frames to smooth out the motion.
After learning this technique, I’m excited to apply it to future projects with a more carefully curated dataset. I’d definitely want to animate something where the transitions feel more natural and fluid, allowing for a smoother, more immersive visual experience.
