 PyKey essentially does a lot of custom visualizations. So we essentially do a lot of custom visualizations, stuff like this, stuff like this. And while we're doing this, we charge our customers a lot of money to build stuff like this. And they kept telling us, hey, why don't you build standard charts for us? And we kept asking them, why do you want us to build standard charts? When you already have D3, you have fusion charts, you have VAM charts, you have high charts. And what happened was, we started looking at why our customers are asking for new standard charts. Turns out a lot of these libraries have not been built with the first principles of design. They've not thought of the first principles of design. So when you use D3, you do not necessarily end up with the right design charts. When you use fusion charts, high charts, VAM charts, those were products built by developers, for developers with technical flexibility. They do not have a design bias to them. So what are the first principles? So when you don't use first principles, you get a chart like this. This chart, it's a pie chart with, it's 3D in nature. The 3D is not communicating any data. The colorful slices are not communicating any data. The legends and the labels are at different places. So my eyes need to go up and down and up and down. So I'm context switching continuously. And finally, the angle and perspective is not helping either. So there's a very nice YouTube talk by Noah Elinsky, where he's talking about the first principles of designs. So there are various visual encodings that communicate data to the human eye. And each one has its own limitations and advantages, and they should be used correctly. So let me show you how to actually apply these first principles. So this is a Cricut scorecard, ESPN Cricinforce scorecard. We broke it down by data, right? And then we started finding patterns in the data. You have overs is the notion of time. One over has many balls. One over has one bowler. One over has many batsmen. Existence of batsmen across overs is partnerships, right? And then we started plotting out the data. On the x-axis we have overs. On the y-axis we have balls. And we started plotting each and every run scored. Dot balls were de-highlighted. The wickets were outliers. They were highlighted. Then we started plotting overs on the x-axis, and then batsmen on the y-axis, and started drawing a Gnat chart of sorts. That is existence of batsmen across overs. When you combine the two, you basically get a scatterplot on the top, which is giving you runs, and a Gnat chart at the bottom, which is telling you partnerships. We combine these principles, and we came up with the innovative scorecard, which is this. It encompasses every single data point in the ESPN Cricinforce scorecard, right? So, overs are out here. You have balls. You can open the full scorecard. You can hover over one batsman, see which deliveries he faced. You can hover over one bowler, you see what overs that he bowled. So, the point here is that, one second. So, PyKey has essentially, we take a very reductionist approach to data design. When you start applying those principles, you end up eliminating a lot of visual encoding so that you get a design, which is communicating data in the first glance. We took these principles and built PyCharts.js. It's an open source library built on D3.js. Right, so this is PyCharts. It's well designed D3 without D3 charting without the complexity of D3. You have 26 plus charts. All the charts are theme-able, responsive, modular, real-time, easy to use, and you have 109 maps. Do try it out. We've taken a lot of design decisions to actually come to this all the way from how to design the data to what all to remove. You can even the color theming. Finally, you have a live editor so you can modify the charts as you like, change the parameters, copy the code, and get running. And finally, the toughest thing out there, we wrote documentation. So, this was the toughest part. It took us three iterations of together documentation right. So yeah, if you want charts, try out PyCharts.js.