I think there may be some overlap with this project by user @siegfried :
Good luck with your project!