Product design algorithm