I am a master's student at the physics department of the Goethe University Frankfurt am Main. I started to learn about Webots, which I intend to use for my master's thesis. I am at the very beginning, so I am still figuring out how different details of the program work.

I encountered an issue, which source I cannot find. In the simplest simulations, like a ball bouncing off the ground, or a pendulum, there seems to be energy loss. All the parameters responsible for damping and friction (in "contact properties" and "damping" node) are zero. The elasticity ("bounce" node) is set to 1, so 100% elasticity. Nevertheless, the systems lose energy. Can it be that this happens purely because the time is discrete? For example, when the ball hits the wall, its velocity after the bounce is equal to the one a time step before the bounce? So it wouldn't be the exact velocity that a real ball would have in the moment it reaches the wall, but a short moment before? Do my questions make any sense to You? I am new to the world of simulations in general, so I don't know if this is a common issue.

  • $\begingroup$ are you talking about the loss of potential energy in a simulation? ... this site is not a forum ... it is a question and answer site ... please ask one clear, focused question $\endgroup$
    – jsotola
    Dec 6, 2022 at 20:58
  • $\begingroup$ Welcome to stackexchange @dražen-hukić! Please check the guidelines to ask a good question. That will make it easier for others to understand your need and to answer you. $\endgroup$ Dec 7, 2022 at 7:39
  • $\begingroup$ I will reformulate the question with a concrete example. My world consists only of a rectangular floor and a solid with a shape of a ball. There is no friction between the ball and the floor, there is also no damping added to the system. The “bounce” value is set to 1, which means that the ball hits the floor completely elastically. When I start the simulation, I expect the ball to bounce endlessly, without any energy loss. But, that does not happen, the ball losses some energy every time it hits the floor, that is, it jumps lower. My question is, where is the energy loss? $\endgroup$ Dec 7, 2022 at 15:10
  • $\begingroup$ @DraženHukić this info does not belong in a comment ... please edit your question instead $\endgroup$
    – jsotola
    Dec 7, 2022 at 19:17
  • $\begingroup$ maybe the floor has some elasticity $\endgroup$
    – jsotola
    Dec 7, 2022 at 19:19

1 Answer 1


Discretization of time will cause energy losses in simulations due to numerical errors, as the simulation cannot perfectly replicate the continuous dynamics of a system. This can be addressed by using more sophisticated numerical integration methods that are more accurate. In Webots, you can try using the Runge-Kutta numerical integration method, which should help reduce the energy losses. You can find more information about the different integration methods in the Webots documentation. Additionally, you may want to look into using a more realistic model of friction and damping, which can help reduce the energy losses due to discretization.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.