Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Factory Tycoon

Juego web isométrico (proyección 3D → 2D, estilo tycoon) que enseña cómo se diseña una AI Factory de 10 MW sobre plataforma NVIDIA Vera Rubin NVL72, etapa por etapa:

# Etapa Lo que se decide
1 Diseño mecánico Losa, peso, unidad escalable, pasillos, alcance de CDU
2 Diseño eléctrico SOFC N+1, BESS, distribución, gas, HHV/LHV, swing de cómputo
3 Diseño hidráulico 199 kg/s, 45/55 °C, 5 bar, velocidad en tubería, agua de reformado
4 Diseño de HVAC Dry coolers, modo adiabático, PUE, WUE, día de diseño
5 Diseño de la máquina Armar un NVL72 Oberon bandeja por bandeja
6 Stack de software Las 13 capas del HaaS y las políticas que fijan el perfil eléctrico

La tesis del juego está en la etapa 6: la protección del sistema de generación frente a los transitorios de cómputo es una política del plano de control, no una obra eléctrica. Las decisiones de scheduler (límite de potencia por GPU, escalonamiento, tamaño máximo de job, ramp-down) se propagan hacia atrás y cambian las verificaciones de la etapa eléctrica.

Procedencia de los datos

Regla heredada del plan de verificación del diseño conceptual: ningún número se presenta como conclusión sin declarar su origen. Cada dato de la pestaña «Datos» lleva su marca:

Marca Significado
Confirmado en el documento de diseño conceptual
📐 Derivado por aritmética a partir de datos confirmados
⚠️ Supuesto de ingeniería propio, sin respaldo documental
Dato faltante, requiere consulta
🏭 Hoja de especificación del fabricante

Donde el documento y el fabricante discrepan —los 130 kW/rack del diseño contra los 190–230 kW (Max Q / Max P) de la hoja del NVL72— el juego muestra las dos cifras y la registra como pregunta abierta, en lugar de elegir una en silencio.

Stack

  • Node 20+ / TypeScript en modo estricto, ESM
  • Express 4 para la API
  • PostgreSQL 16 — todo el contenido pedagógico y el estado de juego viven en la base
  • Canvas 2D sin dependencias para el renderizado isométrico (sin sprites: cajas extruidas)

Arranque

cp .env.example .env
npm install
npm run db:up        # Postgres 16 en 127.0.0.1:5433 (el 5432 puede estar ocupado)
npm run db:migrate
npm run db:seed
npm run dev          # http://localhost:4000

npm run db:seed es idempotente: actualiza el contenido sin borrar partidas en curso. Para empezar de cero: npm run db:reset.

Otros comandos:

npm test         # motor de simulación y diseño de referencia (node:test)
npm run typecheck
npm run build && npm start
npm run db:psql  # psql dentro del contenedor

Estructura

src/
  content/           contenido pedagógico como datos tipados
    stages/*.ts      una etapa por archivo: lecciones, datos, catálogo, examen
    reference.ts     diseño de referencia que aprueba las seis etapas
  domain/
    constants.ts     números del diseño conceptual
    geometry.ts      rectángulos, rotación, colisión, distancia
    engine.ts        métricas, verificaciones y economía por etapa
  db/                esquema, migración y siembra
  routes/            API de contenido y de juego
public/
  js/iso.js          proyección isométrica y primitivas de dibujo
  js/scene.js        cámara, selección por polígono y render
  js/app.js          estado del cliente y paneles
test/                pruebas del motor

Cómo funciona el tablero isométrico

La proyección es la clásica 2:1 del género:

screenX = (tx − ty) · (TILE_W / 2)
screenY = (tx + ty) · (TILE_H / 2) − tz · Z_H

El orden de pintado es el algoritmo del pintor: se ordena por (tx + ty) y luego por altura. La selección no usa la transformación inversa sino prueba de punto-en-polígono contra las caras visibles, que es lo que hace que el cursor acierte también en los bordes y en los tableros apilados (etapas 5 y 6).

Hay tres tipos de tablero:

  • site — predio de 22×22 compartido por las cuatro disciplinas de sitio. Lo colocado en una etapa sigue ocupando terreno en las otras y se dibuja atenuado.
  • rack — elevación del NVL72: dos posiciones por nivel, 22 niveles.
  • stack — pila de software: una capa por nivel, el orden es la dependencia.

API

Método Ruta Para qué
GET /api/health Estado del servicio y de la base
GET /api/stages Lista de etapas
GET /api/stages/:slug Lecciones, datos, catálogo, examen y políticas
POST /api/sessions Nueva partida
GET /api/sessions/:id Estado completo: colocaciones, evaluaciones, economía
POST /api/sessions/:id/placements Colocar equipo (valida límites, colisión y máximos)
DELETE /api/sessions/:id/placements/:pid Retirar
POST /api/sessions/:id/reference Cargar el diseño de referencia (todo o una etapa)
PUT /api/sessions/:id/decisions Fijar una política del plano de control
GET /api/sessions/:id/stages/:slug/evaluate Verificaciones y métricas de la etapa
POST /api/sessions/:id/stages/:slug/complete Entregar examen y cerrar etapa

Las respuestas correctas del examen nunca viajan al cliente: se califican en el servidor.

Controles

Acción Cómo
Colocar Seleccionar del catálogo y hacer clic en el tablero
Retirar Clic derecho, o botón Demoler / tecla X
Rotar Botón Rotar o tecla R
Mover la vista Arrastrar
Acercar Rueda del ratón
Encuadrar Botón Centrar
Ver la solución Botón Referencia (carga la etapa activa)

Fuentes

  • Documento de diseño conceptual de la instalación y su plan de verificación (10 MW).
  • Hoja de especificación pública del NVIDIA Vera Rubin NVL72 (resumen): 72 GPUs Rubin, 36 CPUs Vera, 288 GB HBM4 por GPU (20.7 TB por rack), 54 TB LPDDR5X, 3.6 EFLOPS NVFP4 de inferencia, NVLink 6 a 3.6 TB/s por GPU, ConnectX-9 a 1.6 Tb/s, 45 °C de agua de entrada, 190–230 kW por rack, Rubin Ultra (Kyber) en H2 2027.
  • Bibliografía técnica citada en el plan de verificación: Larminie & Dicks, O'Hayre et al., Kundur, ASHRAE TC 9.9, ISO/IEC 30134-2, GPSA Engineering Data Book, factores EPA.

About

Didactic way of showing how an ai factory is made

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages