I implemented the first change in my ray tracer for my next mini-book. I had forgotten how easy motion blur is to add to a ray tracer. For linear motion anyway. The ray gets a time it exists at, the camera generates a ray at a random time, and the object intersection takes a time in.
For a sphere whose center moves linearly, the change is just to make the center a function of time:
To test it I had the diffuse spheres have a random vertical motion. This was a rare time my code worked on first run (after many typos on the way to compilation).