recursive portrait