A first-person boxing demo that turns AI-generated footage into an exchange you can play.

My role
Solo project: concept, visual direction, asset generation and selection, sound, and implementation with Claude and Codex.
When
April 2026
Made with
Nano Banana 2 and GPT Image 2: concepts
Kling 3.0 Pro: guard loop and counter

The opponent throws a hook. You have two seconds to choose Jab, Hook or Uppercut. Your choice determines whether you counter, block or get hit.

The AI game trailers I was seeing used GPT Image 2 images animated with Seedance 2.0. They looked incredible, but none of the ones I saw were playable. I wanted to make something people could play, with the kind of photorealism that would be expensive to render in a game engine.

Boxing worked well because an exchange could be made from short clips joined at specific poses. The player’s input selects which outcome clip plays next. All footage was generated in advance; the demo repeats the exchange three times.

Finding the visual direction

Exploring boxing-ring styles

I started by asking Claude and Codex for boxing-ring concepts and generating images with Nano Banana 2 and GPT Image 2. The rings felt generic to me. I tried other treatments, including manga and retro arcade, but hadn’t found a look I wanted to keep.

Underground ring
Neon-noir arena
Manga illustration
Retro arcade

Developing the temple direction

I stepped outside the Claude and Codex loop to browse references. Black Myth: Wukong looked more distinctive to me than the earlier concepts. With that game and Chinese cinema as references for the setting, lighting and color, I used GPT Image 2 to compare photoreal and painted treatments.

Lantern-lit courtyard
Ginkgo courtyard
Ink-wash direction
Gongbi-inspired painting

The painted treatments reminded me of games I’d already seen. I was more interested in the photoreal versions, which felt novel to me. The temple became the starting point for the game, with the fighting pose and location still to settle.

Selected temple concept

Opening up the setting

For the guard loop, both fighters needed a neutral pose they could return to between punches. Keeping that pose and the first-person view, I used GPT Image 2 to compare locations. I wanted the Chinese setting to be recognizable at a glance.

Enclosed temple
Lantern-lit palace
Mountain platform

The temple felt enclosed, the palace was too dark, and the mountain setting could read as European fantasy without the architecture.

The bamboo grove immediately suggested an Asian setting to me. It was well lit, and the outdoor environment felt more alive. I chose it for the playable demo.

Selected setting: bamboo grove

Cutting the footage into a playable exchange

The player’s choice sends the same hook wind-up into three possible outcomes. To make those separate clips feel like one exchange, their poses had to match at each cut. Each outcome needed to start where the wind-up ended and return both fighters to guard. The guard clip also needed matching start and end poses so it could loop between attacks.

I tested Kling O3 Pro and Veo 3.1 for idle motion. The shipped guard loop and counter clip use Kling 3.0 Pro. For the counter, I supplied the attack pose and final guard pose as its start and end frames, then trimmed the footage in CapCut and compared the frames at each cut.

Wind-up endsCounter starts
First frame of the counter clip, with the opponent’s hook extended between the player’s glovesLast frame of the wind-up clip, with the opponent and the player’s gloves in nearly the same pose
Nearly matching poses at the cut.

The game stores the player’s move during the two-second countdown and waits for the wind-up to finish before showing the outcome, so the cut happens at the matching pose. Timing within the window doesn’t change the result; missing it means getting hit.

Each clip has its own preloaded HTML video element to avoid loading a new source between punches.

Limiting the opponent to one attack

I thought an uppercut would be easy to add as another opponent attack. I tried multiple video models, different prompts and image references, then even took photos of myself in the pose. After more than 30 unusable alternatives, I left it out. The hook is the opponent’s only attack in the released demo; the player’s Uppercut button remains a response to it.

Play Temple Fist

19.5K views on LinkedIn