Another approach would be to make the purple circles collision AG and the purple door collision all except AG. The brown circles would then be collision BG and the brown door collision all except BG. And so on. This is a moot point since your scene does the job well.
I made the following modifications to the scene:
1. Changed the car body collision layer to B.
2. Added (2) lasers with collision layer B.
3. Put first laser above and pointing down to track at 140 meter mark.
4. Put second laser same level and direction but slightly beyond end of water section.
5. Added (e)=>{Sim.timeFactor = 0.1} to onLaserHit script of 1st laser.
6. Added (e)=>{Sim.timeFactor = 1.0} to onLaserHit script of 2nd laser.
This creates a slow motion effect as the car goes thru the water.
Feel free to use this in your scene. I could upload the modified scene but I did not want to steal your idea.
Nice. Works well. Might be better if operated with arrow keys (up/down for red lever, left/right to spin), but this may be easier said than done for the spinning operation.
Worked for me only when hinge Impulse Break Limit set between 1.10 and 1.60 Ns. Worked 100% of the time between these limits. Nice solution. This one will be hard to beat.
I also liked shamus030 solution to the same challenge because of its simplicity.
It may have to do with the speed of the computers. My computer is AMD Athlon, 2 GHz, 512 RAM, with XP Pro SP3. Your scene will also work OK for me if I set Sim.Frequency to 500. So reducing the spring rate or increasing the frequency causes the non-working scene to work on my computer.
Another scripting approach would be to place "(e)=>{scene.my.green = e.geom.color(1)}" in the green laser onLaserHit event. Then you would not need the multiple "(e)=>{scene.my.green = color(1)}" in the box onHitByLaser event. Likewise for other colors.
Variables are not being saved with program. Rename variables Scene.my.water1 and Scene.my.water2. Put {Scene.my.water1} in collideWater property box in script menu for water1 box. Do similar for water2 box.
1. Generate the curve using mathematical equations on a spreadsheet. Create a simple polygon in Algodoo and save as .phn. Open .phn with text editor and replace coordinates of simple polygon with those from spreadsheet.
2. Add laser and block whereby laser hits block at center of tracer. Use Print command to output LaserHit location to console (with added formatting for polygon). Cut and paste from console to .phn file.
3. Copy screen. Save area that has tracer paths. Erase parts you don't want. Make background transparent. Save as .png. Load as texture. Then use "Generate Geometry From Texture" function in Algodoo.
4. Save screen shot of tracer path as bmp. Use bmp2phn program.
Not yet. Valve box scripts need "collideWater = {scene.my.waterx}" (x=1 or 2). You may have to initialize scene.my.waterx = true in the console first if "collideWater = {scene.my.waterx}" does not stick. I will delete this comment when you fix it.