1. A computer implemented method comprising: receiving user input specifying desired characteristics for a motion controller; automatically generating a program that realizes the desired characteristics for the motion controller based on the user input; downloading the program to a hardware platform; wherein the hardware platform is operable to execute the program to implement the motion controller having the desired characteristics.