There are some notes on this at: https://www.shapeoko.com/wiki/index.php/Fabrication_Techniques_%26_Hardware#Joinery
notably http://www.flexiblestream.org/Digital-Wood-Joints-001.php
and
https://www.shapeoko.com/wiki/index.php/Commercial_Software#Joints
as well as: