The decision to create Python toolboxes had a number of drivers.
Firstly, the growing popularity of Python

Secondly, the richness and quality of packages such as Numpy, Scipy and Matplotlib.
Thirdly, the oddness of supporting open-source Toolboxes which require proprietary software in order to run. I have a lot of respect for the folks doing GNU Octave but it was always behind MATLAB® when it came to features and open-source packages, and I never got into SciLab.
So in 2020, the first covid year, we started building a new set of Toolboxes that would allow the RVC book to be rewritten using Python rather than MATLAB®.

The first three toolboxes are loosely modelled on the corresponding MATLAB® Toolboxes, but the rewrite in a new language gave us the opportunity to fix a number of long standing limitations as well as exploiting the capabilities of the Python language. Some of the thinking behind the Robotics Toolbox is covered in this ICRA paper.
The Spatial Math Toolbox differs from the MATLAB version in that it has two layers: the base layer provides many functions that deal with Numpy arrays, whereas the top layer provides Python classes that wrap those functions. For example, a unit quaternion can be a 4-element Numpy array or a UnitQuaternion object. This allows the user to tradeoff speed for readability and maintainability. This Toolbox is now supported by The AI Institute.
The RVC book makes extensive use of Simulink® which has no equivalent in the Python world. bdsim was created to fill this gap and some of the thinking behind it is covered in this LinkedIn article.
These Toolboxes are supported by other packages such as pgraph, ANSITable, OpenCV, Open3D.
A few abortive attempts to Pythonize the toolbox were made over the preceding decade.
