This repository is the demo Visual Tracking lesson used to show professors how to add a new lesson to Webots Academy.
Create a repository that contains:
- a world file under
worlds/ - one or more controllers under
controllers/ - a root
README.mdthat explains the lesson to students
You are expected to build your own simulation and your own controllers. This repository is only a reference layout.
If your lesson has support controllers such as supervisors, keep them in the repo as normal. Only the controller named by editable_file_path becomes the student-editable file in Webots Academy.
Webots Academy sync expects GitHub URLs. After your repo is pushed, identify:
- the exact GitHub URL to your
.wbtfile - the relative path to the controller file students should edit
The URL format should look like:
https://github.com/<owner>/<repo>/blob/<branch>/worlds/<lesson>.wbt
The editable path should look like:
controllers/<controller_name>/<controller_file>.py
Use the Content Library view and the highlighted Create New Lesson action:
In the Webots Academy teacher dashboard:
- Open
Content Library - Click
Create New Lesson - Enter the lesson title and description
- Paste the GitHub
world_fileURL - Enter the
editable_file_path - Save the lesson as a custom lesson
For this repository, use:
world_file=https://github.com/SpesRobotics/webots-academy-example/blob/main/worlds/visual_tracking.wbt
editable_file_path=controllers/visual_tracker/visual_tracker.py
The lesson form should look like this when the required fields are filled:
After the lesson is created:
- Click
Sync GitHub - Webots Academy pulls this root
README.mdinto the lesson theory panel - Webots Academy pulls the file at
editable_file_pathinto the editor starter code - Click
Previewto confirm the lesson loads correctly
If you change the repo later, push the update to GitHub and click Sync GitHub again.
After the lesson is synced:
- Create or open a class
- Add the lesson from the class lesson manager
- Keep the lesson visible so students can see it
- Reorder it if needed to match your course progression
Once assigned, the lesson appears in the student dashboard like any other Webots Academy lesson.


