Following Shirley, Black & Hollasch's Ray Tracing in One Weekend Course
...but in zig.
To fix the jagged image, we implement anti-aliasing, using a point-sampling technique.
Diffuse materials scatter (or even absorb) light in unexpected ways. Implement this random scattering by using a rejection algorithm that gives us a random reflection that still is on the surface of the hemisphere.