Equation of the nephroid curve is a sixth order algebraic curve, in this example. It is constructed by mirroring parallel rays to the edge of the circle.

Drag point C to control the light ray. Note that the mirror ray is a tangent of the nephroid curve. You can try to switch tracing on by right-clicking on the mirror ray.

You may drag point B to change the radius of the circle. (It will take a while for GeoGebra to recompute the nephroid curve with the new parameters.) There will be probably problems when the coordinates of B are not integers since numerical errors will occur. It is possible to use zooming in and out (Shift + mouse wheel).

GeoGebra's Envelope command is working in the background. At least version 4.9.251.0 is required to load this construction properly. Only the Java mode works at the moment.
For this input the Envelope command returns two more curves: two parallel lines which are tangents of the circle. There is still a discussion whether these lines are parts of the curve or not. At the moment GeoGebra (and the underlying computation library Singular/GröbCov) returns the extra curves as well, and then the internal CAS factorizes the output to eliminate the unnecessary components.
More information can be found at http://en.wikipedia.org/wiki/Nephroid#...a_caustic_of_a_circle.