Finally, this little C++ project that I started more than 20 years ago went open source at Github, mainly thanks to the diligence and passion of Prof. Jun Xie, a former student and now collaborator at Southwest Jiaotong University. As of now, it contains just one traffic assignment algorithm (the greedy algorithm we developed a few years back), but the plan is to gradually release many more in the coming months.
I began to develop TNM –which stands for Toolkit for Network Modeling– in 2003. The project is a collection of C++ code I wrote to deal with many different transportation network problems, ranging from origin-destination estimation to microscopic traffic simulation (yes, I had even written a microscopic simulator based on Cellular Automata. It seems like an extravagant waste of time, with the benefits of hindsight). In March 2006, when I was wrapping up my PhD research at UC Davis, I wrote a document summarizing the development up to that point, which I have since frequently quoted in my papers that use the code to produce numerical results. You may check it here.
My development of TNM would continue well into my tenure at Northwestern. In fact, as late as in 2015, I was still busy putting stuff into TNM. Over the years I developed a rather flexible and universal GUI based on MFC that has the ability to accommodate many different types of network problems — at one point I even learned to deal with GIS functions in my GUI. I would be lying if I tell you I did not enjoy the thrill of making a machine do what I command…. However, eventually, I realize that I must stop indulging in this hobby as it has become a black-hole swallowing an undue amount of my energy that was in short supply given my increasing seniority and the responsibilities that came with it (I am sure this epiphany came to me a bit too late).
Right around the time I decided it is the time to pass the torch to the next generation, Jun showed up in my lab, first as a visiting PhD student then as a visiting postdoc. Unlike the vast majority of my other students, he did not mind wresting with the messy C++ code I wrote in haste. On the contrary, he seemed to truly enjoyed it. So, Jun gradually became involved in the development of TNM and, after joining Southwest Jiaotong University, has added to the development team his own graduate students. Without Jun, the publication of TNM on github probably would never have happened.