In addition to what @Hobo4ssassin describes, I think there’s a few somewhat related topics that may point you in the right direction.
There’s some good pointers here: