All projects
Blender

Boxing Match Cinematic

A one-minute cinematic built in Blender 4.5 and rendered with Cycles — a boxing match between Baki Hanma and Yuji Itadori in a UIB-inspired arena, resolved as a single continuous take chaining nine cameras, with NLA-driven animation, PBR materials, volumetrics, particles and Python-scripted keyboard consoles.

View on GitHub
Computer Graphics Blender 3D Animation

Project Demo

Project Documentation

Open in new tab

Boxing Match Cinematic

Final project for the Computer Graphics course at the Universitat de les Illes Balears, made together with Diego Malagrida. A cinematic — not a game — that recreates a boxing match between Baki Hanma and Yuji Itadori in a UIB-inspired arena, built in Blender 4.5 and rendered with Cycles. The piece runs from frame 1 to 2176 at 30 fps (≈72 seconds, 1920×1080) and is resolved as a single continuous take that chains nine cameras switched by timeline markers, from the opening orbit around the arena sign to the KO and the winner’s celebration.

About

The scene integrates the whole graphics pipeline covered in the course, organized in the outliner into eight numbered collections (01_SET08_SOURCE_hidden):

  • Modeling — the arena is modeled from scratch: ring platform, canvas, ropes and posts, two rings of stands with their seats and detailing, entrances, a big screen and the set dressing. The props (trophy, confetti cannons, articulated stage spotlights, UIB-logo decal) are modeled separately, and the crowd is handled with three levels of detail — a ~4,500-polygon base instanced across the stands, plus two heavier variants reserved for foreground instances — over a scene approaching 17 million polygons.
  • Animation — both fighters are driven by Mixamo clips retargeted onto their skeletons and distributed across NLA tracks, so actions (introduction, sway, fight, victory / sad idle) can be chained and retimed without re-animating by hand. The crowd plays cyclic seated and standing actions, with a seated-to-standing overlay in the tense moments. Retargeting Itadori was the main problem: his arms clipped through the torso until the retarget was applied in the rest pose.
  • Materials and lighting — 93 PBR materials built on the Principled BSDF with UV-projected color textures and normal maps, including a fully procedural ring canvas made of layered noise nodes, an alpha-cut UIB decal and an emissive stadium screen. The lighting is deliberately concert-like: colored spotlights sweeping the stands, ring rim and reveal, key light and crowd wash, animated to change shot by shot.
  • Advanced realism — emissive fire in layers on the four corner flame throwers, volumetric ground haze and colored corner smoke so the beams scatter through the air, 260 dust motes catching the light, and two confetti emitters of 2,400 particles each firing at the victory with gravity and a ground collider so they pile up instead of falling through the floor.
  • Audio — the boxing bell, a layered crowd bed with crossfades and a roar at the KO are assembled in the Video Sequence Editor.
  • Interaction — since Blender 4.x has no Game Engine, the interactive layer is written as Python modal operators: two keyboard consoles that toggle the eight lighting groups live and jump between the nine shots.

The interactive part was evaluated with a ten-item SUS questionnaire adapted to the two consoles, reported in the write-up.

Opening the project

Clone the repository and open blender-project/final_scene.blend with Blender 4.5. All resources are packed into the .blend, so nothing else needs to be installed. Press the space bar to play the cinematic from the timeline.

Interactive controls

  • Ctrl+Shift+L — light console: 18 toggle the lighting groups, 0 turns them all on
  • Ctrl+Shift+C — camera console: 19 or the arrow keys jump between the nine shots
  • Esc — closes the active console