Skip to content
brorn
No. 006 · Sports & video

pixoccer

Experiment that turns video of a football play into a video-game-style 3D scene, with players and ball moving as in the video.

Paused
Period
2026-10 → 2026-11
Platforms
Browser · Meta Quest (VR)
Role
Solo: design, build, ship
Tech
No media yet. The page goes straight to §1

§1The problem

Seeing a play from above, in 3D, helps understand what happened, but it requires extracting the position of every player and the ball, in metres, from the video.

§2What I built

  • Unity gameWeb build with pitch, stadium, animated players and a page with video and game side by side, in sync.
  • Video analysisPython: pitch by homography, players, ball in 3D from touch to touch, camera, events (shot, fall, save) and shirt number by AI.
  • Play file formatThe only link between the two parts.
  • VR modeOn Meta Quest, at real scale.
  • Test rulerHand-labelled ground truth and a score command to measure every change.

§3The hard parts

4 entries
  1. 01

    Pitch by homography on every frame

    From the lines (0.28 m error on a test clip).

  2. 02

    3D ball from a single camera

    The trajectory only changes direction at a player or a bounce.

  3. 03

    Discipline of measuring

    A change that lowers the score is dropped; no rules tuned for a single video.

  4. 04

    Two decoupled parts

    Connected only by a versioned file format.

§4Result

pitch homography error on a test clip
0.28 m

Works end to end on test clips, but it was paused: the research found no real breakthrough and tracking from TV footage has known limits (off-screen players are estimated, a ball in the net is rarely detected).

§5Stack

  • Unity 6.6 (C#, Web build, WebXR)
  • Python (YOLO, OpenCV)
  • Blender via script (animations)
  • pm2