Hello, I am a student who studies in the South of Korea.
I was trying to solve the double pendulum problem by simulating it on Unity without using a pendulum equation.
So I started with a single pendulum movement.
A single pendulum starts at 180 degrees when there’s no friction, then it has to reach 180 degrees and move permanently.
But the pendulum I created stops without reaching 180 degrees.
I’d appreciate it if you could take a look at what I made and let me know where the problem is.
I copied the tag, but it wasn’t possible.
I’m not interested in using scripts.
5924543–633206–GOMCAM 20200601_1500250506.zip (830 KB)
It can’t reach 180° because your pendulum has a mass, so when swinging past 90°, the speed it has accumulated has to compete with the gravity acceleration.
Edit : nvm I’m stupid 
It should reach the 180 naturally. Since there is not friction or drag.
The problem is probably with physics engine and precision of equations. It is a discrete math after all.
Btw. try to use HingeJoint2d
Physics runs at the Fixed Timestep set in the Project Settings > Time > Fixed Timestep which defaults to 50hz. This means your “pendulum” is stepping that motion not as a continuous curve but as discrete linear steps. This reduces the precision of the simulation but is fast. Increasing the frequency to something crazy like 1Khz (0.001) will greatly increase the resolution of those steps but at a cost of CPU time but again, it’s still a discrete approximation of the continuous movement you’re thinking about. I would not recommend running physics at these frequencies. Also, the 2D physics engine is Box2D which uses a Semi-implicit Euler solver which is fast and produces stable results however it has its limitations.
Personally I wouldn’t use physics for the movement of this or at least not use it without using a script to ensure the correct energy conservation. Some devs animate them, some use a script to control it i.e. a HingeJoint2D with limits and a motor that flips direction when it hits those limits via HingeJoint2D.limitState.
2 Likes