Some of the examples (the cloth and the tree) seem to be based off Sub Protocol's verlet-js demonstration [1], which were on Hacker News a while back (HN discussion [2]). There was a similar issue with angular momentum not being conserved on those examples too.
This is because each "atom" is of a considerable size to the larger clumps and imparts its excess momentum as angular momentum when it joins a clump. "Atoms" that are rotating around a clump in the opposite direction tend to skip off, and thus don't join and slow the rotation. I think.
If you restart the simulation a few times, you should eventually get something where everything forms into one clump with low initial angular momentum. If you keep watching from that point, you'll see the clump's rotation accelerate entirely on its own.
I'm not entirely sure on the cause, but it does seem to be a simulation flaw.
You're right. At a guess, as collisions appear to be perfectly elastic particles inside a clump are trying to move and instead of their shifting being dampened, it's causing the whole structure to begin to rotate which causes more in-clump collisions causing... until it spins apart. Sound reasonable?
small niggle. what is a verlet constraint? (rhetorical)
whilst its obvious that you have just discovered verlet integration and the relaxation method of applying constraints - because everyone goes off and writes a physics engine at this point - i only think i know what you mean because i have assumed this.
are these length constraints, angle constraints etc?
still... no matter how common and unexciting this is for me, its always cool to play with physics simulations for five minutes. thanks for sharing. :)
Comments
Some of the examples (the cloth and the tree) seem to be based off Sub Protocol's verlet-js demonstration [1], which were on Hacker News a while back (HN discussion [2]). There was a similar issue with angular momentum not being conserved on those examples too.
[1] http://subprotocol.com/verlet-js/
[2] https://news.ycombinator.com/item?id=5580596
Something seems off about the simulation - once you get a big clump, it starts spinning faster and faster until it tears itself apart again.
Ignoring that, it's pretty neat - and runs decently fast as well.
I noticed that angular momentum seems to be an unconserved quantity as well. I would not want to be an astronaut in the universe simulated here!
Yeah, this is almost a planetary cloud coming together.
But I suppose the collisions are (too) elastic, also there's the issue with the spinning.
But still you can see several concepts in action, and sometimes you get a big planet with a moon orbiting it.
This is because each "atom" is of a considerable size to the larger clumps and imparts its excess momentum as angular momentum when it joins a clump. "Atoms" that are rotating around a clump in the opposite direction tend to skip off, and thus don't join and slow the rotation. I think.
No, that's not it.
If you restart the simulation a few times, you should eventually get something where everything forms into one clump with low initial angular momentum. If you keep watching from that point, you'll see the clump's rotation accelerate entirely on its own.
I'm not entirely sure on the cause, but it does seem to be a simulation flaw.
You're right. At a guess, as collisions appear to be perfectly elastic particles inside a clump are trying to move and instead of their shifting being dampened, it's causing the whole structure to begin to rotate which causes more in-clump collisions causing... until it spins apart. Sound reasonable?
small niggle. what is a verlet constraint? (rhetorical)
whilst its obvious that you have just discovered verlet integration and the relaxation method of applying constraints - because everyone goes off and writes a physics engine at this point - i only think i know what you mean because i have assumed this.
are these length constraints, angle constraints etc?
still... no matter how common and unexciting this is for me, its always cool to play with physics simulations for five minutes. thanks for sharing. :)
The tearable cloth demo is impressive!
My favorite one was "Supermarket catastrophe".
Been wondering about where I can get a physics engine to simulate wind. I want to create a wind turbine simulator.
I had to run in Chrome, as FireFox reported 10 FSP while actually displaying less than 1 fps. Nice.
This is really cool.
I'd like a 3d version to combine with three.js.
drag "Fruitcake on wheels" like crazy -> get messed up
It took me a while to realize I could play with the objects. It got even more interesting once I realized I could do that.
You can really torture those poor trees...