Data Products
Programming projects I have developed or contributed to. Include: 3D visualizations, algorithm application, data science, and front-end development.
Subhalo Visualizer
Lorenz System
Personal Website
Spotify Analysis
Utah Teapot
Barnes-Hut
Subhalo Particle Visualizer
An application built for visualizing and plotting subhalo particle data from the Illustris and IllustrisTNG simulations.
Left panel: A rotatable, zoomable 3D view of the particles. Can switch between orthogonal and perspective views. Right panel: A contour plot of a quantity of the particles overlayed on a heatmap of another quantity of the particles. These are calculated from the particles shown in the left panel.
Libraries Utilized:
- JavaScript - THREE.js, D3.js, jQuery.js
- Python - Flask
Lorenz System
An interactive visualization of the Lorenz system, commonly known as the “butterfly effect.” I solved ordinary differential equations using Runge-Kutta Methods (RK4).
Left: Control initialization parameters for particle positions and other important constants.
Right: Interactive 3D visualization of particle trajectories.
Libraries Utilized:
- JavaScript - THREE.js, D3.js
Personal Spotify Playlist Analysis
A recreation of Spotify’s algorithm for recommending songs. I sorted 366 songs into “like” and “dislike” playlists, then trained my algorithm to recommend songs to me based on various song features.
A plot generated for comparing Spotify song feature distributions for the two playlists (orange - dislike, blue - like).
Algorithms Utilized:
- k-Nearest Neighbors, Support Vector Machine, Random Forest, Logistic Regression
- Python (Jupyter) - pandas, spotipy, numpy, matplotlib, scikit-learn
Utah Teapot
The Utah Teapot, a classic exercise for 3D rendering. Created for an interactive computer graphics course. Allows for object and world rotation, and switching between shader to cubemap reflections.
Left: Utah teapot rendering.
Right: Interactive instructions for switching shaders and rotating the object.
Libraries Utilized:
- JavaScript - webgl-utils.js
Barnes-Hut Algorithm
An implementation of the Barnes-Hut algorithm in JavaScript as an introduction to n-body simulation code.
View Github
Includes interactive elements. You can control how many particles are initialized into the scene, and pause and display the underlying quad-tree structure used for calculations.
Algorithms Utilized:
- Barnes-Hut, Quadtree
- JavaScript - Three.js
Personal Website
It's a bit meta, but here's my personal website hosted on Github Pages. Hello, world!
View Github
Libraries Utilized:
- Web - Bootstrap, Google Analytics