For object descriptions, constructors, properties, methods, etc., please refer to CalmGenerator as they are the same.
The difference between BasicGenerator and CalmGenerator lies in the output of the calculateOrbits() method. BasicGenerator's output does not stop the motion even at siteswaps 0 or 2. In other words, the simulator moves the arm even when it does not have the ball, or when it has the ball but does not throw it. Therefore, use BasicGenerator if you want the arm to always move along the orbit, and use CalmGenerator if you want the arm to stop when not throwing the ball.