Canvas.setpenopacity(0.45); 

const turtle = new Turtle();
const steps = 500; 

function walk(i) {
    const radius = 160;
    const height_speed = 1.0; 
    const rotation_speed = 0.05; 

    const angle = i * rotation_speed;
    const z = i * height_speed;
    const wave = Math.sin(i * 0.1) * 15.0;
    
    const project = (r, a, h) => [
        r * Math.cos(a) + wave,
        (r * Math.sin(a)) * 0.95 - h + 90
    ];

    const center = project(0, angle, z);
    const outer = project(radius, angle, z);
    const nextOuter = project(radius, angle + rotation_speed, z);


    turtle.penup();
    turtle.goto(center[0], center[1]);
    turtle.pendown();
    turtle.goto(outer[0], outer[1]); 
    turtle.goto(nextOuter[0], nextOuter[1]); 
    

    const stepThickness = 1.0;
    turtle.goto(nextOuter[0], nextOuter[1] + stepThickness);


    if (Math.abs(Math.sin(angle * 3.0)) > 0.9) {
        turtle.penup();
        turtle.goto(center[4], center[1]);
        turtle.pendown();
        turtle.goto(center[2], center[1] + 20); 
    }

    return i < steps;
}