Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
92352ac
Fix `wb_speaker_play_sound` Request Message (#6843)
CoolSpy3 Jun 15, 2025
5e8942c
Fix Checking of Reload/Reset Selection in WbBuildEditor (#6844)
CoolSpy3 Jun 16, 2025
ee34f4e
use QImage::flipped instead of QImage::mirrored in WbWrenTextureOverl…
CoolSpy3 Jun 24, 2025
ec05c25
use stdbool instead of boolean.h (#6853)
CoolSpy3 Jun 26, 2025
8e7d814
use windows-2022 in sources tests (#6858)
CoolSpy3 Jul 7, 2025
474fd9f
Set `mIsBeingDeleted` before emitting `isBeingDestroyed` in `WbNode` …
CoolSpy3 Jul 7, 2025
78755a4
Clarify Robot Window HTML Test (#6755)
CoolSpy3 Jul 13, 2025
6e8f7f3
Decouple MATLAB Functions Test from `Controller.def` (#6752)
CoolSpy3 Jul 13, 2025
34e7dde
Build lib Files with gcc on Windows (#6753)
CoolSpy3 Jul 14, 2025
653dd4a
Reset `WbFieldRef->last_update` After Simulation Reset (#6758)
CoolSpy3 Jul 14, 2025
f531fb5
Add Missing MATLAB Function Implementations (#6756)
CoolSpy3 Jul 14, 2025
ec04f7e
Rework Resource Handling in Node Exports (#6856)
CoolSpy3 Jul 14, 2025
cf74366
Fix PositionSensor.getMotor() (#6825)
trbljump Jul 14, 2025
9886dd0
Fix Crash when Python is not Found on Windows (#6870)
CoolSpy3 Aug 3, 2025
1de87cc
Adding compilation support for Fedora 42 (#6780)
calvarado2004 Aug 17, 2025
a1b0e6d
Update camera.md (#6828)
galou Aug 17, 2025
a267571
(doc) underline links in charts (#6875)
CoolSpy3 Aug 17, 2025
f355c4d
remove movie test exclusion from Ubuntu 22.04 (#6874)
CoolSpy3 Aug 17, 2025
8480abe
Merge branch 'master' into sync-released-a2675711c
omichel Aug 18, 2025
2f34918
Merge pull request #6876 from cyberbotics/sync-released-a2675711c
omichel Aug 18, 2025
ed0d149
Fix `addTorque` and `addForceWithOffset` Python Implementations (#6881)
CoolSpy3 Aug 20, 2025
bc96d07
Fix Physics Plugin Search in Extra Projects (#6880)
CoolSpy3 Aug 20, 2025
d5658d7
chore: add appstream metadata (#6885)
calyle Aug 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions .github/workflows/test_suite_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,15 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Visual Studio 10 and OpenJDK 18
- name: Install OpenJDK 18
shell: powershell
run: |
choco install -y openjdk --version=18.0.2
choco install -y visualcpp-build-tools
run: choco install -y openjdk --version=18.0.2
- name: Install Webots Compilation Dependencies
run: |
export PYTHON_INSTALLATION_FOLDER=/C/hostedtoolcache/windows/Python
export PYTHON_HOME=$PYTHON_INSTALLATION_FOLDER/3.11.`ls $PYTHON_INSTALLATION_FOLDER | grep '^3\.11\.[0-9]\+$' | cut -c6- | sort -n | tail -n1`/x64
echo 'export JAVA_HOME=/C/Program\ Files/OpenJDK/`ls /C/Program\ Files/OpenJDK`' >> ~/.bash_profile
echo 'export PYTHON_HOME='$PYTHON_HOME >> ~/.bash_profile
echo 'export VISUAL_STUDIO_PATH="/C/Program Files (x86)/Microsoft Visual Studio/2017"' >> ~/.bash_profile
echo 'export INNO_SETUP_HOME="/C/Program Files (x86)/Inno Setup 6"' >> ~/.bash_profile
echo 'export PATH=$PYTHON_HOME:$PYTHON_HOME/Scripts:$GITHUB_WORKSPACE/msys64/mingw64/bin:$GITHUB_WORKSPACE/bin/node:/mingw64/bin:/usr/bin:$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
export WEBOTS_HOME=$GITHUB_WORKSPACE
Expand Down Expand Up @@ -110,18 +107,15 @@ jobs:
- uses: msys2/setup-msys2@v2
with:
update: false
- name: Install Visual Studio 10 and OpenJDK 18
- name: Install OpenJDK 18
shell: powershell
run: |
choco install -y openjdk --version=18.0.2
choco install -y visualcpp-build-tools
run: choco install -y openjdk --version=18.0.2
- name: Install Webots Compilation Dependencies
run: |
export PYTHON_INSTALLATION_FOLDER=/C/hostedtoolcache/windows/Python
export PYTHON_HOME=$PYTHON_INSTALLATION_FOLDER/3.11.`ls $PYTHON_INSTALLATION_FOLDER | grep '^3\.11\.[0-9]\+$' | cut -c6- | sort -n | tail -n1`/x64
echo 'export JAVA_HOME=/C/Program\ Files/OpenJDK/`ls /C/Program\ Files/OpenJDK`' >> ~/.bash_profile
echo 'export PYTHON_HOME='$PYTHON_HOME >> ~/.bash_profile
echo 'export VISUAL_STUDIO_PATH="/C/Program Files (x86)/Microsoft Visual Studio/2017"' >> ~/.bash_profile
echo 'export INNO_SETUP_HOME="/C/Program Files (x86)/Inno Setup 6"' >> ~/.bash_profile
echo 'export PATH=$PYTHON_HOME:$PYTHON_HOME/Scripts:$GITHUB_WORKSPACE/msys64/mingw64/bin:$GITHUB_WORKSPACE/bin/node:/mingw64/bin:/usr/bin:$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
export WEBOTS_HOME=$GITHUB_WORKSPACE
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/test_suite_windows_develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,18 +55,15 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Visual Studio 10 and OpenJDK 18
- name: Install OpenJDK 18
shell: powershell
run: |
choco install -y openjdk --version=18.0.2
choco install -y visualcpp-build-tools
run: choco install -y openjdk --version=18.0.2
- name: Install Webots Compilation Dependencies
run: |
export PYTHON_INSTALLATION_FOLDER=/C/hostedtoolcache/windows/Python
export PYTHON_HOME=$PYTHON_INSTALLATION_FOLDER/3.11.`ls $PYTHON_INSTALLATION_FOLDER | grep '^3\.11\.[0-9]\+$' | cut -c6- | sort -n | tail -n1`/x64
echo 'export JAVA_HOME=/C/Program\ Files/OpenJDK/`ls /C/Program\ Files/OpenJDK`' >> ~/.bash_profile
echo 'export PYTHON_HOME='$PYTHON_HOME >> ~/.bash_profile
echo 'export VISUAL_STUDIO_PATH="/C/Program Files (x86)/Microsoft Visual Studio/2017"' >> ~/.bash_profile
echo 'export INNO_SETUP_HOME="/C/Program Files (x86)/Inno Setup 6"' >> ~/.bash_profile
echo 'export PATH=$PYTHON_HOME:$PYTHON_HOME/Scripts:$GITHUB_WORKSPACE/msys64/mingw64/bin:$GITHUB_WORKSPACE/bin/node:/mingw64/bin:/usr/bin:$JAVA_HOME/bin:$PATH' >> ~/.bash_profile
export WEBOTS_HOME=$GITHUB_WORKSPACE
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/tests_sources.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-14, windows-2019]
os: [ubuntu-22.04, macos-14, windows-2022]
python: [3.9]
include:
- os: ubuntu-22.04
DEPENDENCIES_INSTALLATION: "wget https://github.com/danmar/cppcheck/archive/refs/tags/2.14.2.tar.gz; tar -xf 2.14.2.tar.gz -C ~/; mkdir -p ~/cppcheck-2.14.2/build; cd ~/cppcheck-2.14.2/build; cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..; cmake --build . --config RelWithDebInfo; export PATH=~/cppcheck-2.14.2/build/bin:$PATH"
- os: macos-14
DEPENDENCIES_INSTALLATION: "brew tap-new --no-git $USER/local-cppcheck; brew extract --version=2.14.2 cppcheck $USER/local-cppcheck; brew install [email protected]; brew tap-new --no-git $USER/local-clang-format; brew extract --version=14.0.0 clang-format $USER/local-clang-format; brew install [email protected]"
- os: windows-2019
- os: windows-2022
DEPENDENCIES_INSTALLATION: "curl -LJO https://github.com/danmar/cppcheck/releases/download/2.14.1/cppcheck-2.14.1-x64-Setup.msi; powershell 'Start-Process msiexec -ArgumentList \"/quiet\",\"/passive\",\"/qn\",\"/i\",\"cppcheck-2.14.1-x64-Setup.msi\" -Wait'; choco uninstall -y llvm; choco install -y llvm --version=14.0.0; export PATH=$PATH:\"/c/Program Files/Cppcheck:/c/Program Files/LLVM/bin\""
runs-on: ${{ matrix.os }}
if: needs.job-skipper.outputs.should_skip != 'true'
Expand All @@ -52,7 +52,7 @@ jobs:
echo "job_needed=true" >> "$GITHUB_OUTPUT"
id: os_check
- name: Set git to use LF
if: matrix.os == 'windows-2019'
if: matrix.os == 'windows-2022'
run: |
git config --global core.autocrlf false
git config --global core.eol lf
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/tests_sources_with_latest_cppcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-14, windows-2019]
os: [ubuntu-22.04, macos-14, windows-2022]
python: [3.9]
include:
- os: ubuntu-22.04
DEPENDENCIES_INSTALLATION: "sudo apt -y install cppcheck"
- os: macos-14
DEPENDENCIES_INSTALLATION: "brew install cppcheck; brew tap-new --no-git $USER/local-clang-format; brew extract --version=14.0.0 clang-format $USER/local-clang-format; brew install [email protected]"
- os: windows-2019
- os: windows-2022
DEPENDENCIES_INSTALLATION: "choco install -y cppcheck || true; choco uninstall -y llvm; choco install -y llvm --version=14.0.0; export PATH=$PATH:\"/c/Program Files/Cppcheck:/c/Program Files/LLVM/bin\""
runs-on: ${{ matrix.os }}
if: needs.job-skipper.outputs.should_skip != 'true'
Expand All @@ -48,7 +48,7 @@ jobs:
echo "job_needed=true" >> "$GITHUB_OUTPUT"
id: os_check
- name: Set git to use LF
if: matrix.os == 'windows-2019'
if: matrix.os == 'windows-2022'
run: |
git config --global core.autocrlf false
git config --global core.eol lf
Expand Down
7 changes: 7 additions & 0 deletions docs/css/webots-doc.css
Original file line number Diff line number Diff line change
Expand Up @@ -917,6 +917,13 @@ body {
.webots-doc g foreignObject div a {
font-family: Tahoma, Arial, sans-serif; /* mermaidjs is quite sensitive to the font used and it's size */
font-size: 100%;
text-decoration: underline;
}

.webots-doc g foreignObject div a:active,
.webots-doc g foreignObject div a:focus,
.webots-doc g foreignObject div a:hover {
text-decoration: underline;
}

.webots-doc .mermaid {
Expand Down
16 changes: 8 additions & 8 deletions docs/reference/camera.md
Original file line number Diff line number Diff line change
Expand Up @@ -791,16 +791,16 @@ namespace webots {
from controller import Camera

class Camera (Device):
def getImage(self):
def getImageArray(self):
def getImage(self) -> bytes:
def getImageArray(self) -> list[list[list[int]]]:
@staticmethod
def imageGetRed(image, width, x, y):
def imageGetRed(image: bytes, width: int, x: int, y: int) -> int:
@staticmethod
def imageGetGreen(image, width, x, y):
def imageGetGreen(image: bytes, width: int, x: int, y: int) -> int:
@staticmethod
def imageGetBlue(image, width, x, y):
def imageGetBlue(image: bytes, width: int, x: int, y: int) -> int:
@staticmethod
def imageGetGray(image, width, x, y):
def imageGetGray(image: bytes, width: int, x: int, y: int) -> int:
# ...
```

Expand Down Expand Up @@ -895,8 +895,8 @@ Here is an example:

<!-- -->

> **Note** [Python]: The `getImage` function returns a `string`.
This `string` is closely related to the `const char *` of the C API.
> **Note** [Python]: The `getImage` function returns a byte array (`bytes`).
This `bytes` is closely related to the `const char *` of the C API.
`imageGet*`-like functions can be used to get the channels of the camera Here is an example:

> ```python
Expand Down
18 changes: 18 additions & 0 deletions docs/reference/changelog-r2025.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,26 @@
# Webots R2025 Change Log

## Webots R2025b
- Enhancements
- `WbCamera`, `WbContactProperties`, `WbMotor`, and `WbSkin` will now locally-download their resources if-necessary (like other nodes) when steaming or exporting to `w3d` ([#6856](https://github.com/cyberbotics/webots/pull/6856)).
- Added implementations of `wbu_system_tmpdir` and `wbu_system_webots_instance_path` to the MATLAB API ([#6756](https://github.com/cyberbotics/webots/pull/6756)).
- Added missing import libraries on Windows ([#6753](https://github.com/cyberbotics/webots/pull/6753)).
- Added some missing function definitions to the existing Windows libraries ([#6753](https://github.com/cyberbotics/webots/pull/6753)).
- Cleanup
- **Removed `libController.a` and `libCppController.a` libraries on Windows. Please use `Controller.lib` and `CppController.lib` instead ([#6753](https://github.com/cyberbotics/webots/pull/6753)).**
- Bug Fixes
- Fixed a bug preventing the `webots-controller` executable from running on arm-based mac devices ([#6806](https://github.com/cyberbotics/webots/pull/6806)).
- Fixed a typo in the `controller.PositionSensor` Python class: the `motor` property code was calling the wrong method ([#6825](https://github.com/cyberbotics/webots/pull/6825)).
- Fixed a bug causing Webots to crash when multiple sounds were used with a [Speaker](speaker.md) node ([#6843](https://github.com/cyberbotics/webots/pull/6843)).
- Fixed a bug causing the "Reload/Reset" buttons in the controller recompilation popup to not work on Windows ([#6844](https://github.com/cyberbotics/webots/pull/6844)).
- Fixed resolution of relative paths when converting protos to their base nodes ([#6856](https://github.com/cyberbotics/webots/pull/6856)).
- **As a result of this change, relative paths that are not within a Webots-recognized resource field (ex. `url`) will no longer be updated when a proto is converted to its base nodes.** This should not affect most users.
- Fixed a bug causing `TrackWheel` nodes to lose their field values when used in a proto converted to a base node ([#6856](https://github.com/cyberbotics/webots/pull/6856)).
- Fixed a bug causing supervisors to occasionally read stale field values after the simulation was reset ([#6758](https://github.com/cyberbotics/webots/pull/6758)).
- Fixed a bug causing Webots to occasionally crash when unloading a world ([#6857](https://github.com/cyberbotics/webots/pull/6857)).
- Fixed a crash occurring when Python was not found on Windows ([#6870](https://github.com/cyberbotics/webots/pull/6870)).
- Fixed detection of physics plugins in extra projects ([#6880](https://github.com/cyberbotics/webots/pull/6880)).
- Fixed `addForceWithOffset` and `addTorque` doing the same thing as `addForce` in Python ([#6881](https://github.com/cyberbotics/webots/pull/6881)).

## Webots R2025a
Released on January 31st, 2025.
Expand Down
4 changes: 2 additions & 2 deletions include/controller/c/webots/supervisor.h
Original file line number Diff line number Diff line change
Expand Up @@ -224,10 +224,10 @@ void wb_supervisor_simulation_revert() WB_DEPRECATED; // please us
void wb_supervisor_load_world(const char *filename) WB_DEPRECATED; // please use wb_supervisor_world_load() instead
bool wb_supervisor_save_world(const char *filename) WB_DEPRECATED; // please use wb_supervisor_world_save() instead

// deprecated since Webots 8.6.0, plesae use wb_supervisor_field_remove_mf_item() instead
// deprecated since Webots 8.6.0, please use wb_supervisor_field_remove_mf() instead
void wb_supervisor_field_remove_mf_node(WbFieldRef field, int position) WB_DEPRECATED;

// deprecated since Webots 8.0.0, plesae use wb_supervisor_simulation_reset_physics() instead
// deprecated since Webots 8.0.0, please use wb_supervisor_simulation_reset_physics() instead
void wb_supervisor_simulation_physics_reset() WB_DEPRECATED;

// deprecated since Webots 8.4.0 please use wb_supervisor_movie_is_ready and wb_supervisor_movie_failed
Expand Down
2 changes: 2 additions & 0 deletions lib/controller/matlab/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,8 @@ wbu_motion_set_time.m
wbu_motion_stop.m
wbu_system_getenv.m
wbu_system_short_path.m
wbu_system_tmpdir.m
wbu_system_webots_instance_path.m
WB_STDOUT.m
WB_STDERR.m
WB_CHANNEL_BROADCAST.m
Expand Down
6 changes: 3 additions & 3 deletions lib/controller/python/controller/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,11 @@ def addForce(self, force: typing.List[float], relative: bool):
wb.wb_supervisor_node_add_force(self._ref, (ctypes.c_double * 3)(*force), 1 if relative else 0)

def addForceWithOffset(self, force: typing.List[float], offset: typing.List[float], relative: bool):
wb.wb_supervisor_node_add_force(self._ref, (ctypes.c_double * 3)(*force), (ctypes.c_double * 3)(*offset),
1 if relative else 0)
wb.wb_supervisor_node_add_force_with_offset(self._ref, (ctypes.c_double * 3)(*force), (ctypes.c_double * 3)(*offset),
1 if relative else 0)

def addTorque(self, torque: typing.List[float], relative: bool):
wb.wb_supervisor_node_add_force(self._ref, (ctypes.c_double * 4)(*torque), 1 if relative else 0)
wb.wb_supervisor_node_add_torque(self._ref, (ctypes.c_double * 3)(*torque), 1 if relative else 0)

@property
def DEF(self) -> str:
Expand Down
2 changes: 1 addition & 1 deletion lib/controller/python/controller/position_sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def brake(self):
@property
def motor(self):
from .motor import Motor
tag = wb.wb_brake_get_motor(self._tag)
tag = wb.wb_position_sensor_get_motor(self._tag)
return None if tag == 0 else Motor(tag)

@property
Expand Down
28 changes: 0 additions & 28 deletions projects/default/libraries/vehicle/c/car/car.def

This file was deleted.

30 changes: 0 additions & 30 deletions projects/default/libraries/vehicle/c/driver/driver.def

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#ifndef MAZE_DEFINITION_H
#define MAZE_DEFINITION_H

#include "boolean.h"
#include <stdbool.h>
#include "linked_list.h"
// enum
typedef enum { North, South, East, West, None } Orientation;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

#include "round_manager.h"

#include "boolean.h"
#include <stdbool.h>
#include "helper.h"

#include <math.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <stdlib.h>
#include <string.h>

#include "boolean.h"
#include <stdbool.h>
#include "helper.h"
#include "parameters.h"
#include "texture_generator.h"
Expand Down
Loading
Loading