This was my first attempt at writing a software library from scratch. I had a bunch of code in different places that performed many of the same tasks and wanted to unify it under one framework. It implemented the Data-Consistent Inversion framework (before it was called that), namely our sample-based approach for inverting probability measures.
This was an excellent opportunity to learn the process of writing object-oriented code, unit-tests, and so much more.
I ended up using this library extensively for my thesis proposal and eventually ended up migrating it into BET as part of the release of version 2.2.0.