The present invention includes programs, devices and methods for a programmable ball throwing machine that is able to eject balls to preset, programmed or manually-selected positions with programmable projection and travel characteristics. The present invention includes a computer implemented method for controlling the parameters of a ball flight and trajectory in three dimensions including one or more parameters to identify a flight and trajectory of a ball in three dimensions for one or more player positions and a processor to control one or more motors in response to the one or more parameters.