TASK: a PHOTOREALISTIC real-time 3D scene of TIMES SQUARE at night after rain, New York City, in Three.js. It will be recorded as a short video and shown side by side with the same scene made by another AI model, so the goal is simple: the frame must look as close to a real photograph / cinematic drone shot as possible. Judge every decision by "would this pass for a photo at a glance?".
COORDINATES AND SCALE
- Metres, real-world proportions. +Y up. Origin and layout described below. Everything sits on the ground, nothing floats or intersects.
- Origin at the centre of the "bow tie" where Broadway crosses Seventh Avenue at W 45th St; +Z north (uptown, towards Duffy Square and the TKTS red steps), +X east.
THE SCENE
- STREETS: Broadway and Seventh Avenue crossing diagonally, wet dark asphalt with puddles and painted crosswalks/lane markings, sidewalks and the pedestrian plazas, curbs, manholes with rising steam, traffic lights, street signs ("Broadway", "7 Av", "W 45 St"), lamp posts, bollards, newsstand.
- BUILDINGS: dense tall buildings on all sides covered with HUGE LED BILLBOARDS and NEON - One Times Square at the south end with its stacked screens and the ball on top, curved and wrap-around screens on corners, horizontal news tickers, vertical signs; between screens: facades with windows, cornices, fire escapes. All billboard content is GENERATED IN CODE on canvases and ANIMATED (abstract ads, gradients, product-like shapes, fake brand names, scrolling tickers, clocks) - no real trademarks. The screens must actually emit light onto the street, the people and the wet ground.
- THE TKTS RED STEPS (glowing red glass stairs) in Duffy Square with people sitting on them.
- TRAFFIC: yellow NYC taxi cabs and a few other cars driving with headlights, tail lights and reflections; a bus.
- CROWD: many pedestrians (instanced, simple but well-proportioned, walking cycles), some with umbrellas.
- WET REFLECTIONS: the main effect - glossy wet asphalt with puddles reflecting the screens and neon (screen-space reflections or a planar reflector blended by a puddle mask with roughness variation), streaks of coloured light on the ground.
- ATMOSPHERE: light drizzle (rain streaks lit by the screens), steam from manholes, haze that glows with the neon colours; dark night sky with low clouds lit orange by the city.
LOOK AND RENDERING (this is what the comparison is about)
- Physically based: MeshStandardMaterial / MeshPhysicalMaterial everywhere, renderer.outputColorSpace = SRGB, ACES Filmic (or AgX) tone mapping with a tuned exposure, physically plausible light intensities.
- Image-based lighting: build an environment map IN CODE (Sky addon or a gradient/sun sky scene rendered through PMREMGenerator) and use it as scene.environment, consistent with the sun/key light.
- PROCEDURAL TEXTURES generated in code (canvas or DataTexture, with mipmaps, anisotropy, correct colour space): albedo variation, roughness maps and normal maps for stone, concrete, asphalt, brick, glass curtain walls, metal, bark, grass, water. No flat single-colour surfaces anywhere near the camera. Break tiling (world-space UVs, noise blending, decals of dirt/wear/stains).
- Geometry detail where the camera looks: bevelled edges, real silhouettes (lofted / lathed / extruded / displaced shapes, not boxes), instancing for repeated things (windows, leaves, people, lamps, cars), LOD or impostors for far buildings.
- Shadows: soft, high-resolution, tight shadow camera around the action (cascades or a camera-following shadow frustum), contact shadows / ambient occlusion so objects sit on the ground.
- Post-processing with EffectComposer: GTAO (or SAO), bloom only on bright emissives and the sun glints, depth of field on close shots, a subtle filmic grade (lift/gamma/gain or LUT-like curve), vignette, very light film grain, SMAA/FXAA, OutputPass. Atmospheric perspective: distance haze / height fog that matches the sky colour, so far buildings fade realistically.
- Life: subtle motion everywhere so it reads as video, not a still - animated billboards and tickers, moving taxis with light streaks, walking crowd, rain, steam, flickering neon.
- Performance: at least 30 fps at 1280x720 on a mid-range GPU. Use instancing, merged geometry and a quality setting window.__quality = 'high' | 'medium'.
CAMERA - an automatic cinematic sequence (no user input needed)
- The page opens straight into the sequence: (1) street-level slow push north up Broadway through the crowd towards the TKTS steps; (2) low angle on the wet ground with screen reflections in a puddle and a taxi passing; (3) crane up along One Times Square's screens to the ball; (4) wide high shot looking down over the whole square. Each shot 6-8 s with smooth eased camera moves (dolly, crane, slow orbit, push-in) and real lens choices (focal length via fov; longer lens for detail shots). The sequence loops seamlessly.
- All animation and camera motion are a pure function of time taken from performance.now() / the…