Design and create a very creative, elaborate, and detailed voxel art scene of the Toronto skyline as seen from Lake Ontario, presented as an open diorama on a floating slab of ground (no container, no bottle). Include the iconic landmarks: the CN Tower with its observation pod and antenna, the domed Rogers Centre stadium beside it, the dense cluster of glass condo towers along the waterfront, the ferry docks and boardwalk at the shoreline, and Lake Ontario in the foreground with animated voxel waves lapping against the harbour wall.
Add a dynamic weather and seasons system controlled by simple UI buttons above the scene, in a clean card-style overlay like a title, a one-line description, and a row of toggle buttons:
- Weather: sunny, cloudy, raining (voxel raindrops with splashes on the water and rooftops), snowing (snow accumulating on rooftops and the stadium dome), thunderstorm (lightning flashes lighting up the towers), and fog rolling in off the lake.
- Seasons: spring (blossoming trees along the waterfront), summer (bright golden light, busy boats in the harbour), fall (orange and red foliage in the parks), winter (frozen lake edges, snow-covered rooftops, bare trees, warm glowing windows).
- A "turn to dusk" / day-night toggle that transitions the sky through sunrise, golden hour, dusk, and night, with the CN Tower's LED lighting glowing in changing colours after dark and building windows lighting up.
Make the scene impressive and varied: use colorful voxels, animated water, rain, snow, and drifting clouds, and interesting props like ferries, sailboats, seagulls, a streetcar passing along the waterfront, and the Toronto Islands in the distance. Weather and seasons should blend smoothly when switched rather than snapping. Everything should be procedurally generated from a fixed seed so the same scene loads every time.
Let the viewer drag to orbit, scroll or pinch to zoom, and include an auto-orbit toggle. Show a small stat line with voxel and triangle counts. Use greedy meshing or face culling so it renders efficiently.
Use WebGL and whatever libraries you need (e.g. Three.js via CDN), but make sure I can paste it all into a single HTML file and open it in Chrome.