Hi, I'm Edward!
student | developer | rustacean

Automated specific data visualization processes (such as 3D colored lag plots) that convert raw data to human-interpretable data

  • Used Python and associated data science libraries, including pandas, numpy, matplotlib, and plotly to process time-series data
  • Worked with both pre-processed and raw foster-care data, on the scale of millions of entries.
  • Introduced to and implemented data analysis concepts and methods: 3D lag plots, lowess smoothing, differencing, aggregation, etc.
  • Introduced to concepts of attractors, autocorrelation, convergent cross mapping, etc.
  • Python

Uses the Fourier Transform to create animated traced approximations of images.

  • Take an input image and create contours out of it
  • Find a way to connect contours (as they are not necessarily closed) into one closed path
  • Apply the DFT and Inverse DFT to find the fourier coefficients of the path
  • Use the approximated coefficients to recreate animations of the approximate path being drawn
  • Initially prototyped in MATLAB, then moved to python for animation speed (bottleneck was drawing, not calculation)
  • Generate text parametric equations of approximated paths
  • Python

Currently work in progress! Gets user-inputted mood and heartbeat and displays on paired devices in a smooth, aesthetic format.

  • Rust server to allow for cleaned up and lag-adjusted realtime communication between clients over UDP
  • Uses both the BLE and wifi client capabilities on the ESP32 to allow for user configuration and communication between devices
  • Android configuration apps to allow for custom lighting and settings on each client device
  • Custom 3D printed parts and wiring
  • Used parts such as WS2812B LEDs, electrolytic capacitors, resistors, 18650 batteries, and capacitive touch sensors
  • Designed, soldered, and implemented from scratch

Check the blog for updates and more details :)

  • Arduino
  • Rust
  • Java
  • Kotlin
  • Android

Built and maintained the main code repository for FTC team #3216, used in both the 2017-2018 and 2018-2019 competition seasons.

  • Field-centric localization with Vuforia
  • Robust game element detection using TensorFlow Lite
  • Wrote and manually tuned PID control systems for motion
  • Overall intended to be highly modular in structure (Composition > Inheritance for robot parts) and extensible
    • Asynchronous Command system where specific actions are separated into their own Command sub-class
    • All hardware and software components separated into their own Component sub-class
  • Java
  • Kotlin
  • Android

Implementation of a classification neural network from scratch over the summer of 2017.

  • 97% accuracy on the MNIST dataset
  • Stochastic gradient descent learning
  • Based on neuralnetworksanddeeplearning.com
  • Rust

A proof-of-concept to detect FTC Rover Ruckus game elements using OpenCV.

  • Currently using colorspace thresholding to detect objects, augmented with watershed for segmentation of objects
  • Potential usage of cascade classifier
  • Intend for depth calculation capability in order to get 3D relative coordinates of objects purely based off of image
  • Python
  • OpenCV

This site! Modern and clean, building on flexdinesh/dev-landing-page as a starting point.

  • Site itself is pure HTML5/CSS, no JS used
  • Custom static site generation from templates using Python and Jinja2
  • CSS
  • HTML
  • Python

A graphical gravity simulation with a modal UI, written in Rust and using GTK.

  • Simulate gravity for bodies
  • Path drawing
  • Good editing UI (switch to edit mode, then click for center, then click for outer point, click for direction vector, etc.)
  • Horizontal/Vertical zooming and graph drawing
  • Good performance
  • Rust

An attempt at replicating a very basic version of dan-ball's infamous powder game in MATLAB.

  • Final project for CEE 101S, featuring near-real-time graphics in MATLAB.
  • Displayed the feasibility of vectorizing large amounts of chained conditionals to allow for speed comparable to compiled programs with for loops (for loops are notoriously slow in MATLAB).

A lisp dialect with an interpreter written in Rust from scratch.

  • Supported a couple of basic mathematical operators, print, etc.
  • All of the necessary framework to make a useable language was in place
  • Rust

A GTK-based desktop bar-style audio visualizer, designed to run smoother and faster than Impulse (a similar program running on the Screenlets framework) while taking less system resources.

  • Visibly smoother than Impulse and ~half (4% vs 8%) the total cpu usage of Impulse
  • Parallel design to allow for multiple graphical instances to run at the same time even on the same audio sinks
  • Rust

Project assignments for Princeton's COS226: Algorithms and Data Structures course.

  • Java

I'm currently a student at Princeton University, pursuing a major in Computer Science, B.S.E. I'm always on the hunt for new technologies to try and more things to learn, especially in the fields of machine learning, robotics, networking, high performance computing and graphics, and physical simulation. On the side, you might see me running along the lake shore, re-customizing my linux desktop, or curling up in bed with a nice book. If you have any questions, want to hit me up with an internship offer or two ;), or just want to geek out about SIGGRAPH papers, weird projects on Github, or cool math problems, please don't hesitate to shoot me a message!

Thanks for stopping by!