The RobotPy Websim is a web based alternative to the existing pyfrc simulator. It features interfaces for many of the objects in the WPILib and CTRE libraries:
The websim uses Matter.js, a 2D rigid body physics engine, which will allow users to create robots with end effectors that can interact with game pieces and other objects. At the moment the websim only comes with a topdown view of a simple rectangular robot in an empty field, but it shouldn’t be too difficult to add objects, end effectors, or a side profile simulation of the robot with a bit of knowledge of how the Matter.js library works. Additional features will be added in the future to make this easier to do.
The websim is also meant to be extensible, so if it’s missing any features you have the option to add your own modules that can be added to the interface by creating a Riotjs tag. Documentation with details on how to create extensions will be added in the near future. After installing the websim, the simulator is launched via your robot.py file using the following command:
python3 robot.py websim
The websim is available via pypi and is easily installed via pip using the following command:
pip install robotpy-websim --pre
Documentation on the websim can be found here: https://robotpy-websim.readthedocs.io/en/latest/