Constructive solid geometry was implemented, which allows primitives to be combined using the following 3 boolean operations: union, intersection, and difference.
Image idea from Wikipedia.
A normal map of the earth has been applied to on top of an earth texture onto a sphere. The image was rendered twice with different lighting angles to more clearly show the normal mapping.
Earth texture and normal from here.
Ray-object intersection calculations were accelerated by subdividing the scene into uniformly sized grids and precomputing which objects occupied which cells in the grid.
This was tested by generating n3 spheres in a cubic grid, with n spheres on the length, width, and height.
As seen in the chart above, the slope of the line of best fit for No Acceleration is 0.337, while the slope of the line of best fit for the Grid Accelerated program is 0.029, an 11x speed up.