Since late 2014, I have been involved with Chart.js. I am currently, along with Tanner Linsley, one of the primary contributors and was responsible for a number of the big developments in version 2. It’s been a great adventure, and my first experience with open-source development. It’s scary at times to think that my code gets 50k+ downloads a month. Chart.js was also my first experience using the HTML 5 Canvas APIs, but it felt quite natural coming from C++ code that made use of Windows GDI APIs.

RNA Binding Site Finder

This was a quick tool I wrote for a friend. It allows the user to search a sequence of RNA for locations that could potentially bind with the search sequence. It has options to allow for partial matches where only part of the string matches a location in the RNA sequence. Correlation with RNA Secondary Structure By using the secondary structure configuration, it’s possible to correlate matches against locations that are single stranded.

Chart.js Zoom Plug-In

In early May 2016, I wrote a Zoom and Pan plugin to work with the new plugin system introduced in Chart.js v2.1.0. The plugin is touch ready and allows the use of gestures, such as pinch, to zoom the chart. Take a look at the chart below and try it out! In the future I think the zoom plugin will make a good reference as to what plugins can look like.

Smith Charts with Chart.js

Back when I was in university, I used Smith Charts all the time to visualize transmission line network matching. There aren’t many web ways of creating one, so I took a stab at it. The charts turned out surprisingly well. I found it much easier to do a lot of the scale work in a circular coordinate system with a final conversion to cartesian coordinates at the end. Building on the theme of reusable Chart components in Chart.js v2, I was able to reuse most of the existing functionality from the line chart controller.