After figuring out the motor protocol and how to control the stewart platform, we could finally start to give the phones some personality and movement.
We started by writing a simple linear movement engine that basically just picked some positions based on a couple of parameters like distance and which axes to rotate and translate. The speed and how many times it repeats the same movement are also parameters for this engine. It’s simple and it looks kind of robotic:
In order to get more smooth and natural-looking transitions, we decided to integrate some Perlin Noise into the movement. We used a simple 3-dimensional flow field simulator, where Perlin Noise is used to determine the speed and the direction of the next move at any given time and location. We first simulated the algorithm using Processing, in order to refine some parameters:
Then, implemented it in Python, and tested it on the actual platform:
The previous video only shows the effect of the Perlin noise flow field on the translation parameters (how the platform moves in the x, y and z planes), but it doesn’t show the effects on rotation (how it pitches, yaws and rolls). This video shows the effects of the Perlin noise on rotation as well as translation:
After adjusting the Perlin noise and the flow field parameters, and picking a slower overall speed, we can get the movement to look something like this: