RVO Agents Shaking


I have set up RVO Simulator and RVO Controller to each agen with a random priority.
Some agents go direct againts others, but others just ramp them or shakes a lot.

Why this happens?


Did you ever figure this out? I’m also having a similar problem and I can’t seem to figure it out. My RVO Controller/RichAI agents with a random wander script seem to shake whenever whenever they approach eachother head-on.

I do not know exactly.

I moved my project from 3D to 2D and removed all rigidbodies and a lot of collisions due to performance reasons. So I started again.
But I think it should be something related with:

  • Rigidbodies: Entities already have a character controller, so RB can cause strange behaviour.
  • Colliders: Maybe a collider bigger than the entity ai radius could cause something like that.
  • Priority: Check the agent RVO Controller priority. I had it by default. Now I have it randomized.

Now I only see this “shaking” when I have massive number of entities, like 80 trying to pass throught a small path (I need to notice a lot), but not when they are 20-30.

Hope it helps to you!

If you find out what is exactly causing it, please answer at this post to help others :slight_smile:

Thanks for your response. I see it almost any time 2 agents ‘bump into’ eachothers avoidance radius. I have also tried all of your suggestions but am still getting this behaviour. Perhaps there is something else to consider :expressionless:

I see that youhave joined a few hours ago, so I understand you are starting with A*.

I recommend you to “copy” the working demo project and start testing add your own scripts and customization.
And test step by step until you find what is causing it.

Thanks pepegrillo. I’ve studied those examples and I still can’t figure it out. I’m using RichAI which is supposed to have RVO support built in, whereas those examples are far more involved. I was also getting the same problem with a very minimal set up, with the WanderingAI Tutorial (Script 1). Maybe I’ll email Aron and post here once I figure out what the problem was.

EDIT: Seems aron does not have an email available and the PM system doesnt seem to work for me. I made a really minimal unity package as an example, but I figured I should not post it here as it contains code from the Pro version…

Here is another video of the problem, maybe not the best, but if you look closely you can see the shaking that occurs when two agents are on course to collide:

I see, it is a small shake. It happens to me at 2D with a GridGraph and AIPath, but I do not give importance to something so small in my minigame.
Maybe that little shake is normal.

I readed time ago a post with that problem, but that was an animation Unity related (I can not find the post).

Just wait to @aron_granberg answer, maybe he can tell us what is happening here.

admittedly, the shake is much smaller in the minimal, demo scene than it is in my actual scene. I think if I could understand the shake though, I might be able to improve it in my larger scene.


Sorry for the late answer.
In the first video it looks like a lot of shaking, more than I would have expected. The relevant variables for tweaking this would probably be the ‘agent time horizon’ setting on the RVOController and the ‘symmetry breaking bias’ on the RVOSimulator. The reason the shaking sometimes happens is (I think) that the agents cannot decide which side to pass one another on. Increasing the symmetry breaking bias will make it easier for them to decide.

The rotation of the agents that the AIPath script uses is not optimal either. It could be improved to reduce that jitter (I have some vague plans for how to do this, but I haven’t formalized them yet).

1 Like

I have played with everything but nothing is fixing it.
I have just realized that slowing the rotation speed of the agent reduces significantly the shake.

I am having this problem severely when rotation speed is like 90. Reducing rotation speed helps. The solution i think is to add damping to the rotation. Because i think every frame the rotation of the character changes very rapidly from negative to positive. If there is damping the change in rotation would be smooth out.

1 Like

Any solution for this problem?

The current beta has some improved rotation filtering. It’s not perfect, but it is usually better than the current 3.2.x branch.

1 Like