Saltar al contenido
Universo-Arena GitHub (nueva pestaña)

Benchmark abierto · LLM + agente de código

Un prompt.
36 universos.

Distintos modelos y agentes de código recibieron el mismo reto: construir, en una sola pasada, el Sistema Solar en 3D con BabylonJS. Aquí está lo que entregaron, y cómo se midió.

entregas
36
criterios
10
sin errores de consola
34/36
nota media
87

Ver el rankingExplorar las 36 entregas

Cómo se mide

01 / 05El reto

Un prompt, una sola pasada

Cada combinación de modelo y agente recibe el mismo Prompt-Maestro_v2.txt: una simulación 3D del Sistema Solar con BabylonJS, en un único index.html que se abre con doble clic, sin servidor ni assets locales.

Sol con corona8 planetas + PlutónCometa HalleyCinturón 200+3000+ estrellasPanel de 4 secciones

02 / 05La rúbrica

100 puntos en 10 categorías

Un jurado por entrega lee el archivo completo y el reto, y puntúa verificando el código, no los comentarios.

Completitud de escena 20Fidelidad orbital 12Cometa Halley 8Estética / wow 15Panel UI 15Cámara y controles 8Post-procesado 6Rendimiento 6Robustez 5Calidad de código 5

03 / 05La ejecución

Juzgado por lo que hace al abrirse

Cada entrega se abre en Chrome sin pantalla (WebGL por SwiftShader): se captura lo que se ve y se cuentan los objetos en escena, los FPS y los errores de consola. 34/36 abren sin un solo error.

04 / 05Las dos trampas

El Sol en el foco y la cola lejos del Sol

Casi todas se ven bien. Lo que separó a las mejores: el Sol en el foco de la elipse, no en el centro, y la cola del cometa en el sentido cometa − Sol, recalculada en cada fotograma.

x = a·cosθ − a·ez = b·sinθ

29 de 36 entregas apuntan bien la cola.

05 / 05La calibración

Donde el código y la ejecución discrepan, manda la ejecución

Un juez normaliza las notas entre jurados. Una revisión estática declaró «pantalla negra» a una entrega que, al abrirla, tenía 279 objetos y 0 errores: su nota pasó de 38 a 89. Y en los empates de cabeza, las entradas del mismo sistema que ejecuta el benchmark van por debajo.

El podio

Los tres mejores universos

Nota sobre 100 con la rúbrica, contrastada con la ejecución real. GPT-5.5 · Codex, Claude Opus 4.8 · Ultracode + Claude Code y Claude Opus 5 · Ultracode + Claude Code empatan con 97; el orden sigue la regla contra el auto-favoritismo.

  1. Captura de la simulación de Claude Opus 4.8 con Ultracode + Claude Code2

    Segundo puesto

    Claude Opus 4.8

    Ultracode + Claude Code

    97/100 · tier S

    ▶ Demo de Claude Opus 4.8 (nueva pestaña)

  2. Captura de la simulación de GPT-5.5 con Codex1

    Primer puesto

    GPT-5.5

    Codex

    97/100 · tier S

    ▶ Demo de GPT-5.5 (nueva pestaña)

  3. Captura de la simulación de Claude Opus 5 con Ultracode + Claude Code3

    Tercer puesto

    Claude Opus 5

    Ultracode + Claude Code

    97/100 · tier S

    ▶ Demo de Claude Opus 5 (nueva pestaña)

La galería

Las 36 entregas

Cada tarjeta es una combinación de modelo y agente, con la captura real de lo que se ve al abrirla. La ficha trae el desglose por categoría, lo que hizo bien y lo que falló.

Captura de la simulación de GPT-5.5 con Codex1Tier S97/100

GPT-5.5

Codex

302 objetos1496 líneas✓ 0 errores

Implementacion sobresaliente y muy completa: cola del cometa y orbitas elipticas resueltas correctamente, UI integra y codigo limpio y robusto; pierde puntos solo por no evidenciar el uso de context7/ParticleHelper y por texturas planetarias simples.

▶ Abrir demo de GPT-5.5 con Codex (nueva pestaña)

Captura de la simulación de Claude Opus 4.8 con Ultracode + Claude Code2Tier S97/100

Claude Opus 4.8

Ultracode + Claude Code

302 objetos1496 líneas✓ 0 errores

Implementacion sobresaliente y muy fiel al spec: cola de cometa correctamente opuesta al sol recalculada por frame y orbitas elipticas reales con el sol en el foco, panel UI completo, post-procesado real y codigo modular bien comentado en espanol.

▶ Abrir demo de Claude Opus 4.8 con Ultracode + Claude Code (nueva pestaña)

Captura de la simulación de Claude Opus 5 con Ultracode + Claude Code3Tier S97/100

Claude Opus 5

Ultracode + Claude Code

305 objetos2432 líneas✓ 0 errores

La entrega mas rigurosa del benchmark: unica con la ecuacion de Kepler resuelta por Newton-Raphson, cinturon de 250 asteroides con orbita propia, preset oficial ParticleHelper cargando de verdad y cero reservas de memoria en el bucle de render, todo verificado en ejecucion con 0 errores, 0 excepciones y cola anti-solar de producto escalar 1.000. Pierde justo donde mas se ve: por respetar al pie de la letra el rango 0.3-1.5 del spec el cielo queda mas tenue que el de sus rivales. Empata en cabeza con 97: gana al lider en fisica, cumplimiento del spec de camara, preset oficial y robustez, y le cede el impacto visual inmediato y 2 fps.

▶ Abrir demo de Claude Opus 5 con Ultracode + Claude Code (nueva pestaña)

Captura de la simulación de GLM 5.2 con OpenCode4Tier S95/100

GLM 5.2

OpenCode

263 objetos1080 líneas✓ 0 errores

Sobresaliente y muy concisa (1080 líneas): Sol en el foco y cola del cometa opuesta al Sol con Vector3.Normalize estático (sin mutar), instancing real, post-procesado completo y código limpio. Verificada: 263 objetos, 0 errores. Nota ajustada de 99 a 95 por defectos menores.

▶ Abrir demo de GLM 5.2 con OpenCode (nueva pestaña)

Captura de la simulación de MiniMax M3 con OpenCode5Tier S95/100

MiniMax M3

OpenCode

264 objetos1165 líneas✓ 0 errores

Sólida y calibrada (1165 líneas): clava los tres puntos críticos —cola opuesta al Sol con Vector3.Normalize estático, elipses al foco e instancias reales— con panel completo y degradación elegante. Verificada: 264 objetos, 0 errores.

▶ Abrir demo de MiniMax M3 con OpenCode (nueva pestaña)

Captura de la simulación de Claude Opus 4.8 con Claude Code6Tier S95/100

Claude Opus 4.8

Claude Code

260 objetos995 líneas✓ 0 errores

Implementacion sobresaliente y casi completa: cola del cometa correctamente opuesta al sol y orbitas elipticas reales bien resueltas, con codigo limpio, modular y robusto; solo le falta Kepler dinamico real y un detalle menor en el color de las estrellas.

▶ Abrir demo de Claude Opus 4.8 con Claude Code (nueva pestaña)

Captura de la simulación de MiMo v2.5 Pro con MiMoCode7Tier S95/100

MiMo v2.5 Pro

MiMoCode

280 objetos1151 líneas✓ 0 errores

Implementación sobresaliente y muy fiel al spec: cola del cometa correctamente opuesta al Sol recalculada por frame, órbitas elípticas reales con el Sol en el foco, instancing real para asteroides, texturas procedurales para Tierra y Júpiter, panel UI completo y post-procesado robusto con degradación elegante. Verificada: 0 errores de consoma.

▶ Abrir demo de MiMo v2.5 Pro con MiMoCode (nueva pestaña)

Captura de la simulación de Claude Fable 5 con Ultracode + Claude Code8Tier S95/100

Claude Fable 5

Ultracode + Claude Code

310 objetos1355 líneas✓ 0 errores

Entrega de primer nivel: fidelidad orbital excepcional (Kepler 1ª+2ª+3ª ley por Newton-Raphson, unica en el campo), cola del cometa correctamente opuesta al Sol con normalizeToNew() que no muta, instancing real, robustez ejemplar (contexto WebGL perdido, degradacion elegante) y panel completo. No alcanza el 97 por las vistas de camara de seguimiento que no hacen zoom. Verificada: 310 mallas, 0 errores de consola.

▶ Abrir demo de Claude Fable 5 con Ultracode + Claude Code (nueva pestaña)

Captura de la simulación de Gemini 3.5 (High) con Antigravity9Tier S92/100

Gemini 3.5 (High)

Antigravity

42 objetos1533 líneas✓ 0 errores

Muy completa y pulida (1533 líneas): cola opuesta al Sol (normalizeToNew), elipses al foco y asteroides con thin instances, panel completo y post-pro real. Verificada: renderiza con 0 errores. Nota ajustada de 95 a 92 por Júpiter sin bandas y detalles del spec.

▶ Abrir demo de Gemini 3.5 (High) con Antigravity (nueva pestaña)

Captura de la simulación de MiniMax M3 con Claude Code10Tier S92/100

MiniMax M3

Claude Code

299 objetos1062 líneas✓ 0 errores

Implementación sobresaliente y muy fiel al spec: órbitas elípticas reales, cola del cometa correctamente opuesta al sol, post-procesado robusto y panel UI completo; pierde puntos sobre todo por usar clones en vez de instancias en el cinturón de asteroides y una estética algo contenida.

▶ Abrir demo de MiniMax M3 con Claude Code (nueva pestaña)

Captura de la simulación de Kimi K3 con Claude Code11Tier S92/100

Kimi K3

Claude Code

279 objetos1245 líneas✓ 0 errores

Entrega de tier S por mérito real (92): acierta las dos trampas que deciden el ranking. El Sol va en el foco (L591) aplicado a planetas, órbitas y cometa; la cola de Halley usa direccionAntiSolar = posicionCometa.normalizeToNew() (L1184) —con el Sol en el origen, cometa−Sol=cometa— sin negate/scale(-1) ni mutación in-place, recalculada cada frame. Cinturón con instancing real (base.createInstance, L899), escena completa (279 mallas, 0 errores) y panel íntegro. Queda 3-4 pts por debajo del techo por el posible desajuste de sentido de giro (3.er discriminador), asteroides circulares y avance angular uniforme.

▶ Abrir demo de Kimi K3 con Claude Code (nueva pestaña)

Captura de la simulación de DeepSeek V4 Flash con OpenCode12Tier S92/100

DeepSeek V4 Flash

OpenCode

281 objetos1131 líneas✓ 0 errores

Tier S (92). Acierta las dos trampas decisivas —Sol en el foco con fórmula idéntica para órbita-línea y cuerpo (x = a·cosθ − a·e, z = −b·sinθ), y cola del cometa por (cometa − Sol) con normalizeToNew() sin mutación, recalculada cada frame— e incluso el tercer discriminador levógiro (Venus retrógrado por quaternion). Usa la corona oficial ParticleHelper.CreateAsync('sun') real con fallback, 3600 estrellas verificadas e instancing (240). Nota re-verificada de 96 a 92: iguala a los líderes en corrección pero arrastra un bug visible que los siete 95 limpios no tienen —las etiquetas de planetas desprendidas y apiladas sobre el Sol—, así que queda por debajo de los 95, no por encima.

▶ Abrir demo de DeepSeek V4 Flash con OpenCode (nueva pestaña)

Captura de la simulación de GLM 5.3 con OpenCode13Tier S91/100

GLM 5.3

OpenCode

324 objetos1041 líneas✓ 0 errores

Tier S por mérito (91). Acierta las dos trampas con rigor —Sol en el foco con misma función para órbita y cuerpo (posicionElipse L325-328 usada en L983 y L643-646), y cola anti-solar vía temporal _vCola normalizado sin mutar el núcleo (L1004-1009)— e incluso el tercer discriminador levógiro, con instancing real (createInstance L673) y solver de Kepler que da velocidad variable auténtica (L307-314). Queda por debajo del pelotón de 95 (y de su hermana GLM 5.2 · OpenCode, 95) porque el acabado estético (nebulosas planas, planetas sin textura) y el rendimiento no la superan.

▶ Abrir demo de GLM 5.3 con OpenCode (nueva pestaña)

Captura de la simulación de MiMo v2.5 Pro con Claude Code14Tier S90/100

MiMo v2.5 Pro

Claude Code

260 objetos1005 líneas✓ 0 errores

Entrega S en el limite inferior: correcta en los dos detalles dificiles (cola opuesta al Sol con .clone(), orbitas elipticas con el Sol en el foco), muy completa (9 planetas, 220 asteroides con instancing, 3200 estrellas) y con codigo limpio. Le falta pulido estetico y arrastra un bug menor de zoom en las vistas de seguimiento. Verificada: 260 mallas, 0 errores de consola.

▶ Abrir demo de MiMo v2.5 Pro con Claude Code (nueva pestaña)

Captura de la simulación de GLM 5.3 (Max) con Zcode15Tier S90/100

GLM 5.3 (Max)

Zcode

290 objetos1381 líneas✓ 0 errores

Tier S (90). Trampa 1 resuelta con el Sol en el foco vía posicionElipse (L730-733) usada idénticamente en órbitas (L975) y en el bucle de movimiento (L1307); trampa 2 correcta con normalizeToNew (L1340) sin mutar, asignada a direction1 cada frame. Instancing genuino (createInstance L1005). Supera por un punto a su hermana Zcode GLM 5.2 Max (89) por la solución de Kepler con aceleración en perihelio, 10 lunas reales y cámara sin rebotes; se queda por debajo del clúster de 92 por el panel de solo 3 secciones y el rendimiento débil.

▶ Abrir demo de GLM 5.3 (Max) con Zcode (nueva pestaña)

Captura de la simulación de Gemini 3.7 Flash (High) con Antigravity16Tier S90/100

Gemini 3.7 Flash (High)

Antigravity

322 objetos1752 líneas✓ 0 errores

Tier S (90). Ambas trampas resueltas: Sol en el foco con x=a·cosθ−a·e, b=a·√(1−e²) (L831-840) compartido entre trazo y movimiento, y cola cometa−Sol anti-solar recalculada por frame sin mutación destructiva (L1480-1493). Instancing auténtico (createInstance L1309). Supera a la 3.6 High (89) por corrección física verificable, rotación retrógrada de Venus/Urano y post-proceso doble, pero no alcanza el clúster de 92 (como la 3.5 High) por el rendimiento real (8 fps, escena sobrecargada) y la velocidad orbital sin 2.ª ley de Kepler.

▶ Abrir demo de Gemini 3.7 Flash (High) con Antigravity (nueva pestaña)

Captura de la simulación de Gemini 3.5 Flash con Antigravity CLI17Tier A89/100

Gemini 3.5 Flash

Antigravity CLI

291 objetos1637 líneas✓ 0 errores

Implementacion muy completa y visualmente solida que cumple los dos puntos criticos (cola del cometa opuesta al sol recalculada por frame y orbitas elipticas reales), con buen post-procesado e instanciacion; pierde puntos por Kepler solo aproximado (sol en el centro, no en foco), robustez escasa y nula evidencia de consulta documental.

▶ Abrir demo de Gemini 3.5 Flash con Antigravity CLI (nueva pestaña)

Captura de la simulación de GLM 5.2 con Claude Code18Tier A89/100

GLM 5.2

Claude Code

279 objetos1306 líneas✓ 0 errores

Sólida, completa y verificada en runtime real (279 meshes, 0 errores, UI completa, bloom activo). Único defecto real: normalize() in-place colapsa la posición del cometa al origen cada frame. La evaluación previa de 'pantalla negra' fue refutada por la ejecución.

▶ Abrir demo de GLM 5.2 con Claude Code (nueva pestaña)

Captura de la simulación de GLM 5.2 (Max) con Zcode19Tier A89/100

GLM 5.2 (Max)

Zcode

262 objetos1275 líneas✓ 0 errores

Completa y bien estructurada (1275 líneas): cola opuesta al Sol (cometa−Sol con .clone()) y elipses al foco, con instancing real y post-pro. Verificada: 262 objetos, 0 errores. Nota ajustada de 92 a 89 porque la inclinación del plano orbital queda anulada (y=0).

▶ Abrir demo de GLM 5.2 (Max) con Zcode (nueva pestaña)

Captura de la simulación de MiMo v2.5 Pro con OpenCode20Tier A89/100

MiMo v2.5 Pro

OpenCode

263 objetos1239 líneas✓ 0 errores

Entrega A en el techo del tier: correcta en los dos detalles dificiles (cola opuesta al Sol con Vector3.Normalize estatico, Sol en el foco elíptico consistente en toda la escena), panel completo y ingenieria solida. La separa de S la falta de pulido estetico y un aro de Saturno con bloom excesivo que domina la captura. Verificada: 263 mallas, 0 errores de consola.

▶ Abrir demo de MiMo v2.5 Pro con OpenCode (nueva pestaña)

Captura de la simulación de Gemini 3.6 Flash (High) con Antigravity21Tier A89/100

Gemini 3.6 Flash (High)

Antigravity

259 objetos1249 líneas✓ 0 errores

Tier A sólido (89). Acierta las DOS trampas decisivas —Sol en el foco (b=a·√(1−e²), x=a·cosθ−a·e) en órbita y animación, y cola del cometa opuesta al Sol sin mutación (cometa−Sol por frame)— con escena completa (259 mallas, 0 errores), post-procesado y panel de 4 secciones íntegros. Queda por debajo de su hermana 3.5-High (92) principalmente porque NO usa instancing: los 220 asteroides son mallas por-asteroide, lo que rebaja rendimiento, sumado a una velocidad orbital tuneada a mano en vez de Kepler estricto.

▶ Abrir demo de Gemini 3.6 Flash (High) con Antigravity (nueva pestaña)

Captura de la simulación de GLM 5.3 con Claude Code22Tier A89/100

GLM 5.3

Claude Code

304 objetos1567 líneas✓ 0 errores

Tier A (89). Las dos trampas están resueltas con rigor de manual: foco en posicionElipse (L490-493) compartida por línea y movimiento, y cola en L1385 con posNucleo.subtract(posSol).normalizeToNew() por frame (opuesta al Sol garantizada); instancing genuino (createInstance L1094). Empata a su hermana GLM 5.2 · Claude Code (89): iguala su nivel con ambas trampas limpias y una robustez y post-procesado superiores, pero el crédito extra se compensa con el fps 6 del harness y la inversión sutil revolución/rotación del tercer discriminador (z=+b·sinθ con rotation.y+).

▶ Abrir demo de GLM 5.3 con Claude Code (nueva pestaña)

Captura de la simulación de DeepSeek V4 Pro con CodeWhale23Tier A88/100

DeepSeek V4 Pro

CodeWhale

288 objetos1251 líneas✓ 0 errores

Implementacion solida y muy completa que acierta en los dos puntos criticos (cola del cometa opuesta al sol recalculada por frame y orbitas elipticas reales con foco en el sol), con codigo limpio y UI completa; su mayor lastre es el rendimiento por no instanciar los 250 asteroides.

▶ Abrir demo de DeepSeek V4 Pro con CodeWhale (nueva pestaña)

Captura de la simulación de DeepSeek V4 Pro con Pi24Tier A88/100

DeepSeek V4 Pro

Pi

301 objetos1575 líneas✓ 0 errores

Sólida y correcta (1575 líneas): acierta las dos trampas (foco elíptico y cola anti-solar) donde la otra entrada DeepSeek falló; pierde puntos por el zoom de cámara anulado en varias vistas, Kepler aproximado y logs de debug. Verificada: 301 objetos, 0 errores.

▶ Abrir demo de DeepSeek V4 Pro con Pi (nueva pestaña)

Captura de la simulación de Kimi K3 con OpenCode25Tier A87/100

Kimi K3

OpenCode

302 objetos1544 líneas✓ 0 errores

Entrega tier A sólida (87): ambas trampas nucleares pasan limpiamente —Sol en el foco (x=a·cosθ−c, z=−b·sinθ, L845-851/1511-1517) y cola del cometa anti-solar vía mundo.subtractToRef(sun.mesh.position, tmpDir) escalado positivo y recalculado cada frame (L1461-1467), sin negate/scale(-1)—, con instancing real (base.createInstance, L1024), post-procesado bloom+glow+ACES (L1164-1190), panel de 4 secciones cableado y deltaTime acotado. Se descuenta por el sentido de giro OPUESTO entre revolución y rotación (z=−b·sin con rotation.y−=, L1427/1516, el 3.er discriminador) y por el normalizeToNew(tmpDir) mal usado (L1463) que deja la cola sin normalizar aunque no la invierte.

▶ Abrir demo de Kimi K3 con OpenCode (nueva pestaña)

Captura de la simulación de Claude Sonnet 4.6 con Antigravity IDE26Tier A86/100

Claude Sonnet 4.6

Antigravity IDE

263 objetos1592 líneas✓ 0 errores

Implementacion muy completa, pulida y bien estructurada con UI y post-procesado sobresalientes, penalizada sobre todo por un bug clave: la cola del cometa Halley apunta hacia el sol en lugar de en sentido opuesto.

▶ Abrir demo de Claude Sonnet 4.6 con Antigravity IDE (nueva pestaña)

Captura de la simulación de Gemini 3.7 Flash con Antigravity CLI27Tier A86/100

Gemini 3.7 Flash

Antigravity CLI

361 objetos2370 líneas✓ 0 errores

Tier A (86). Trampa 1 correcta: Sol en el foco con x=a·cosθ−a·e y b=a·√(1−e²) en calculateKeplerianPosition (L1493-1499), función única compartida por planetas, órbitas, asteroides y Halley. Trampa 2 correcta: antiSolar = hPos.subtract(Vector3.Zero()).normalize() (L2281) apunta cometa−Sol cada frame sin mutar hPos. Instancing genuino (createInstance L1719). Supera por poco a la 3.6 CLI (85) por la corrección demostrable de ambas trampas, pero se queda por debajo de la 3.5 CLI (89) porque arrastra el mismo defecto de parches blancos en etiquetas (L1554-1557, visibles en la captura) y solo alcanza 9 fps.

▶ Abrir demo de Gemini 3.7 Flash con Antigravity CLI (nueva pestaña)

Captura de la simulación de Gemini 3.6 Flash con Antigravity CLI28Tier A85/100

Gemini 3.6 Flash

Antigravity CLI

320 objetos1510 líneas✓ 0 errores

Tier A (85). Resuelve correctamente las DOS trampas —Sol en el foco (c=a·e, x=a·cosθ−c, b=a·√(1−e²)) y cola opuesta al Sol con vector nuevo cometa−Sol recalculado cada frame— y usa instancing real vía createInstance (280 instancias), deltaTime y Kepler inverso a la distancia, con panel de 4 secciones completo y post-procesado con degradación elegante (320 mallas, 0 errores). No alcanza a su hermana 3.5-Flash (89) por el detractor estético real y visible —parches blancos tras las etiquetas— que penaliza la estética, más pequeñas ineficiencias de asignaciones por frame.

▶ Abrir demo de Gemini 3.6 Flash con Antigravity CLI (nueva pestaña)

Captura de la simulación de Kimi K2.7 con Claude Code29Tier B80/100

Kimi K2.7

Claude Code

277 objetos696 líneas⚠ 1 error

Implementacion solida, completa y bien estructurada con UI y post-procesado ejemplares, pero con un fallo clave: la cola del cometa apunta hacia el sol en vez de en sentido opuesto, ademas de asteroides sin instanciar y estrellas con emision dudosa.

▶ Abrir demo de Kimi K2.7 con Claude Code (nueva pestaña)

Captura de la simulación de Kimi K2.7 con Kimi Code CLI30Tier B79/100

Kimi K2.7

Kimi Code CLI

277 objetos541 líneas⚠ 1 error

Implementación muy completa y visualmente sólida con UI fiel y post-procesado correcto, pero con el bug clave de que la cola del cometa apunta hacia el sol en vez de en sentido opuesto, sin instancing para asteroides y sin evidencia de consulta a context7.

▶ Abrir demo de Kimi K2.7 con Kimi Code CLI (nueva pestaña)

Captura de la simulación de MiniMax M3 con mini-agent31Tier B79/100

MiniMax M3

mini-agent

260 objetos1100 líneas✓ 0 errores

Implementacion solida y completa con orbitas elipticas reales y UI excelente, pero falla el requisito clave del cometa (la cola apunta hacia el sol en vez de en sentido opuesto) y no usa instancias para los asteroides.

▶ Abrir demo de MiniMax M3 con mini-agent (nueva pestaña)

Captura de la simulación de GPT-5.6 Terra con Codex32Tier B79/100

GPT-5.6 Terra

Codex

282 objetos120 líneas✓ 0 errores

Entrega de tier B (79). La trampa de la cola del cometa está perfectamente resuelta —órbita polar con foco r = a·(1−e²)/(1+e·cosθ) y away = halley.position.clone().normalize() (clona antes de normalizar) para orientar la cola opuesta al Sol—, pero la trampa del foco se falla de lleno para los planetas: pivot en el origen (pivot.rotation.y = phase) con la malla a radio fijo = círculos concéntricos con el Sol en el CENTRO, y la línea de órbita es una elipse centrada, no con foco. Instancing correcto vía base.createInstance. Escena espectacular y panel completo, pero incumplir el requisito nuclear del foco impide acercarse al 97 de su hermano codex-gpt-5.5; queda en 79.

▶ Abrir demo de GPT-5.6 Terra con Codex (nueva pestaña)

Captura de la simulación de DeepSeek V4 Pro con Pi Coding Agent33Tier B78/100

DeepSeek V4 Pro

Pi Coding Agent

289 objetos1276 líneas✓ 0 errores

Implementación sólida y completa con buen post-procesado y UI, pero falla en los dos puntos clave del spec: la cola del cometa apunta hacia el sol (signo invertido) y las órbitas son círculos salvo Plutón.

▶ Abrir demo de DeepSeek V4 Pro con Pi Coding Agent (nueva pestaña)

Captura de la simulación de Claude Opus 4.6 con Antigravity34Tier B78/100

Claude Opus 4.6

Antigravity

295 objetos1824 líneas✓ 0 errores

Entrega vistosa y muy completa en UI, estética y post-procesado, pero falla los dos discriminadores nucleares: los 8 planetas orbitan elipses CENTRADAS en el Sol (líneas 1107-1108, sin −c), física falsa —solo el Halley aplica el foco (línea 1342)—, y la cola del cometa usa halleyMesh.position.normalize() (línea 1351) que muta el núcleo in-place, el signo apunta lejos del Sol pero corrompe la posición cada frame. Además el cinturón usa 250 esferas individuales sin createInstance/thinInstance (fps 7). Total 78 (tier B): cae por debajo del clúster de 92 y de los líderes de 95, penalizada por ambas trampas y la ausencia de instancing, pese a su panel y post-procesado sobresalientes.

▶ Abrir demo de Claude Opus 4.6 con Antigravity (nueva pestaña)

Captura de la simulación de Devstral con Vibe35Tier C70/100

Devstral

Vibe

234 objetos960 líneas✓ 0 errores

Renderiza con 0 errores y amplitud completa, pero con bugs reales: cola del cometa hacia el sol, mesh.diameter inexistente (anillos y labels en NaN) y emissionRange no-op (estrellas sin distribuir), más selector Tema muerto y textos truncados.

▶ Abrir demo de Devstral con Vibe (nueva pestaña)

Captura de la simulación de Z.ai GLM 5.2 con Claude Code36Tier D54/100

Z.ai GLM 5.2

Claude Code

29 objetos624 líneas✓ 0 errores

Base orbital excelente y codigo muy limpio, pero entrega parcial: faltan Pluton, asteroides, nebulosas, post-procesado y casi todo el panel UI, ademas de un bug que normaliza la posicion del cometa cada frame.

▶ Abrir demo de Z.ai GLM 5.2 con Claude Code (nueva pestaña)

Hallazgos

Lo que decidió el benchmark

  • La cola del cometa

    El fallo que más separó: el vector «lejos del Sol» es cometa − Sol. Muchas lo invirtieron y la cola acabó apuntando hacia el Sol. Hoy 29 de 36 lo aciertan.

  • El Sol en el foco

    Una elipse con el Sol centrado parece correcta, pero es física falsa. Las de cabeza lo pusieron en el foco: x = a·cosθ − a·e.

  • Instancing

    Doscientos asteroides piden createInstance. 25 de 36 lo usan; el resto crea cientos de mallas sueltas y lo paga en FPS.

  • El agente pesa tanto como el modelo

    GLM 5.2 aparece con 4 agentes y sus notas van de 54–95: 41 puntos con el mismo modelo base.

  • Verificar la documentación

    Quienes no consultaron la documentación de BabylonJS inventaron APIs (emissionRange, mesh.diameter) que se tradujeron en fallos visibles.

  • El juez alucina; el runtime corrige

    Una revisión estática declaró rota una entrega que funcionaba con 279 objetos y 0 errores. Sin ejecución real, un benchmark de agentes no es fiable.

El estado del arte

entregas arrancan y pintan una escena WebGL compleja en una sola pasada
36/36
abren sin un solo error de consola en un navegador real
34/36
líneas de media por entrega, todo en un único archivo
1.294
entregas empatadas arriba con 97: GPT-5.5 · Codex, Claude Opus 4.8 · Ultracode + Claude Code y Claude Opus 5 · Ultracode + Claude Code
3

Generar en una sola pasada una experiencia 3D web compleja y autocontenida ha dejado de ser una hazaña: es lo esperable de un agente de código de frontera. La pregunta ya no es «¿puede escribir mil quinientas líneas de WebGL sin una excepción?», sino «¿acierta los detalles difíciles?»: que el Sol va en el foco, que un vector tiene sentido, que doscientos objetos piden instancing y que una API se verifica antes de usarla.

Y una lección sobre cómo medir: el juez que solo lee el código es rápido pero falible. Aquí se juzga por ejecución —abrir la app, contar sus objetos, mirar su consola y capturar lo que se ve—.

Método

Tres señales y cinco tiers

  1. 1

    Rúbrica de 100 puntos

    un jurado-LLM por entrega

    Lee el index.html completo y el reto, y puntúa diez categorías verificando el código, no los comentarios.

  2. 2

    Ejecución real

    Chrome headless · SwiftShader

    Cada entrega se abre en un navegador: captura, objetos en escena, FPS y errores de consola. Se juzga por lo que hace al abrirse.

  3. 3

    Calibración

    juez final + runtime

    Un juez normaliza las notas entre jurados. Donde la lectura del código contradice la ejecución, manda la ejecución.

Tiers y número de entregas
TierNotaLecturaEntregas
Tier S≥90Fiel al spec y correcto en los detalles difíciles.16
Tier A82–89Muy completo, con algún fallo concreto.12
Tier B75–81Completo, con un requisito nuclear incumplido.6
Tier C60–74Funciona, con varios bugs reales.1
Tier D<60Entrega parcial o con fallos graves.1

Preguntas frecuentes

¿Qué es Universo-Arena?

Un benchmark abierto donde 36 combinaciones de LLM + agente de código implementan el mismo reto: una simulación 3D del Sistema Solar en BabylonJS, como un único index.html autocontenido. Cada entrega se puntúa con una rúbrica de 100 puntos y se ejecuta en un navegador real.

¿Qué combinación obtuvo la mejor puntuación?

GPT-5.5 · Codex, Claude Opus 4.8 · Ultracode + Claude Code y Claude Opus 5 · Ultracode + Claude Code empatan en cabeza con 97/100 (tier S). En los empates, las entradas hechas por el mismo sistema que ejecuta el benchmark van por debajo.

¿Cómo se evalúa cada entrega?

Con tres señales: una rúbrica de 10 categorías (100 puntos), la ejecución real en Chrome sin pantalla —objetos 3D, FPS y errores de consola— y una calibración que, cuando la lectura del código y la ejecución discrepan, se queda con la ejecución.

¿El benchmark es reproducible y de código abierto?

Sí, con licencia MIT: el código de cada entrega y los datos crudos (benchmark.json y runtime.json) están en GitHub, y el arnés de captura está documentado en docs/harness.md. El script del arnés no vive en el repositorio.