Rendered using Three.js. All logic and meshes (except for the houses) were done by me, completely from scratch.
Many external textures were used to form the surface images of objects.
See here for full external attributions.
Controls: With orbit camera, left-click to rotate the camera, right-click to drag (reposition) the camera, and use scroll wheel to zoom in/out.