Ab-initio trainer