Before playing the game, I was thinking that I could give it a rating equal to my score, but a 2/10 rating seem a little low. I will give it a higher score and then practice more.
Fruitmonger's scene was made with Algodoo v2.0.2 b13, which did not support direct manipulation of the radius. So what seemed difficult then, now appears almost trivial.
Q: Could that actually be done in the real world with a real spring?
A: Maybe. It depends on what you consider a "real spring". Here are some ideas:
1. Use a standard air cylinder (with piston). Increasing the air pressure in the cylinder increases the "spring rate" of the air.
2. Use a compression spring. Insert a "screw" that has a half-circle thread profile, and a pitch equal to the compression spring winding pitch, into one end of the compression spring. This screw can then be rotated to adjust the spring rate (fewer active coils increases the spring rate).
3. Use opposing electromagnets. Increase the current to increase the spring rate.
Reduce the plane velocity to below 0.05 and you will see the sine wave change to a saw tooth. Alternatively, you can decrease the spring rate or increase the mass until you see a saw tooth. The sine wave may also be stick-slip, but once the wave changes to a sine wave the oscillation occurs at the natural frequency of the spring mass system relatively independent of the plane velocity. I'm no expert on stick-slip, so additional comments or corrections are welcome.
It might just be your point of reference. The plane is moving left. The box is sticking to the plane during the downward slope of the saw tooth and slipping during the rising slope. The code applies static friction when the box velocity matches the plane velocity within 1%, otherwise it uses dynamic friction. In real life, stick slip is relatively independent of velocity once you get past some critical velocity. A violin does not change frequency with the speed of bowing. The screeching of chalk across the blackboard does not change much with speed.
Works well. Nicely done. This is just my personal preference, but I would select and hide all the fixjoints, remove all circle cakes, and turn off the clouds.
Very Cool. I remember seeing the term "Delay Line Memory", but never knew how it worked. The vibrating wire implementation is similar to mechanical reverb except mechanical reverb does not use feedback.
I like it; simple, looks good, works well, and is useful. It is interesting that it is implemented with hinge bend since, with compression springs, the wire is in torsion.
The dots appeared to be flashing alternately, so I "fixed" it by using color = { [1.0 - scene.my.v, 1.0 - scene.my.v, 1.0 - scene.my.v, 1.0]} for one of the dots (I'm joking).
I also used scene.my.v = (math.sin(_m * 2) + 1.0) / 2.0 for a full sine wave instead of a fully rectified sine wave.
Xray - They are 2 different waveforms. To see a plot, hinge a circle to the background, set the circle angVel = {scene.my.v}, then plot angVel vs. time. Either way, they both work fine. I'm just being picky.
Well done. Interesting illusion and code. I'm wondering if the illusion works because when you look at the center you are not focusing on the path or because we expect equal and opposite reactions when balls collide.
Algodoo only saved ascii_girl1.jpg with your scene. You may have to assign the other images to individual boxes in order for them to be saved with the scene. What I see now is ascii_girl1 blinking with only white when the other images should show up.