Build a real-time 3D building viewer for the web: a single, beautifully rendered architectural model presented in a quiet studio environment, wrapped in an inspector interface that lets anyone examine the structure from any angle within seconds of the page loading. The subject is a three-storey Queen Anne / Victorian clapboard house — pale sage-green siding, a steep dark shingled roof, and a warm neutral infinite ground plane beneath it that catches a soft contact shadow. When the page opens, the camera should already be in a flattering hero three-quarter view that shows the front and one side at once, the model lit so the siding reads, the roof planes separate, and the shadowed elevations still hold detail. The two things that matter above everything else are absolute fidelity of the model and rendering, and controls so easy that no one needs to be told how to use them.
Fidelity means the building is genuinely built, not suggested. Construct it with real architectural parts and real proportions: a foundation course the walls sit on; three storeys of horizontal clapboard siding with visible lap lines and corner boards; a steep multi-gable roof laid in overlapping shingle courses with ridge lines, hips, valleys, eaves that overhang, fascia, and gutters; dormers breaking through the roof plane with their own miniature gables and windows; a tall corbelled brick chimney with a cap, standing proud of the roof slope; stacked porches or balconies on the front elevation at every floor, each with a deck, posts, turned balusters, a handrail, and a roof or floor above it; panelled entry doors with casings, thresholds, and transoms; multi-pane sash windows with mullions, sills, lintels, and trim, varied in size and grouping across elevations rather than stamped identically; window shutters, water table, and the belt courses and trim details that distinguish a Queen Anne from a generic box with a roof. Every elevation — front, right, rear, left — should be worth orbiting to, with the massing, wing setbacks, and window rhythm changing as the visitor moves around. There is no external scan, purchased asset, or third-party model service to lean on: the geometry is authored as part of this piece, and the model's richness is a direct measure of the work.
Rendering fidelity carries equal weight. The materials should read as materials — painted wood siding, weathered asphalt or slate shingles, fired brick, glass that reflects the sky differently from the painted surfaces, dark metal railings, stone or concrete foundation. Give the scene believable light: a warm key light casting a directional shadow with clean roof and balcony silhouettes on the ground and across the facade below, cooler ambient fill so the shadow side never goes flat black, contact darkening in the eaves, porch ceilings, window reveals, and where the walls meet the ground. Include a render stack the visitor can actually toggle and see the difference in — ambient occlusion, bloom, edge antialiasing, colour grading, normal or bump detail on siding, shingles, and brick, and a wireframe mode that exposes the true topology of what was built. Each toggle must do something visibly real; none may be a decorative checkbox.
The interface is a compact dark inspector chrome that frames the viewport without crowding it. Along the left edge, a slim panel holds a MODEL GEOMETRY section reporting live scene statistics — polygon count, vertex count, number of draw calls, and the current render resolution or pixel-ratio state — read directly from the running scene, never hardcoded, and updating honestly as modes change. Below it a RENDER & VIEW section leads with the plain hint "drag to orbit · scroll to zoom" and then the stack of render toggles as small labelled checkboxes with tight, tactile hover, focus, and checked states. Across the top of the viewport sits a row of camera presets — HERO, FRONT, RIGHT, REAR, TOP — as a segmented control with a clearly marked active segment, and beside it a small lighting group for switching between the day key light and a shadow or alternate lighting mood. Type is small, uppercase, letterspaced, and monospaced for numbers; panel dividers are faint; the whole chrome is unobtrusive dark grey against the warm studio backdrop so the building stays the subject. Panels should be collapsible so the viewport can go clean and full-bleed.
Controls must feel effortless and forgiving. Dragging orbits around the house with smooth damping and a little inertial settle; scrolling or pinching zooms toward the model with sensible near and far limits so the camera can never invert, tunnel through a wall, or fly off into nothing; right-drag or two-finger drag pans; the vertical orbit is clamped so the visitor cannot end up underneath the ground plane. Preset views animate to their destination on an eased path instead of snapping, and interrupting a transition by grabbing the model feels natural rather than glitchy. Everything works with a trackpad, a mouse, and touch, with cursor feedback that shows when the scene is grabbable and when it is being dragged. Keyboard access should exist for the presets and toggles, focus states should be visible, and the whole viewer should resize gracefully from a wide desktop to a phone, reflowing or condensing the chrome rather than clipping it. Add the small courtesies that make an inspector pleasant: a gentle idle auto-orbit that yields the moment the visitor takes over, a reset that returns to the hero framing, a loading state that doesn't flash empty, and unobtrusive labels or tooltips that explain a toggle without a manual.
Do not take shortcuts, and do not settle for a cookie-cutter model-viewer demo — a low-poly block with a pitched roof, a stats panel filled with invented numbers, or toggles that flip a variable nothing reads would all be failures of this brief. This skill imposes no token budget limit, so pursue the full depth of both the architecture and the interface: build the house down to its trim, shingle courses, balusters, and window muntins; carry the viewer through its secondary states — every preset, every render mode and combination of modes, wireframe, collapsed panels, idle drift, mid-transition interruption, extreme zoom in and out, touch input, and small viewports; and keep refining the lighting, materials, motion, and control feel until the result looks and behaves like a polished piece of professional 3D tooling that happens to be inspectable in a browser tab.