The falling rectangular prism experiment was an experiment used early on in the framework's development to test basic Unity-Python communication.
The goal of the experiment is to learn the dimensions and initial rotation of a rigid body rectangular prism that would fall for the longest amount of time. Each side of the rectangular prism must have a length between 0.1 and 1 meter.
Each experiment session does not require actions from external sources (Python) while running as the rectangular prism is only influenced by gravity.
Rectangular prisms are given a reward of +1 for every update cycle they have a linear speed of greater than 0.1 m/s. If they spend more than 10 frames with a speed less than the 0.1 m/s threshold, the experiment terminates.
The learning algorithm used was a genetic algorithm with both asexual and sexual reproduction along with mutation chances.
The accompanying plot shows that over many epochs, the average performance of the top 10 performers of rectangular prisms increases rapidly after a few epochs and then converges at around 50 updates. The average score of the population shows a similar growth pattern, but converges more slowly.