I have a long, self contained, sure incorrect example of non deterministic behavior in Bullet.
I started playing with this project in 2014 and until now I can’t make it to work.
It is some kind of creatures made with bullet blocks, and a brain of neural networks that moves joints. The purpose is trying to train them until they can follow a target.
For sure I am doing something wrong but I can’t figure what is it ( I suspect about the neural network)
I tried everything I could (fixed time step, jbullet, native bullet, less neurons, simplify creatures, migrating to minie, set max accuracy, round everything to Integers, increase solver iterations, use multibody system instead of the default, change joint types, and many more changes that I forget…)
Source code is really really ugly, I didn’t expect to show it to anyone, so I wont get mad If you don’t want to check it.
In resume, It is kind of “Evolved creatures” from Karl Sims
I got a creature that moves, and some other clones that are almost identical but with some mutation on the weights of the neural net. I spawn all in an environment and evaluate who is performing better.
So I choose the best and generate other clones with some new mutations., so on and so forth.
I need the determinism to repeat the same “best” behavior in that iteration, and repeat it with some slight differences.
In the example that I have right now, I only clone creatures, with no modification, over and over again, and in every iteration, the behavior is different.
I upload the source to a tmp repository if you want to check.