Skip to content
Rival
Models
CompareBest ForArena
Lab
Sign Up
Sign Up

We spend our weekends yelling at API endpoints so you don’t have to.

@rival_tips

Explore

  • Compare Models
  • All Models
  • Prompt Lab
  • Leaderboard
  • Challenges

Discover

  • Insights
  • AI Creators
  • AI Tools
  • The Graveyard

Developers

  • Developer Hub
  • MCP Server
  • .llmignore
  • Badges
  • Rival Datasets

Connect

  • Methodology
  • Sponsor
  • Partnerships
  • Privacy Policy
  • Terms
  • RSS Feed
© 2026 Rival · Built with mass sleep deprivation, energy drinks, and someone else’s GPU cluster
Rival
Models
CompareBest ForArena
Lab
Sign Up
Sign Up

We spend our weekends yelling at API endpoints so you don’t have to.

@rival_tips

Explore

  • Compare Models
  • All Models
  • Prompt Lab
  • Leaderboard
  • Challenges

Discover

  • Insights
  • AI Creators
  • AI Tools
  • The Graveyard

Developers

  • Developer Hub
  • MCP Server
  • .llmignore
  • Badges
  • Rival Datasets

Connect

  • Methodology
  • Sponsor
  • Partnerships
  • Privacy Policy
  • Terms
  • RSS Feed
© 2026 Rival · Built with mass sleep deprivation, energy drinks, and someone else’s GPU cluster
  1. Home
  2. Models
  3. Bert-Nebulon Alpha
  4. Pokémon Battle UI Recreation

See how Bert-Nebulon Alpha compares on this challenge:

  • Bert-Nebulon Alpha vs Claude Sonnet 4.6
  • Bert-Nebulon Alpha vs Gemini 3.1 Pro Preview
  • Bert-Nebulon Alpha vs Z.ai: GLM 5

4 models have responded to the "Pokémon Battle UI Recreation" challenge. Compare their approaches side-by-side on Rival. This response is part of Rival's open dataset of 5,600+ AI model responses.

Rival
Models
CompareBest ForArena
Lab
Sign Up
Sign Up
Back to Bert-Nebulon Alpha

Pokémon Battle UI Recreation

Bert Nebulon Alpha's response to the 'Pokémon Battle UI Recreation' challenge.

Bert-Nebulon Alpha
November 24, 2025
Website

?
Prompt

Recreate a Pokémon battle UI — make it interactive, nostalgic, and fun. Stick to the spirit of a classic battle, but feel free to get creative if you want. In a single-page self-contained HTML.

Bert-Nebulon Alpha
Response

bert-nebulon-alpha logo
Bert-Nebulon AlphaPokémon Battle UI Recreation
bert-nebulon-alpha logo
Bert-Nebulon Alpha

Couldn’t render this one. It’s giving abstract art.

This model didn’t return a displayable web page. Classic overachiever move.

View raw output
# Pokémon Battle UI - Classic & Interactive

Here's a self-contained HTML file that recreates a nostalgic Pokémon battle UI with interactive elements. It includes:
- Classic battle screen layout
- Animated sprites
- Health bars
- Move selection
- Turn-based combat
- Sound effects
- Nostalgic music

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pokémon Battle Simulator</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');

        body {
            margin: 0;
            padding: 0;
            background-color: #f0f0f0;
            font-family: 'Press Start 2P', cursive;
            overflow: hidden;
            user-select: none;
        }

        #battle-screen {
            position: relative;
            width: 512px;
            height: 448px;
            margin: 20px auto;
            background-color: #000;
            border: 8px solid #fff;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
            overflow: hidden;
        }

        #battle-bg {
            position: absolute;
            width: 100%;
            height: 100%;
            background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 448"><rect fill="%234a90e2" width="512" height="224"/><rect fill="%237ab55c" y="224" width="512" height="224"/><path fill="%23fff" d="M0,224 Q128,192 256,224 T512,224 L512,256 Q384,224 256,256 T0,256 Z"/></svg>');
            background-size: cover;
        }

        .pokemon-sprite {
            position: absolute;
            width: 96px;
            height: 96px;
            image-rendering: pixelated;
            z-index: 10;
        }

        #player-pokemon {
            bottom: 120px;
            left: 60px;
        }

        #opponent-pokemon {
            top: 60px;
            right: 60px;
        }

        .health-bar-container {
            position: absolute;
            background-color: #000;
            color: #fff;
            padding: 4px;
            font-size: 8px;
            z-index: 20;
        }

        #player-health {
            bottom: 200px;
            left: 60px;
            width: 120px;
        }

        #opponent-health {
            top: 40px;
            right: 60px;
            width: 120px;
        }

        .health-bar {
            height: 4px;
            background-color: #f00;
            margin-top: 2px;
            position: relative;
        }

        .health-bar-fill {
            height: 100%;
            background-color: #0f0;
            width: 100%;
            transition: width 0.5s ease;
        }

        #battle-text {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 120px;
            background-color: rgba(0, 0, 0, 0.7);
            color: #fff;
            padding: 8px;
            font-size: 10px;
            box-sizing: border-box;
            z-index: 30;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        #battle-menu {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 120px;
            background-color: rgba(0, 0, 0, 0.7);
            color: #fff;
            padding: 8px;
            font-size: 10px;
            box-sizing: border-box;
            z-index: 30;
            display: none;
        }

        .menu-option {
            padding: 4px 0;
            cursor: pointer;
        }

        .menu-option:hover {
            background-color: rgba(255, 255, 255, 0.1);
        }

        .selected {
            background-color: rgba(255, 255, 255, 0.3);
        }

        #move-menu {
            display: none;
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 120px;
            background-color: rgba(0, 0, 0, 0.7);
            color: #fff;
            padding: 8px;
            font-size: 10px;
            box-sizing: border-box;
            z-index: 40;
        }

        .move-option {
            display: inline-block;
            width: 48%;
            padding: 4px 0;
            margin: 2px 0;
            cursor: pointer;
            box-sizing: border-box;
        }

        .move-option:hover {
            background-color: rgba(255, 255, 255, 0.1);
        }

        .type {
            display: inline-block;
            padding: 1px 4px;
            font-size: 6px;
            margin-left: 4px;
            border-radius: 2px;
        }

        .normal { background-color: #a8a878; }
        .fire { background-color: #f08030; }
        .water { background-color: #6890f0; }
        .electric { background-color: #f8d030; }
        .grass { background-color: #78c850; }
        .ice { background-color: #98d8d8; }
        .fighting { background-color: #c03028; }
        .poison { background-color: #a040a0; }
        .ground { background-color: #e0c068; }
        .flying { background-color: #a890f0; }
        .psychic { background-color: #f85888; }
        .bug { background-color: #a8b820; }
        .rock { background-color: #b8a038; }
        .ghost { background-color: #705898; }
        .dragon { background-color: #7038f8; }
        .dark { background-color: #705848; }
        .steel { background-color: #b8b8d0; }
        .fairy { background-color: #f0b6bc; }

        #cursor {
            position: absolute;
            width: 8px;
            height: 8px;
            background-color: #fff;
            z-index: 50;
        }

        .damage-effect {
            position: absolute;
            width: 100%;
            height: 100%;
            background-color: rgba(255, 0, 0, 0.3);
            z-index: 15;
            display: none;
        }

        .flash {
            animation: flash 0.1s 3;
        }

        @keyframes flash {
            0% { opacity: 0.3; }
            50% { opacity: 0.8; }
            100% { opacity: 0.3; }
        }

        #start-screen {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: #000;
            color: #fff;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 100;
        }

        #start-button {
            background-color: #fff;
            color: #000;
            border: none;
            padding: 10px 20px;
            font-family: 'Press Start 2P', cursive;
            font-size: 12px;
            cursor: pointer;
            margin-top: 20px;
        }

        #credits {
            position: absolute;
            bottom: 10px;
            right: 10px;
            font-size: 8px;
            color: #fff;
            text-align: right;
        }

        .hidden {
            display: none;
        }
    </style>
</head>
<body>
    <div id="battle-screen">
        <div id="battle-bg"></div>

        <div id="opponent-health" class="health-bar-container">
            <div>Lv50 CHARIZARD</div>
            <div class="health-bar">
                <div class="health-bar-fill" id="opponent-health-fill"></div>
            </div>
            <div id="opponent-hp-text">100/100</div>
        </div>

        <div id="player-health" class="health-bar-container">
            <div>Lv50 BLASTOISE</div>
            <div class="health-bar">
                <div class="health-bar-fill" id="player-health-fill"></div>
            </div>
            <div id="player-hp-text">100/100</div>
        </div>

        <img id="opponent-pokemon" class="pokemon-sprite" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4gMfFzQj84bQWgAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAJtSURBVGje7ZjLcuJAFIWf59zY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY
Pokémon Battle UI Recreation
This output lives in our open dataset — 5K+ responses across 200 models. Take it. It’s free.

About Bert-Nebulon Alpha

Capabilities

ConversationReasoningAnalysis

Categories

TextCodeMultimodal

Specifications

Provider
Openrouter
Released
2025-11-24
Size
LARGE

Keep exploring

SAME PROMPT

Claude Sonnet 4.6's version

Same prompt, different result

COMPARE

Bert-Nebulon Alpha vs Gemini 3.1 Pro Preview

Both outputs, side by side

We spend our weekends yelling at API endpoints so you don’t have to.

@rival_tips

Explore

  • Compare Models
  • All Models
  • Prompt Lab
  • Leaderboard
  • Challenges

Discover

  • Insights
  • AI Creators
  • AI Tools
  • The Graveyard

Developers

  • Developer Hub
  • MCP Server
  • .llmignore
  • Badges
  • Rival Datasets

Connect

  • Methodology
  • Sponsor
  • Partnerships
  • Privacy Policy
  • Terms
  • RSS Feed
© 2026 Rival · Built with mass sleep deprivation, energy drinks, and someone else’s GPU cluster