Product outcome
Expose the same Scenario A capacity and conservation relationships in every engineering view, then let the reader drill into a tagged piece of equipment without losing facility context.
A traceable contract for the GB200 NVL72 compute, electrical, liquid-cooling, room-layout, network, fire-safety and BMS/DCIM views in datahallAI.html. The cockpit is a tier-gated simulated engineering surface; this PRD and its methodology manual remain public.
High-density AI infrastructure couples compute, 2N power, warm-water liquid cooling, residual air cooling, safety and network fabrics. A reviewer needs one coherent basis across every view; an operator needs alarm-first navigation without confusing design targets, locked calculations and jittered sensor demonstrations.
Expose the same Scenario A capacity and conservation relationships in every engineering view, then let the reader drill into a tagged piece of equipment without losing facility context.
Identify the affected subsystem, inspect its current simulated state, reproduce the governing calculation, and distinguish a resolved design value from a placeholder or unresolved modeling risk.
| Persona | Goal | Primary read | Success condition |
|---|---|---|---|
| Data-center operator | Triage power, cooling, safety or communications abnormality. | Alarm strip → subsystem tab → equipment HMI/inspector. | Can name severity, affected tag, dependencies and next check in under one minute. |
| Electrical engineer | Verify 2N capacity, transformer/busway loading and SLD state. | Electrical Overview/DH tabs, SLD mimic and results panel. | Can reproduce 5,359 A, 3,713 kVA and 79.2% failover loading. |
| Mechanical / liquid-cooling engineer | Check heat split, TCS flow, CDU duty and residual CRAH load. | Cooling P&ID, CDU/chiller/CT/CRAH HMIs and basis drawer. | Can reproduce 3,029 kW liquid, 4,342 L/min and nine running CDUs per hall. |
| Commissioning engineer | Review point names, alarm thresholds, focus behavior and equipment drilldowns. | All clickable SVG equipment, alarm strips and modal summaries. | Can derive a deterministic E2E test for every visible control family. |
| Design reviewer | Audit Scenario A against vendor/standard sources. | Basis of Design drawer, generated design, manual and risk register. | Can identify targets, calculations, jitter and unresolved discrepancies separately. |
| Educator / learner | Understand the architecture of a modern AI factory. | Overview, Rack, Cooling, Electrical, Network and glossary. | Can trace one NVL72 domain from utility to compute and heat rejection. |
Requirements cover every visible control and signal family. Generated SVG items are represented by their stable tag/data-attribute family.
| ID | Visible element / requirement | Acceptance |
|---|---|---|
| FR-01 | Preserve the Pro/Educator cockpit access gate while keeping PRD and Manual public. | Unauthorized cockpit view remains gated; both documentation routes load without invoking cockpit authorization code. |
| FR-02 | Provide Portfolio, DC Solutions, PRD and Manual links. | All four links are visible in the header row and keyboard reachable. |
| FR-03 | Provide Basis of Design, Generate Design, FAQ and Theme controls plus WIB clock. | Each button opens/toggles its stated surface; clock updates without changing engineering values. |
| FR-04 | Provide nine primary tabs: DC Dashboard, Data Hall, Room Layout, Rack Architecture, Cooling & Piping, Electrical SLD, Network, Fire & Safety, BMS. | Exactly one .pn is active and its tab has .on. |
| FR-05 | Allow desktop sidebar collapse/reopen and persist preference. | sideTog/sideReopen update state, labels and dhSideCollapsed. |
| FR-06 | Show Compute sidebar points. | Platform, domains, GPUs, CPUs, GPU basis, HBM, FP4/FP8/BF16 and NVLink/domain remain labeled. |
| FR-07 | Show Power sidebar points. | IT, Mech+Aux, Total, per-NVL72, UPS A/B and GenSet state display units and provenance. |
| FR-08 | Show Cooling sidebar points. | DLC/air heat, TCS supply/return/ΔT, CDUs, chillers and CRAHs remain visible. |
| FR-09 | Show Network, Safety and Alarm sidebar points. | NVLink, IB, OOB, Fire/VESDA, EPO, leak, detector counts, disabled, in-alarm and maintenance states render. |
| FR-10 | Show eight dashboard KPIs with basis drawers. | PUE, WUE, CUE, IT, GPUs, NVL72, Uptime and Alarms support click/Enter/Space where data-basis exists. |
| FR-11 | Show dashboard facility image, callouts and status cards. | Electrical, cooling, network, safety and access values remain readable and source class is clear. |
| FR-12 | Render building overview and selectable floors. | Floor selection opens the corresponding drawing; Overview returns via floorBack. |
| FR-13 | Render Data Hall view and four DH selectors. | DH-1…DH-4 selection updates active state and associated drawing/context. |
| FR-14 | Render rack architecture and specification/detail panels. | NVL72/rack components have stable tags and open the correct detail surface when clickable. |
| FR-15 | Render Cooling & Piping P&ID and detail cards. | TCS/FWS paths, CDU/chiller/CT/pump/CRAH/chemistry equipment remain tagged and interactive by family. |
| FR-16 | Provide Electrical sub-tabs Overview and DH-01…DH-04. | Exactly one .ep is active; tab/data panel pairing is deterministic. |
| FR-17 | Render facility and per-hall electrical SLDs. | MV substation, RMU, transformer, MSB, UPS, ESS, busway, rack PSU and cooling-feed families remain traceable. |
| FR-18 | Open SLD mimic from tagged electrical equipment. | Mimic title, drawing, energized badge and results panel reflect selected type/hall. |
| FR-19 | Provide SLD Zoom In, Zoom Out, Fit, Print, Close and Results toggle. | All six controls change only mimic presentation and preserve selected equipment. |
| FR-20 | Render Network Fabric Topology and detail panels. | Fabric health, capacity/congestion, packet loss and redundancy values have tag/source context. |
| FR-21 | Render Fire Detection & Suppression P&ID and detail panels. | Smoke, heat, VESDA, beam, MCP, EPO, FACP, solenoid, nozzle and cylinder families remain distinguishable. |
| FR-22 | Render BMS/DCIM Architecture, protocol tables and service-health strip. | Historian, notification, 16/16 gateways and alarm lifecycle counters remain visible. |
| FR-23 | Provide CDU HMI. | Selected CDU tag, online mode, pressure/flow/temperature/capacity points and close behavior render. |
| FR-24 | Provide Chiller and Cooling-Tower HMIs. | Selected tag, operating mode, process values, equipment diagram and alarm summary render. |
| FR-25 | Provide generic equipment HMI for pumps/TCS/chemistry and infrastructure detail. | Type-specific points and status are used; no unrelated card is shown. |
| FR-26 | Provide In-Rack CDU and CRAH HMIs. | Selected rack/CRAH tag, thermal/hydronic/air-side points and mode render. |
| FR-27 | Provide Corridor Service and Battery ESS HMIs. | FWS/leak/cable tray and ESS system/unit details open from their tagged SVG elements. |
| FR-28 | Provide Component Detail modal. | Rack/infrastructure selection opens a title, type and diagram tied to the selected component. |
| FR-29 | Provide a right-side inspector for line/breaker selection. | Live, Capacity, Dependencies, Alarms, Trend and Maintenance tabs retain point quality and selected tag. |
| FR-30 | Provide alarm-first strips on every engineering panel except the owner-excluded dashboard. | Overall state, critical, warning, maintenance, comms, stale and last-update values share one evaluation. |
| FR-31 | Provide modal alarm summaries and BMS alarm lifecycle counters. | First modal read exposes NORMAL/WARNING/CRITICAL plus counts; BMS health uses the same rules. |
| FR-32 | Expose data mode and point quality. | body[data-rz-data-mode="simulated"] and RZTelemetryQuality never imply a field feed. |
| FR-33 | Bind basis values to DATAHALL_MODEL/DATAHALL_CALC. | IT, heat split, TCS flow, CDU count, current, transformer/UPS loading and PUE are stable on reload. |
| FR-34 | Allow bounded sensor-class jitter only. | Temperature/weather/occupancy/selected local instruments may move around documented setpoints; basis KPIs never move. |
| FR-35 | Provide basis drawers for all eight dashboard KPI families. | Formula, inputs, output, scope, denominator, source, mode and last update display. |
| FR-36 | Provide a full Basis-of-Design calculation-audit drawer and PDF export. | Content reads the locked engine at open time and closes via button/Escape/scrim with focus return. |
| FR-37 | Provide Generate Design report and FAQ. | Report numbers come from the engine; FAQ identifies locked, simulated and non-procurement scope. |
| FR-38 | Provide modal focus management. | Open surfaces receive focus, trap Tab, close on Escape where specified and return focus to trigger. |
| FR-39 | Provide scroll-to-top and responsive layout behavior. | Control is named; page does not widen at 360 px; diagrams support fit/scroll/detail. |
| FR-40 | Keep safety and source actions simulated and non-authoritative. | No UI action invokes a network command or claims a real interlock. |
A row may represent a generated point family when the UI creates many tagged instances. That family plus its identifier range is the exhaustive point contract.
| Signal | Symbol / ID | Unit | Nominal / alarm semantics | Source binding |
|---|---|---|---|---|
| Hall/domain/rack inventory | DHE.halls, nvl72PerHall, racksPerHall | count | 4 / 27 / 54 per hall. | DATAHALL_MODEL.facility, lockedState(). |
| GPU / CPU inventory | gpuPerFacility, cpuPerHall | count | 7,776 GPU facility; 972 CPU/hall. | DATAHALL_MODEL.facility. |
| IT load | sPit, dkIt, kIT, dcIT | kW / MW | 3,564 kW/hall; 14.256 MW/facility, locked. | DATAHALL_CALC.lockedState(). |
| Per-domain / rack power | sPerNVL, DHE.kwPerRack | kW | 132/NVL72; 66/physical rack. | DATAHALL_MODEL.scenarios.A. |
| Mech+Aux / facility per hall | sMechAux, sTotal | kW | 1,074 / 4,638 derived. | pueBasis().basis, facility_kW. |
| PUE | dkPue, kP, dcPUE | ratio | ≈1.30 derived; 1.12–1.25 is target band only. | DATAHALL_CALC.pueBasis(). |
| WUE | dkWue, dcWUE | L/kWh IT | 0.00 for declared dry-only baseline. | DHE.wue / baseline decision. |
| CUE | dkCue, dcCUE | kgCO₂/kWh IT | 0.69 grid factor × derived PUE ≈0.90. | updateDashKPI() and cited PLN Java factor. |
| Uptime | dashboard Uptime KPI | % YTD | 99.99 placeholder; not event-log derived. | Static design placeholder. |
| Active alarms | dkAlm, alarm bars | count | 0 nominal; warning/critical from rules. | rules(); dashboard value is fixed zero. |
| Liquid / air heat | sDLC, sAir, liquidHeat, airHeat | kW | 3,029 / 535 per hall. | lockedState() at 85% capture. |
| TCS temperatures | sTS, sTR, sDT, dkTcs, dkTcr | °C / K | 35/45/10 nominal with bounded sensor jitter. | Model setpoints plus R(). |
| TCS flow | tcsFlowTotal, tcsFlowPerRack | L/min | 4,342 total; 80.4/rack. | lockedState() hydronic formula. |
| CDU capacity/state | sCDU, dkCdu, cduSt1…6, data-cdu | count / kW / bar / L/min | 9/12 per hall, 350 kW each; local instruments jitter. | Engine count + HMI simulator. |
| CRAH capacity/state | sCRAH, data-crah | count / kW / m³/h | 5 active; 107 kW and 18.4 m³/h per unit design point. | lockedState(). |
| Chiller | sCH, data-ch | count / COP / kW | 3/4 run presentation; COP 6.8 nameplate. | Model equipment + HMI simulator. |
| Electrical current | reqCurrentA | A | ≈5,359 at 400 V, PF 0.96. | requiredCurrentA(). |
| Transformer | txKVA, txLoadPct | kVA / % | 3,713 kVA; 74.3% of 5 MVA. | kva(), loadingPct(). |
| UPS | sUA, sUB, upsLoadPct | MW / % | 4.5 MW per feed; 40% normal share / 79% failover. | loadingPct() and 2N display rule. |
| Busway | buswayA | A | 6,300 A selected; legacy dashboard card still says 2×4,000 A. | DATAHALL_MODEL.equipment.busway vs static dashboard. |
| Generator | gensetModel, gensetKW, count fields | kW / count | Cat 3516E 2,750 kW; derived required/N+1 counts. | Model + facility load division. |
| Rack / NVL72 component points | data-rack, data-ircdu, tray/component tag families | kW / °C / state | Selected tag-specific design and simulated health. | Generated rack renderers + engine constants. |
| Building/floor environment | H*r*s*t/h, C*r*s*t/h | °C / %RH | Hot/cold zone jitter within declared ranges. | upd() sensor simulation. |
| Occupancy/access | pplCount, lastEntry, dkPpl, dkEntry | count / time | 0–7 people and browser-time entry presentation. | Sensor-class jitter / browser clock. |
| Fire/safety device state | sbFire, sbSmoke, sbHeat, sbVesda, sbRope, sbDisabled, sbInAlarm, sbMaint | state / count | Normal baseline; some counts jitter as simulated sensors. | upd() and static basis. |
| Network fabric | NVLink/IB/OOB and generated network tags | Gb/s / TB/s / % / state | 130 TB/s/domain, 800G IB, online baseline; detail values simulated. | Static vendor basis + network renderer. |
| Electrical line/breaker state | data-rz-line, data-rz-breaker, data-sld-click | state / V / A / kW / fault | Seven breaker states, line state, load-flow annotations. | SLD renderers, rz-breaker-symbols.js, inspector. |
| Battery ESS | data-bat, ESS HMI points | VDC / %SOC / kW / min / °C | 480 VDC system view; selected unit values simulated around design basis. | Battery renderer/HMI. |
| FWS instruments | fwsPI, fwsTI, fwsFM | bar / °C / m³/h | 1.8–2.4 bar, 11.5–12.5°C, 480–519 m³/h jitter. | upd(). |
| Alarm roll-up | .dh-alarmbar | state / count / age | Normal unless rule thresholds breach; maintenance 2, stale 0 nominal. | rules(), fmtState(), browser age. |
| BMS services | bmsGwOnline, bmsAlmActive/Ack/Cleared | count / state | 16/16 gateways; alarm lifecycle roll-up. | Static service presentation + shared alarm rules. |
| Point quality / mode | RZTelemetryQuality, body[data-rz-data-mode] | quality / mode | Simulated; GOOD/STALE/ESTIMATED/MISSING contract where instrumented. | js/rz-telemetry-quality.js. |
DATAHALL_CALC.lockedState() and Manual §02–03.hydronicFlowLPM(); water-property assumptions are explicit.requiredCurrentA(), kva(), loadingPct().| Interaction family | Required behavior | Accessibility / failure behavior |
|---|---|---|
| Primary / electrical tabs | Activate one matching panel; preserve locked model. | Keyboard operable, selected state exposed, no color-only indication. |
| Sidebar collapse | Widen diagram only on desktop; retain preference. | Labels update and reopen control stays reachable. |
| SVG equipment selection | Open the matching HMI/modal/inspector with selected tag and context. | Focusable host, accessible title, Escape close, focus return. |
| SLD mimic | Zoom/fit/print/results operate inside the overlay. | No page-level overflow; result text supplements color/animation. |
| KPI basis drawer | Show formula, inputs, output, scope, denominator, source, mode and timestamp. | Click/Enter/Space open; Escape/scrim/close button close. |
| BoD / report / FAQ | Use the same engine numbers and disclose simulated/non-procurement scope. | Popup failure reports a useful message; generated document escapes script-closing literals. |
| Alarm-first strips | Worst state and counts appear before diagram detail. | Text, count and semantic shape supplement color; motion never carries meaning alone. |
| Point quality | Inspector exposes source/quality/freshness when available. | Missing/stale points cannot remain visually GOOD. |
| Mobile 360 px | Header/tabs scroll or wrap internally; content stays within viewport. | PRD/Manual and close controls retain 44 px targets. |
| Reduced motion | Disable count-up, flow and pulse decoration. | Static state, labels and alarm text remain complete. |
| ID | Given / when / then | Evidence |
|---|---|---|
| AC-01 | Given a fresh load, then 27×132=3,564 kW/hall and four halls equal 14.256 MW. | Engine unit test plus DOM assertions. |
| AC-02 | Given Scenario A, then liquid/air heat equals 85%/15% of IT and sums back to IT. | lockedState() identity. |
| AC-03 | Given 3,029.4 kW, 10 K and water properties, then TCS flow is 4,342 L/min and 80.4 L/min/rack. | Calculation test and rendered basis. |
| AC-04 | Given 350 kW CDUs, then running count is nine and the hall label reads 9/12. | Unit/DOM assertion. |
| AC-05 | Given 400 V and PF 0.96, then required current is approximately 5,359 A and 6,300 A is the selected busway. | Engine test and electrical view. |
| AC-06 | Given a 5 MVA transformer, then load is 74.3%; given 4.5 MW UPS, failover load is 79.2%. | Engine identities. |
| AC-07 | Given bottom-up losses, then facility/hall is 4,638 kW and PUE is approximately 1.30, not forced into target band. | pueBasis() test and basis drawer. |
| AC-08 | Given repeated reloads, then all basis KPIs are identical. | Multi-reload comparison. |
| AC-09 | Given sensor-class points, then jitter remains inside documented ranges and never mutates basis values. | Fake-random boundary tests. |
| AC-10 | Given each of nine primary tabs and five electrical sub-tabs, then the matching panel alone becomes active. | Puppeteer loop. |
| AC-11 | Given each equipment tag family, then selection opens the correct titled HMI/modal/inspector. | Representative E2E per family. |
| AC-12 | Given the SLD mimic, then Zoom In/Out/Fit/Print/Results/Close work without page error. | Interaction journey. |
| AC-13 | Given a basis KPI, then click and keyboard activation show matching formula/source and Escape returns focus. | Keyboard E2E. |
| AC-14 | Given every non-dashboard engineering panel, then an alarm strip appears before its diagram and shares counts with modal/BMS summaries. | DOM and rules-state assertions. |
| AC-15 | Given a point marked stale/missing, then quality presentation does not remain GOOD. | Quality-service fixture. |
| AC-16 | Given BoD, Generate Design and FAQ, then each opens, uses current engine values and closes accessibly. | Browser assertions and PDF text extraction. |
| AC-17 | Given 360 px width, then document width does not exceed viewport and critical controls remain reachable. | Responsive render measurement. |
| AC-18 | Given dark and light themes, then all major surfaces and semantic states remain readable. | Computed-style screenshots. |
| AC-19 | Given cockpit links, then exactly two anchor lines are added and no existing cockpit line is deleted. | git diff --unified=0. |
| AC-20 | Given the full representative journey, then no uncaught console or page error occurs. | Captured browser error stream. |
| Source | Governs | Binding / use |
|---|---|---|
datahallAI.html | Visible controls, tabs, SVG renderers, HMIs, alarm/UI state and reports. | Primary implementation source. |
js/datahall-model.js | Locked Scenario A constants, equipment ratings and target bands. | DATAHALL_MODEL. |
js/datahall-calculations.js | Power, heat, flow, current, capacity and PUE pure functions. | DATAHALL_CALC. |
| AI Data Hall Manual | Formula definitions, worked examples, source mapping and operational interpretation. | Public methodology companion. |
BASELINE-DECISION.md | Scenario A lock: 4×27 NVL72, 132 kW/domain, 85%, 35/45°C. | Single basis authority. |
| Review docs 00, 17, 21, 26, 27 | Audit findings, correction table, worked calculations, accuracy and UI state requirements. | Requirements/risks. |
| NVIDIA GB200 NVL72 product specification | 72 GPUs, 36 Grace CPUs and 130 TB/s NVLink domain basis. | Compute inventory. |
| ASHRAE TC 9.9 | Thermal/environment context for data-processing equipment. | Temperature interpretation, not a site-approved alarm setpoint. |
| ISO/IEC 30134-2 and 30134-8 | PUE/WUE and CUE denominator definitions. | KPI formulas and scope labels. |
| IEC 60364, IEC 60909, IEEE C37.2, IEEE 1584 / NFPA 70E | Electrical design, fault/protection nomenclature and safety context. | SLD reference boundary; not all calculations implemented. |
| NFPA 75/76 and ISO 14520 / NFPA 2001 | IT-equipment fire protection and clean-agent context. | Fire view; compliance proof remains out of scope. |
| ISA-18.2 and ISA-5.1 | Alarm lifecycle and instrumentation naming. | Alarm-state/point taxonomy direction. |
| Risk / open question | Current evidence | Required resolution |
|---|---|---|
| Dashboard contains legacy static capacity labels. | Dashboard card shows Busway 2×4,000 A and generator 4×2.5 MW while locked model selects 6,300 A and Cat 3516E 2.75 MW. | Bind or explicitly label legacy/context values; never let two values claim the same basis. |
| Not every “live” point is engine-bound. | Temperature, RH, occupancy, detector/maintenance counts and HMI instruments use random jitter. | Maintain an explicit sensor-class registry with ranges, quality and timestamps. |
| Uptime is a placeholder. | 99.99% is not derived from event history. | Bind to a dated outage ledger or relabel as design intent. |
| Alarm count/lifecycle is partly synthetic. | Dashboard alarms are fixed zero; engineering-panel rules use quiet jitter; BMS “cleared” maps maintenance count. | Create one event source with active/ack/cleared/shelved timestamps and deterministic fixtures. |
| Target PUE and derived PUE differ. | Derived ≈1.30 exceeds 1.12–1.25 target band. | Keep both labels and model the efficiency interventions required; do not back-solve COP. |
| WUE 0.00 is topology-dependent. | Valid only for dry-only closed-loop baseline. | If adiabatic/evaporative operation appears anywhere, bind makeup flow and recompute WUE. |
| Grid factor is time-sensitive. | 0.69 kgCO₂/kWh is cited as PLN Java 2025. | Store publication/version and refresh cadence; distinguish location/market basis. |
| Equipment/vendor ratings remain mixed with teaching abstractions. | Some HMIs and generated reports show detailed nameplates not all backed by one schedule. | Maintain a source register per tag/model and mark illustrative values. |
| Fire-agent compliance is not calculated. | Protected volume exists, but concentration, agent density, hold time and leakage inputs are incomplete. | Do not present compliance until a sourced calculation and test method exist. |
| Monolithic page height increases regression risk. | datahallAI.html exceeds 13,000 lines with many timers/renderers. | Future modularization must preserve frozen output and be separately test-driven. |
| Gate fallback and public-doc boundary need ongoing verification. | Cockpit reads local session as a load-order fallback; docs must remain ungated. | Test each tier plus direct public doc navigation without changing auth code in this batch. |
| Mobile is an overview, not a full commissioning workstation. | Dense SVGs and HMIs are desktop-oriented. | Define minimum usable tasks on mobile and keep deep engineering interaction on supported larger viewports. |