Soccer Simulation Demo Competition 2021

Hey, there!

We are very excited to inform that we are going to host the first RoboCup Junior Soccer Simulation Competition in February 2021! It is a demo (not an official competition) organized by the Soccer TC and Soccer Simulation OC. The idea is that this demo serves as a trial for the official simulation competition to be held in June 2021.

Check the information below, talk to your team and submit your code! :slight_smile:


  • Rules are based on the regular RoboCup Junior Soccer, adapted to the simulation environment. They available here:

  • Simulator: The soccer simulation competition will run on a Webots world that we are adapting to work with our rules and to accept code in Python 3. In the following GitHub page you will find instructions to download Webots, the soccer environment and run the code. Final adjustments are still being made, but you can already download everything and start coding!

  • Tutorial: We are also working on simple tutorial on how to program your team. I will post a link here as soon as it is ready.

  • Deadlines: The initial plan was to host the competition in January, but it took us more time than we anticipated to finalize the rules. So, we decided to push the competition to February to give you reasonable time to work on your code. The new deadlines are:

Registration: postponed to 26-01-2021 (it was 17 and then 20-01-2021)
Code submission: until 09-02-2021 (it was 31-01-2021)
Competition: mid or end February (to be confirmed)

Click here to fill in the registration form!

All links and competition date will be posted in this thread in the future. Stay tuned!

We wish you all Merry Christmas and happy coding!

RCJ Soccer TC and RCJ Soccer Simulation OC


Some extra information:

Criteria for participating in the Soccer Simulation Demo Competition of February 2021

We are following the criteria described in the RoboCup Junior General Rules:

Team size: all teams must have 2, 3 or 4 people.
Age limit: all team members must be between 14 and 19 years old.
Team member(s) cannot be shared between teams - it is not allowed that the same person is part of more than one team.


Registration is not open, yet. In January a link will be posted here. Please, follow this thread to keep up-to-date.

Sounds great, Felipe! We are looking forward to seeing you in February in the jungle! (Jungle referring to Python, never mind…)
For the simulation competition in June, could you explain hot this fits in, given that Robocup is scheduled in Bordeaux June 22-28? Is this a new discipline of RCJ, so teams would participate in light weight, open or simulated soccer? Remotely or on site? Or are you suggesting RCJ will be simulation only for 2021 due to Covid, nobody travelling to Bordeaux? (For us, we are hoping to get vaccinated by March, I’m confident infections will go down due to rising temperatures just as predictably as they are up right now.)
Please clarify the big picture for June!

Registration is now open!

Registration for Soccer Simulation Demo Competition 2021 is now open!
The committee welcomes all of the cutting-edge junior Robocuppers to join this competition.

Do not forget to register before January 17th!

If you cannot see a registration receipt email, kindly check your spam folder :wink:


Many thanks for arranging this great challenge.

I have some questions about the software versions:

  • Is the source code executed in Webots R2021a or older?
  • What Python will you use? 3.7, 3.8 or 3.9?

Hi @fabacam,

We plan to use Webots R2021a for the Demo Competition.

In our tests we’ve used Python 3.7 and Python 3.8. We don’t have the final answer yet, but if your code is compatible with Python 3.7, it will almost certainly work in the Simulator.

That said, we will clarify that and let you know in here.

Thank you for your questions and feel free to ask any other you may have!

1 Like

Hi, @Armin.

Sorry for taking so long to reply. The short answer is that we are still waiting for an official announcement from the RoboCup Federation to decide how exactly the competition is going to be in June.

In the meantime… the registration is now open for the Soccer Simulation demo of February 2021! Please, check this forum thread for the link.


Does the robot have a camera, or any other sensors available? Our team has been learning OpenCV and wanted to use it for this virtual competition.

How does the rankings on the Soccer Simulation Competition affect the official simulation competition to be held in June 2021? Are we required to compete in the Demo to compete in the June Competition?

Hi @Rithsagea,

In its current setup it does not. The aim was to put together the simplest simulator possible so that the room for error would be dramatically reduced. Currently the robots only have access to their own position and the position of the ball.

That said, we do plan to investigate possible use of various sensors in the simulated environment, so that the game is closer to the real one. This will have to happen in the future though (that is, not for this Demo Competition).

Thanks for asking!

– Marek

Hi @Jasper_Tan,

This Demo Competition is completely independent from the competition in June 2021. Its main goal is to try out the feasibility of RCJ Soccer Simulation as a concept but there is no requirement for competing, nor will its results affect the competition in June in any way.

Hope this helps!

– Marek

Dear all,
@Jasper_Tan @Rithsagea @Armin @fabacam

We decided to keep registration open for a few more days: until 26-01-2021


Olá Felipe!

Me chamo Guilherme sou professor de robótica, estou com uma equipe com duas jovens de 15 anos. Existe alguma base de conhecimento ou outros exemplos para ajudar-nos?

meu contato


Oi, Guilherme.

Vou te mandar um e-mail.


I’m a mentor at The Bishop’s School in La Jolla, CA, USA.

I produced a modified version of the world that has only one robot, I thought that would be helpful for teams trying to get the hang of the controls. I’d like to give that to my team to use, but I don’t want to give my team an unfair advantage by coding for them.

Is it ok for me to post a link to a Github repository for everyone to use that? Right now, it is only on my own laptop, I haven’t posted it or given to my teams.


1 Like

Hi, Marcus.

If you write only a basic code that shows how the functions of the simulator can be used, and not a fully functioning soccer robot, then Yes! Please, share your GitHub link here at the forum!

Great initiative! Thanks a lot!

Dear all,
@Felipe @TBSDrJ

I’m the mentor for ORKA Robotics from Hungary.

We also came to the same conclusion as Marcus that keeping only one player on the field would let testing be more efficient since the other robots would not disturb.

We also considered to create a special world for testing but it turned out that maybe it’s enough to change the following values in controllers\rcj_soccer_referee_supervisor\referee\

    "B1": [0.85,  0.03817, 0.6],     #   "B1": [0.3,  0.03817, 0.3],
    "B2": [0.85,  0.03817, -0.6],    #   "B2": [0.3,  0.03817, -0.3],
    "B3": [0.5,  0.03817, 0],        #   "B3": [0.3,  0.03817, 0],
    "Y1": [-0.85, 0.03817, -0.6],    #   "Y1": [-0.3, 0.03817, -0.3],
    "Y2": [-0.85, 0.03817, 0.6] ,    #   "Y2": [-0.3, 0.03817, 0.3],
    "Y3": [-0.85, 0.03817, -0.5],    #   "Y3": [-0.3, 0.03817, 0],
YELLOW_KICKOFF_TRANSLATION = [-0.8, 0.03817, -0.5]  #   [-0.1, 0.03817, 0]

This modification places all but the B3 player outside the field walls LOL
After testing just restore the original values right to the # mark.

I hope that would help all the teams interested in testing :smiley:


1 Like

Hi @Felipe,

May I have a few questions:

Q1. Will the competition keep the same controller directory structure and file name conventions? The demo code for all the robots are using the RCJSoccerRobot parent class and the in the B1/Y1 robots’ folder. Can teams assume that this will be the same during the competition?

Q2. The demo codes for B2, B3 / Y2, Y3 are colour dependent when referring to the B1 / Y1 folder.
If teams don’t have to create standalone .py files for each robot (see Q1 question), then for which colour (Yellow or Blue) should the teams write their code? I assume it would have benefits for the organizers if all the teams would write their codes for the same colour.

Q3. Can teams import the and/or other .py files in the controller\rcj_soccer_referee_supervisor subfolder? For example this way they could use the very same constants as the reffere, lets say to check their positions relative to the penalty area.


Hey, everyone!

A small tutorial on how to program your simulated robots has just been posted! There you will find explanation to some of the questions you might have. Please, have a look!


@fabacam @rlaszlo @Armin @TBSDrJ @guinux @Jasper_Tan @Rithsagea

1 Like

Hi, @rlaszlo.

Quick answer to your questions is below. For details, please check the link about “How to program your robot” that I posted above.

Q1: Yes.

Q2: Teams are going to be allocated randomly to Yellow or Blue. The code should be able to change behavior accordingly. You can use a simple function to get the name of your robot, which also identifies your team as Yellow or Blue.

Q3: Good question. I suppose you can, as long as you follow the rules and don’t change anything that the referee is controlling. In any case, I will check with my colleagues from the TC, just to make sure.