Forum Navigation
Please to create posts and topics.

Issues with Simulations Producing Different Results


I recently noticed that sometimes when running the exact same simulation in Vortex Studio (same Python script for control, same parameters, same initial conditions, etc.) I sometimes get significantly different results. It may be coincidental, but I noticed the largest discrepancies when turning on my computer and running my first simulation of the day. However, I also sometimes recover results that differ slightly, but it is still confusing behaviour to me.

I am using Vortex Studio 2020b. Has anyone else encountered an issue like this?



Vortex is supposed to be pretty much deterministic unless you are playing around with the various parameters on the Dynamics module, like the solver parameters.

But without any more context, we cannot understand what is happening to your simulation.

First, you should update to the latest available release. It would also help if you can narrow down the problem as much as possible.

Then, if you still have issues, please provide as much information as possible, like answers to these, but not limited to, questions:

Which application are you using to run Vortex?
What are you simulating?
What do mean by "same Python script for control, same parameters, same initial conditions"?
Is your simulation stable?
Are you running at a fixed frame rate? Are you using the systems resources intensively?
Aside from Vortex, what else is running on the PC.


Hi Falguni,

Thank you for your response. I just updated to version 2022.9 and I am still having issues with indeterministic behaviour.

  • My simulation is a satellite equipped with a 1DoF robotic arm using only a prismatic joint (modelled as a prismatic constraint). It is attempting to mate the end of the robotic arm with an installation port on a fixed body (set to static). During this simulation there is contact between the two parts for the majority of the simulation.
  • I am using Vortex Studio Editor to run the simulations. I use a Python script for computing control inputs which are applied to the constraint  and the main satellite part.
  • The problem that I am having is that I run the simulation, press stop in the editor, then rerun the simulation, I end up with different results.
  • The simulation is stable
  • During a simulation run, the computer is not using too many of its resources, ~20% CPU usage, ~50% GPU usage, and ~35% RAM usage
  • I am not running at a fixed frame rate, I have the Synchronization Mode option set of "Sync Off"
  • Aside from Vortex, I typically have Google Chrome, MATLAB, and PyCharm running

Before updating (when I was using version 2020b) I found that I could recover the same results from a simulation if, following the first run, I closed Vortex Studio, reopened the program, then reran the simulation. However, after updating that is no longer the case. I recover different results regardless if I freshly open Vortex, or simply run simulations in succession.



Try to remove components from your simulation until your get a simulation that is deterministic and find the component that cause this instability. We suspect that the script have something to so with this. You said that the script compute control inputs. Does the script has outputs that are connected to the inputs and the scripts computes new outputs all the time or are you manipulating inputs directly using the script?  The Vortex Editor does not restore inputs on stop to allow tweaking them during the simulation. There is an option in the Editor, under the simulation tab, to restore all values on stop.




Hi Rita,

Thanks for the reply.

The issues seem to arise when contact occurs between the two parts. Could there be an issue with the contact geometries or something like that?

The script computes new control inputs every 50 simulation steps and continues to apply the previously computed values over the following 50 steps. For the prismatic joint, the force is applied using:


p1.inputLinearCoordinate.motor.minimumForce.value = u1

p1.inputLinearCoordinate.motor.maximumForce.value = u1


where p1 is the name of the joint and u1 is the computed force. For the spacecraft body, forces and torques are applied as:


scBodyPart.addForceAtRelativePosition(xThrusterForceVec, xThrusterPosition)



I had the option to restore all values on stop set and was still getting anomalous results. Any suggestions on how to proceed? Thank you, Mitchell


You will need to debug your content to find where this inconsistency is coming from. Try to remove components from your simulation until you get a simulation that is deterministic and find the component that causes this instability. We suggest you start by removing the script. Each time you stop, please ensure that your inputs and parameters are the same as they were last time before you start again. Different inputs will lead to different results.





I am still having this non-deterministic behaviour. I have recreated each part of my simulation from scratch, rewrote the Python control script and it is still occurring. To recap: When I run the same simulation back to back without closing Vortex between runs, I recover different results. If I close Vortex between runs, I recover the same results. This only happens if there is contact between two different assemblies; self-collisions do not cause this behaviour.

Would it be possible to send my model to CM Labs to have someone take a look at it?


Here is an important announcement for customers with a Vortex Studio account:

Please be notified that CM Labs has decided to cease updating the Vortex Studio Forum as well as the legacy Vortex Studio Documentation. As a result, these resources will become unavailable to users by January 30th, 2023.

If you still require legacy documentation, we recommend saving backups of frequently visited pages. The team will always be accessible if you have any questions or need help regarding your Vortex Studio licensed software. You can also find the most recent documentation on Vortex Studio here.

Don't hesitate to get in touch with us via the form on this page directly from now on.


Best regards, The CM Labs Team