I am a maths person and definitely not a physics person, so maybe this is taught somewhere and I haven't learned it. I am trying to understand and figure out how to simulate rolling an object on a flat horizontal surface. In the case of rolling a circle, I understand that fine, it's essentially translating (moving) the circle horizontally while rotating the perimeter such that after one cycle of the parameter, the circle translates by the perimeter (length) of the circle. However, I am thinking about how this can be derived or generalised to e.g. ellipses and other stuff. I thought about another perspective which is a polygon, where you essentially rotate the entire shape around the rightmost contact point with the ground until there's a second contact point, then you repeat this process. However, it doesn't really work with round objects since there's only one contact point at a time. I suppose the derivation process for the circle equations would then be to imagine the circle having two infinitesimally closed contact points and do the rotating process, but if someone can explain it better it would be great. For example, what would the (differential?) equations be for the ellipse that starts at $(x_0, y_0) = (2\cos\theta, 1 + \sin\theta)$ where $\theta \in [0, 2\pi]$ and rolling the ellipse (to the right) on $y = 0$? Thanks!

(Also, the "speed" of the object doesn't really matter, I don't care about that part, just "where will the ellipse be if e.g. the center of the ellipse is at $x = 100$)

  • $\begingroup$ Why do you want to perform this simulation? Also, do you know how to program a computer? If so, what language? $\endgroup$ Commented May 17, 2023 at 23:51
  • $\begingroup$ @DavidWhite I wanted to look at the locus of the center of a rolling object, eg an ellipse or a rounded square. I am just curious hahaha. I do program in Python and C++ and few other languages (and a bit of Mathematica) $\endgroup$
    – Gareth Ma
    Commented May 17, 2023 at 23:54
  • 1
    $\begingroup$ As long as there is no slip the total length of the curve that the contact point describes on both the surface and the shape of the rolling object is the same. This is not a physical situation, of course. In reality both surfaces will deform and there will be an actual area of contact. The deformation will not be energy conserving from a purely mechanical point of view (tires are being heated by rolling and there is roll resistance). Things get significantly more complicated with slip. $\endgroup$ Commented May 17, 2023 at 23:58
  • $\begingroup$ @GarethMa, you imply that you want an algorithm or pseudo-code that will allow you to find your answer for any given shape. Is that correct? And note: I don't see this as strictly being a physics problem, so this may not be the correct forum for your question. $\endgroup$ Commented May 18, 2023 at 0:06
  • $\begingroup$ @FlatterMann Sorry for not being clear, but yes I meant that there is no slip. So just a pure object rolling along a horizontal surface. $\endgroup$
    – Gareth Ma
    Commented May 18, 2023 at 1:20

1 Answer 1


enter image description here

The equations of motion \begin{align*} &m\,\ddot{x}=-F_c\\ &I_E\,\ddot{\varphi}=\tau-F_c\,r_y(\varphi)-N\,r_x(\varphi)\quad,N=m\,g \end{align*} and the non holonomic constraint equation for the rolling condition. \begin{align*} &\dot{x}-r_y(\varphi)\,\dot\varphi=0\quad\Rightarrow\\ &\ddot{x}-r_y(\varphi)\,\ddot\varphi-\frac{d\,r_y}{d\varphi}\dot\varphi^2=0 \end{align*}

you obtain three equations for the unknowns $~\ddot{x}~~\ddot{\varphi}~,F_c~$


first we have to create a lookup table $~r_x=r_x(\varphi)~,r_y=r_y(\varphi),0\le\varphi\le 2\pi~$ from here we can obtain $~\frac{dr_y}{d\varphi}~$

now we can do the numerical simulation of the differential equations $~\ddot x~,\ddot\varphi~$

enter image description here

  • $\begingroup$ Thanks a lot, I will go through it first :) $\endgroup$
    – Gareth Ma
    Commented May 18, 2023 at 17:53