Really nice article, especially the illustrations!
A couple of suggestions:
It’s recommended to use buffer geometries rather than geometries as they give better performance. Obviously that’s not an issue for such a simple scene, but you might as well get people started off on the right footing!
Recently a new material was added to three.js — the MeshStandardMaterial (also the similar MeshPhysicalMaterial) — these give better shading than the Lambert or Phong materials as the use physically correct lighting models, which are now the standard across 3D applications, at the cost of some performance. The Lambert material will give the best performance, as lighting is only evaluated at the vertices, but will generally give the worst look and is not suitable for shiny surfaces.