An open source physics at Singapore simulation based on codes written by Fu-Kwun Hwang and Loo Kang WEE.
more resources can be found here
Electric generators turn motion into alternating-current electric power by exploiting electromagnetic induction. This AC generator consists of 2 pole magnets and a wire (usually a very long one that's wrapped to form several coils and known as an armature or coil). A hydraulic engine or some other outside source of motion (This applet has a handle bar for you to rotate) moves the wire or armature through the external magnetic field created by the magnets
When a wire passes through an external magnetic field, it causes electrons in that wire to move together in one direction. The current in the wire produce a magnetic field around the wire. The 2 different magnetic fields interact with each other results in a voltage (emf) to be "induced" in the coil. This motion of the electrons in the loop that is placed in a magnetic field is caused by a motional electromagnetic force (emf).
A simple alternating current (AC) generator is illustrated here. ABCD is mounted on an axle PQ. The ends of the wire of the loop are connected to 2 brushes contacting two slip rings continuously at position X & Y. Two carbon brushes are made to press lightly against the slip rings.
The key to producing motional emf is in change in the magnetic flux experienced by the coil loop.
In the case when an outside handle bar is rotating at (t) = 0.5*t, the coil is spinning at a constant rate of angular velocity = 0.5 rad/s within an external magnetic field. Because it is always moving through the magnetic field, a current is sustained but always varying. But, because the coil is spinning, it's moving across the magnetic field first in one direction and then in the other, which means that the flow of electrons keeps changing. Because the electrons flow first in one direction and in the other, the generator produces an alternating current.
This simulation has real 3D perspective view targeted for O level Physics education, there is also a built in function field for inputs of user's own position which many other app do not have.