The Buildings Behind AI
AI runs in buildings that need electricity, cooling and connections to the grid. Compare their scale with the data centers already serving the internet, then follow the resources they use. The views distinguish operating facilities, construction and announced projects so you can see how much is running and how much is still planned.
The buildings behind the models
Electricity goes in. Computation happens. Nearly all of that electricity leaves as heat. Water use depends on cooling design and on the power plants behind the meter.
All U.S. data centers—well before ChatGPT.
All U.S. data centers; accelerated servers used more than 40 TWh of it.
DOE/LBNL scenario range—hatched signs are possibilities, not promises.
EACH BOLT SIGN = 25 TWH OF ELECTRICITY IN A YEAR · HATCHED SIGNS SPAN THE PROJECTED RANGE
Operating, under construction, and announced
Five west-to-east relief sections carry the sites at their longitudes, after the 1943 ISOTYPE altitude spread. This is an auditable sample, not a census: city signs mark markets that predate ChatGPT; repeated server signs appear only where an operator or government source discloses capacity.
The five strips place selected data-center sites across the United States, including the Virginia internet corridor and new Texas projects. They simplify the terrain to make the locations and symbols easy to compare. Select a site for its reported status and capacity.
More than half is in the United States
Capacity means critical IT load in megawatts—not floor area, facility count, or electricity consumed in a year.
Synergy reports the U.S. share directly and describes Europe and China as each roughly one-third of the remainder. It does not publish the worldwide megawatt total behind those shares.
Power becomes heat; cooling chooses the bill
Nearly all electricity leaves as low-grade heat—of which the IEA puts 70–80% within reach of heat pumps. The cooling design then decides whether that heat is shed with water or with more electricity. Every arrow is 25 TWh or 25 billion gallons; both water bundles rise from one baseline so the gap cannot hide.
A familiar amount, on a steep curve
The 17 billion gallons consumed on site in 2023 is small against how the country already moves water—and it is projected to roughly double to quadruple by the end of the decade. Each drop below is 5 billion gallons; hatched drops span the projected range.
17 BILLION GALLONS IS…
≈ 1% of the water Americans pour on their lawns each year—one filled drop in a hundred.
≈ a city of 155,000 homes, supplied for a full year at the U.S. average of 300 gallons a household each day. Each sign is 10,000 homes.
…and about 3% of the 531 billion gallons U.S. golf courses use annually.
DIRECT COOLING WATER, PER YEAR
EACH DROP = 5 BILLION GALLONS · SOLID DROPS REACH THE LOW PROJECTION, HATCHED DROPS THE HIGH ONE
A large build; a smaller operating staff
Company disclosures use different definitions and time windows. These two rows preserve those definitions instead of summing them.
Peak construction workforce projected for June 2026 vs. completed-site operational jobs.
People who contributed during two years of construction vs. current full-time onsite employees—not peak concurrent construction.
Each worker sign represents 500 people. Partial signs preserve the reported amount. Virginia’s JLARC separately found a typical 250,000-square-foot data center employs about 50 full-time workers, roughly half contractors.
Training compute rose faster than benchmark scores
One chip sign equals the entire compute used to train GPT-3—count them. Yellow bolts encode five MMLU points each, with partial bolts preserving the reported score. This juxtaposes scale and one benchmark; it does not claim compute alone caused the score.
The model comparison puts training compute beside MMLU scores. Evaluation settings vary, so treat it as a comparison of reported figures. Serving users, research runs and unsuccessful experiments also consume compute beyond the final training run shown here.
What each project has disclosed
Check the source and definition for each figure. Some projects report capacity, others a utility commitment or a chip count. Blank entries identify information the cited source does not disclose.
| Project | Status | Power | Compute | Jobs | Water |
|---|---|---|---|---|---|
| Colossus 1 · MemphisxAI | Post-2022 operating | 150 MW utility service disclosed by MLGW | Over 220,000 H100/H200/GB200 GPUs reported in May 2026 | xAI says hundreds of permanent jobs; exact count not disclosed | Facility consumption not disclosed; a shared recycled-water plant is proposed |
| Fairwater · WisconsinMicrosoft | Post-2022 operating | Site MW capacity not publicly disclosed | Microsoft says hundreds of thousands of NVIDIA GPUs | Nearly 550 full-time onsite; nearly 10,000 construction workers | Closed-loop liquid cooling; 90% of capacity has no evaporation loss |
| Stargate · AbileneOpenAI / Oracle / Crusoe | Post-2022 operating | 206 MW initial building; campus planned for 1.2 GW | GB200 racks delivered; rack count not disclosed | Site-specific permanent headcount not disclosed | Site water consumption not publicly disclosed |
| Hyperion · Richland ParishMeta | Building now | Described by Meta as multi-gigawatt; exact site capacity not disclosed | Planned as Meta’s largest AI training cluster | 5,000 peak construction; more than 500 operational jobs | Consumption not disclosed; Meta pledges watershed restoration equal to use |
| Stargate · Milam CountyOpenAI / SB Energy | Building now | 1.2 GW lease disclosed January 2026 | GPU count not disclosed | Thousands of construction jobs; permanent count not disclosed | Site water demand not publicly disclosed |
| Stargate · LordstownOpenAI / SoftBank | Building now | Only a combined 1.5 GW scale figure was disclosed for two SoftBank sites | GPU count not disclosed | Site-specific counts not disclosed | Site water demand not publicly disclosed |
| Stargate · Shackelford CountyOpenAI / Oracle | Planned | Part of a combined >5.5 GW group; no site allocation disclosed | GPU count not disclosed | Only a five-site combined jobs estimate was disclosed | Site water demand not publicly disclosed |
| Stargate · Doña Ana CountyOpenAI / Oracle | Planned | Part of a combined >5.5 GW group; no site allocation disclosed | GPU count not disclosed | Only a five-site combined jobs estimate was disclosed | Site water demand not publicly disclosed |
How the symbols preserve the quantities
Each repeated sign represents a fixed unit, with partial fills for the remainder. The records also carry a project’s status, date and source. Semiotic uses those same records for the marks, tooltips, keyboard navigation and accessible table.
import { GeoCustomChart } from "semiotic/geo" import { geoHitTarget, hatchFill, tokenLayer } from "semiotic/recipes" // Each site's capacity becomes an explicit tokenized measure, and each token // becomes a feet-anchored glyph scene node standing on the relief — canvas- // painted, with the partial final sign riding the node's fraction + ghostColor. // One geoHitTarget per site keeps the stack a single keyboard/hover mark. function dataCenterMapLayout(ctx) { const placed = sites.map((site) => { const section = sectionFor(site) // one of five parallels const [west, east] = outlineExtentAtLatitude(US_OUTLINE, section.latitude) const t = (site.lon - west) / (east - west) // position along the section const x = interpolate(P(west, lat)[0], P(east, lat)[0], t) const y = baseline - profileElevationAt(section.profile, t) * 34 return { site, x, y } }) return { nodes: [ ...placed.map(({ site, x, y }) => geoHitTarget({ x, y, r: 14, datum: site, id: site.id })), ...placed.flatMap(({ site, x, y }) => tokenLayer({ input: site.powerMW, encoding: { tokenType: "glyph", tokenSemantics: "unitized-measure", countStrategy: "unitized", unitValue: 100, unitMeaning: "one server sign = 100 MW", }, options: { tokenSize: 11, glyph: SERVER_SIGN, // a multi-part GlyphDef color: STATUS_META[site.status].color, // one cut, many inks ghostColor: PAPER_DEEP, datum: null, positionToken: (unit) => ({ x: x + unit.index * 12, y, // standing on the terrain }), }, }).nodes, ), ], overlays: <ReliefSectionsAndLabels water={hatchFill({ id: "sea", angle: 90 })} />, } } <GeoCustomChart areas={[US_OUTLINE]} points={sites.filter((site) => visibleStatuses.has(site.status))} projection="equirectangular" layout={dataCenterMapLayout} enableHover accessibleTable onObservation={inspectSite} />