Skip to content
AI World Cup simulation environment
C++ Other
  1. C++ 99.6%
  2. Other 0.4%
Branch: master
Clone or download

AI World Cup Simulation

The AI World Cup simulation environment. Participants of AI World Cup can download the program to develop their own algorithm for AI Soccer, AI Commentator, or AI Reporter. After development, participants of AI World Cup can submit their programs to We will check if your program runs correctly on our server where the qualifying/main rounds will be run and reply back as soon as possible. Regarding the deadlines, please refer to our AI World Cup Website.

  • There are two ways to download the AI World Cup simulation program.
  • AI World Cup simulation program requires Webots Robot Simulator. Please refer to Webots official website's installation procedure to install Webots (Webots version should be R2019b).
  • Downloading the ZIP file through 'Download ZIP' will not work. It does not download the submodules related to the program.

How to download the simulation program

Method 1. Go to releases and download the latest version.

Method 2. Use following git command

  git clone --recurse-submodules

How to run the simulation program

Please refer to the Wiki pages.


controllers: Contains programs for managing AI World Cup simulation game system (You can modify the controllers to aid your development. However, the games at the competition will use the default controllers)

  • soccer_robot: A program that changes robot wheel movements based on received data

  • supervisor: A referee program that manages AI World Cup games as whole (Participant programs communicate with this program to control the robots/make comments/submit a report)

examples: Contains sample programs participants can refer to (Participants may implement AI programs referring to the sample programs provided in this directory)

  • common: Contains a basic interface for C++ information handling and communication with the simulation program

  • extlibs: Contains external libraries used in sample programs

  • team_a_data, team_b_data, commentator_data, and reporter_data: Directories where participants' program may write some files into if needed

  • Remaining directories contain samples participants can refer to.

  • general_check-variables: A program that prints game information variables sent from the simulation program to participants program

  • general_frame-skip: A program that implements framing skipping. Frame skipping is advised when your program takes more than 50 ms in each game frame in generating the output control signal

  • general_image-fetch: A program that shows the game image frames using OpenCV

  • player_deep-learning-play and player_deep-learning-train: Programs that implement a base skeleton for AI Soccer deep learning using Deep-Q-Network (DQN)

  • player_random-walk: An AI Soccer program that simply sets robot wheel speeds to random value in each game frame

  • player_rulebased-A, player_rulebased-B: Programs that implement a rule-based control of a team in AI Soccer ('rulebased-B' is a simplified version of 'rulebased-A')

  • player_skeleton: A base skeleton for AI Soccer program

  • commentator_skeleton: A base skeleton for AI Commentator program

  • reporter_skeleton: A base skeleton for AI Reporter program

extlibs: Contains external libraries used in AI World Cup simulation

plugins: Contains a physics plugin used for ball-robot collision detection

protos: Contains AI World Cup object models (robot, ball, stadium, etc.)

worlds: Contains AI World Cup simulation world files (Files in this directory can be run using Webots Robot Simulator)

  • aiwc.wbt: Webots world file

config.json: Configuration file for setting player executables, setting game duration, and setting some rules on/off for effective training. Please refer to the Wiki page for parameter descriptions (Participants should modify the player information in this file to tell the simulation which program to execute)

You can’t perform that action at this time.