This is some software I have written (some as fun exercises, some for student tutorials, and some for research). Also note, while this code is in MATLAB, my research group is working on two separate control-based toolboxes that will be made freely available in Python. Stay tuned…

Network Curvature

  • ABOUT: This code illustrates a recent that shows changes in Ricci curvature is positively correlated with a systems robustness. This mathematical result was further shown to differentiate time-varying network. In particular, the code posted here implements a notion of discrete Ricci curvature, due to Yann Ollivier, and computes the results on toy examples. This said, one may use Ollivier-Ricci curvature for graphs and networks for ones own research of dynamical systems.

  • DOWNLOAD CODE (MATLAB)

Grayson's Theorem

  • ABOUT: This code illustrates the beautiful result in geometry due to Grayson Theorem. Specifically, a smooth simple closed curve which undergoes the curve-shortening flow will remain smoothly embedded without self-intersections eventually becoming convex, and once it does so it will remain convex. As the evolution (flow) progresses, all points of the curve will move inwards and the shape of the curve will converge to a circle and shrink to a single point. In short, every simple closed curve shrinks to a “round point” - Wikipedia.

  • DOWNLOAD CODE (MATLAB)

Distribution Metrics for Segmentation

  • ABOUT: We present a new distribution metric for image segmentation that arises as a result in prediction theory. Forming a natural geodesic, our metric quantifies “distance” for two density functionals as the standard deviation of the difference between logarithms of those distributions. Using level set methods, we demonstrate the proposed algorithm on classical images.

  • DOWNLOAD CODE (MATLAB)

Anisotropic Image Smoothing

  • ABOUT: This code illustrates how we can utilize concepts from geometry to effectively smooth an image while preserving important details (edge information). We compare this to classic signal processing smoothing that equates to running the heat equation. This is meant for tutorial purposes.

  • DOWNLOAD CODE (MATLAB)

Classical Shape Analysis

  • ABOUT: Notions of machine learning (now with deep learning) is the current hot topic. A subset of machine learning is manifold learning. I wrote this code to help illustrate students what a notion of a “shape basis” is as well as for the interested persons starting out in the world of learning.

  • DOWNLOAD CODE (MATLAB)

Joint Pose Estimation, Segmentation, and Learning

  • ABOUT: We often interested in exploiting 3D information from observations in the typical form of 2D images. On the one hand, we are interested in image segmentation and image recognition. However, objects “live” in the 3D real world and we are often interested in the recognition of the 3D shape as well as its location. This code represents a differential geometric approach that unifies manifold learning, image segmentation and pose estimation in a unique PDE-based energy functional.

  • DOWNLOAD CODE (MATLAB)

Coding Theory Fun

  • ABOUT: This project is not apart of my day-to-day research, but was interested in coding theory in general. As such, I wrote some software. In particular, this code tries to seek too minimize the gap-to-capacity (given by Shannon’s theoretical limit) of a rate 1\3 code (also can be modified for 1\N). Although better schemes are available such as LDPC and turbo codes, I chose this for my own understanding and simplicity.

  • DOWNLOAD CODE (MATLAB)