This is an overview of the state of Monty’s 3D environment simulators as of December, 2024. It discusses existing constraints and highlights where contributions would be particularly helpful.
At a high level, the Monty framework consists of an experiment which coordinates the flow of data between Monty and a simulated environment.
As a sensorimotor learning system, Monty continuously generates motor output during training and inference. The simulated environment processes this motor output and provides sensory input back to Monty.
The following Wardley Map depicts Monty’s general dependency on simulators. If Wardley Maps are new, just ignore the special symbols and the Evolution axis.
Specifically, as of December, 2024, Monty depends on the Habitat Sim simulator.
The Habitat Sim version that Monty depends on is version 0.2.2. The latest available version is 0.3.2.
We’ll return to Habitat Sim shortly, but first, a quick digression on the state of Python version support as of December, 2024.
Depicted are the Python versions from 3.8 through 3.14. The version 3.8 is now obsolete and, as a result, shown in the Custom stage of Evolution. Versions 3.9 through 3.13 are actively supported and shown in the Commodity stage of Evolution. The 3.14 version is in development and will be released in October, 2025, when it will enter the Commodity stage of Evolution. Lastly, version 3.9 is shown becoming obsolete and entering the Custom stage in October, 2025.[1]
Back to Habitat Sim, it is noteworthy to highlight a dependency constraint between the Habitat Sim versions and the Python versions. The Habitat Sim version 0.2.2 is coupled to the Python 3.8 Application Binary Interface (ABI). The latest Habitat Sim version 0.3.2, is coupled to the Python 3.9 ABI. These constraints are depicted in the figure below.
In summary, Monty depends on Habitat Sim for a simulated environment. The version of Habitat Sim used by Monty depends on an obsolete Python version 3.8. Upgrading to the latest Habitat Sim version will couple Monty to Python 3.9, which will be obsolete in October, 2025.
There is interest from the Thousand Brains Project community to run Monty on Windows OS. This is challenging because Habitat Sim does not run on Windows OS. Additionally, Monty code has unintentional coupling to Habitat Sim that effectively limits viable operating systems on which Monty runs to Linux and Mac OS.
While the work to remove the unintentional coupling to Habitat Sim is ongoing, even with the coupling removed, there is no example of support for a simulator that runs on Windows OS.
I believe it is time to consider a simulator that runs on Windows OS and does not limit Monty to the oldest Python versions.
Some available simulators are listed in the figure below: PyBullet, MuJoCo, Webots, Unreal Engine, NVIDIA Isaac Sim, Unity.
Of additional note is the Robot Operating System (ROS) which can serve as a common interface to some of the simulators listed.
Among these options, I think MuJoCo is the most promising to evaluate. As I don’t have direct experience with it, any knowledgeable advice or guidance will be helpful. If you want to take the lead, I can contribute to a Request For Comments (RFC) where we’d get into evaluation and integration details. A prototype implementation would also be helpful.
If you think Monty should support a different simulator, that will be helpful as well. Supporting more than one simulator will serve as a forcing function to ensure no unintentional coupling.
Status of Python versions. Python Developer’s Guide. Retrieved December 8, 2024, from Status of Python versions ↩︎