# No. 488 (Brown 1868): "Screw propeller. The blades are sections of a screw-thread, and their revolution in the water has the same effect as the working of a screw in a nut, producing motion in the direction of the axis and so propelling the vessel."
# Model (cm). Brown's two blades on a boss, each a piece of a screw-thread of 14 cm pitch from 1.3 to 7 cm out, on the
# shaft of a vessel (3 kg) free to move along it (a slide; its hull's own damping 12 N s/m). The engine turns the shaft in the
# vessel at 90 rpm (the only input). The water is the still sea all round (MuJoCo's fluid medium at water's density and viscosity,
# openspec add-air-wind): each piece of a blade feels it by its shape and slant (the ellipsoid model: the pressure drag and the lift
# of the water on a slanted face), so the turning blades push the water back along the shaft as a screw works in a nut and are
# pushed forward, and the vessel with them; the vessel's hull is held back by the water's drag on it (MuJoCo's inertia-box model).
# The ambient water's pressure is in that model (the blades never run dry). The water is not drawn (Brown draws none); fixed
# piles stand in it so the vessel's way shows.
# Generator: opencode-runs/water/gen488m.py (DH=12 DUR=9 CX=-41 CZ=0.5 CDX=0 CE=0 FOV=14).
number: 488
slug: screw-propeller
name: Screw propeller
brown: "Screw propeller. The blades are sections of a screw-thread, and their revolution in the water has the same effect as the working of a screw in a nut, producing motion in the direction of the axis and so propelling the vessel."
units: cm
sim:
  timestep: 0.002
  integrator: implicitfast
  iterations: 50
  duration_s: 9
  floor: false
bodies:
  - id: vessel
    shape: part
    pos: [-30, 0, 15]
    mass: 3
    color: "#5b4a3a"
    pieces:
      - {kind: poly, points: [[-54, 9], [35, 9], [38, 21], [-58, 21]], y: [-6, 6], collide: 0, color: "#5b4a3a"}   # the vessel's stern (above the screw)
      - {kind: poly, points: [[-58, 21], [38, 21], [38, 21.8], [-58, 21.8]], y: [-6.4, 6.4], collide: 0, color: "#8a6a45"}   # its gunwale
      - {kind: poly, points: [[-56.6, -1.0], [-26, -1.0], [-20, 9], [-54, 9]], y: [-0.8, 0.8], collide: 0, color: "#6d5a46"}   # the stern-post (the shaft's bearing)
  - id: screw
    shape: part
    mount: vessel
    pos: [-60, 0, 0]
    density: 8500
    color: "#8a7a62"
    pieces:
      - {kind: rod, from: [-62.2, 0, 0], to: [-57.4, 0, 0], radius: 1.3, collide: 0, color: "#7a6e5c"}   # the boss
      - {kind: rod, from: [-63.6, 0, 0], to: [-34, 0, 0], radius: 0.55, collide: 0, color: "#8f8a80"}   # the shaft
      - {kind: rod, from: [-64.2, 0, 0], to: [-63.4, 0, 0], radius: 0.85, collide: 0, color: "#8f8a80"}   # its nut
      - {kind: loft, a: [[-61.1374, 0.4605, 0.999], [-61.1374, 1.2838, 2.785], [-60.7874, 1.2838, 2.785], [-60.7874, 0.4605, 0.999]], b: [[-60.8968, 0.3502, 1.0428], [-60.8968, 0.9762, 2.9071], [-60.5468, 0.9762, 2.9071], [-60.5468, 0.3502, 1.0428]], collide: 0, sail: true}   # a piece of a blade (a section of a screw-thread)
      - {kind: loft, a: [[-60.8968, 0.3502, 1.0428], [-60.8968, 0.9762, 2.9071], [-60.5468, 0.9762, 2.9071], [-60.5468, 0.3502, 1.0428]], b: [[-60.6562, 0.2357, 1.0744], [-60.6562, 0.6572, 2.9954], [-60.3062, 0.6572, 2.9954], [-60.3062, 0.2357, 1.0744]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.6562, 0.2357, 1.0744], [-60.6562, 0.6572, 2.9954], [-60.3062, 0.6572, 2.9954], [-60.3062, 0.2357, 1.0744]], b: [[-60.4156, 0.1186, 1.0936], [-60.4156, 0.3305, 3.0488], [-60.0656, 0.3305, 3.0488], [-60.0656, 0.1186, 1.0936]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.4156, 0.1186, 1.0936], [-60.4156, 0.3305, 3.0488], [-60.0656, 0.3305, 3.0488], [-60.0656, 0.1186, 1.0936]], b: [[-60.175, 0, 1.1], [-60.175, 0, 3.0667], [-59.825, 0, 3.0667], [-59.825, 0, 1.1]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, 0, 1.1], [-60.175, 0, 3.0667], [-59.825, 0, 3.0667], [-59.825, 0, 1.1]], b: [[-59.9344, -0.1186, 1.0936], [-59.9344, -0.3305, 3.0488], [-59.5844, -0.3305, 3.0488], [-59.5844, -0.1186, 1.0936]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.9344, -0.1186, 1.0936], [-59.9344, -0.3305, 3.0488], [-59.5844, -0.3305, 3.0488], [-59.5844, -0.1186, 1.0936]], b: [[-59.6938, -0.2357, 1.0744], [-59.6938, -0.6572, 2.9954], [-59.3438, -0.6572, 2.9954], [-59.3438, -0.2357, 1.0744]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.6938, -0.2357, 1.0744], [-59.6938, -0.6572, 2.9954], [-59.3438, -0.6572, 2.9954], [-59.3438, -0.2357, 1.0744]], b: [[-59.4532, -0.3502, 1.0428], [-59.4532, -0.9762, 2.9071], [-59.1032, -0.9762, 2.9071], [-59.1032, -0.3502, 1.0428]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.4532, -0.3502, 1.0428], [-59.4532, -0.9762, 2.9071], [-59.1032, -0.9762, 2.9071], [-59.1032, -0.3502, 1.0428]], b: [[-59.2126, -0.4605, 0.999], [-59.2126, -1.2838, 2.785], [-58.8626, -1.2838, 2.785], [-58.8626, -0.4605, 0.999]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.4058, 1.6091, 2.6106], [-61.4058, 2.6411, 4.2848], [-61.0558, 2.6411, 4.2848], [-61.0558, 1.6091, 2.6106]], b: [[-61.0981, 1.2344, 2.8072], [-61.0981, 2.0261, 4.6075], [-60.7481, 2.0261, 4.6075], [-60.7481, 1.2344, 2.8072]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.0981, 1.2344, 2.8072], [-61.0981, 2.0261, 4.6075], [-60.7481, 2.0261, 4.6075], [-60.7481, 1.2344, 2.8072]], b: [[-60.7904, 0.8363, 2.9504], [-60.7904, 1.3726, 4.8426], [-60.4404, 1.3726, 4.8426], [-60.4404, 0.8363, 2.9504]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.7904, 0.8363, 2.9504], [-60.7904, 1.3726, 4.8426], [-60.4404, 1.3726, 4.8426], [-60.4404, 0.8363, 2.9504]], b: [[-60.4827, 0.4221, 3.0375], [-60.4827, 0.6929, 4.9854], [-60.1327, 0.6929, 4.9854], [-60.1327, 0.4221, 3.0375]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.4827, 0.4221, 3.0375], [-60.4827, 0.6929, 4.9854], [-60.1327, 0.6929, 4.9854], [-60.1327, 0.4221, 3.0375]], b: [[-60.175, 0, 3.0667], [-60.175, 0, 5.0333], [-59.825, 0, 5.0333], [-59.825, 0, 3.0667]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, 0, 3.0667], [-60.175, 0, 5.0333], [-59.825, 0, 5.0333], [-59.825, 0, 3.0667]], b: [[-59.8673, -0.4221, 3.0375], [-59.8673, -0.6929, 4.9854], [-59.5173, -0.6929, 4.9854], [-59.5173, -0.4221, 3.0375]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.8673, -0.4221, 3.0375], [-59.8673, -0.6929, 4.9854], [-59.5173, -0.6929, 4.9854], [-59.5173, -0.4221, 3.0375]], b: [[-59.5596, -0.8363, 2.9504], [-59.5596, -1.3726, 4.8426], [-59.2096, -1.3726, 4.8426], [-59.2096, -0.8363, 2.9504]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.5596, -0.8363, 2.9504], [-59.5596, -1.3726, 4.8426], [-59.2096, -1.3726, 4.8426], [-59.2096, -0.8363, 2.9504]], b: [[-59.2519, -1.2344, 2.8072], [-59.2519, -2.0261, 4.6075], [-58.9019, -2.0261, 4.6075], [-58.9019, -1.2344, 2.8072]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.2519, -1.2344, 2.8072], [-59.2519, -2.0261, 4.6075], [-58.9019, -2.0261, 4.6075], [-58.9019, -1.2344, 2.8072]], b: [[-58.9442, -1.6091, 2.6106], [-58.9442, -2.6411, 4.2848], [-58.5942, -2.6411, 4.2848], [-58.5942, -1.6091, 2.6106]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.6742, 3.1367, 3.9364], [-61.6742, 4.3624, 5.4745], [-61.3242, 4.3624, 5.4745], [-61.3242, 3.1367, 3.9364]], b: [[-61.2994, 2.4335, 4.406], [-61.2994, 3.3843, 6.1275], [-60.9494, 3.3843, 6.1275], [-60.9494, 2.4335, 4.406]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.2994, 2.4335, 4.406], [-61.2994, 3.3843, 6.1275], [-60.9494, 3.3843, 6.1275], [-60.9494, 2.4335, 4.406]], b: [[-60.9246, 1.6615, 4.7512], [-60.9246, 2.3107, 6.6076], [-60.5746, 2.3107, 6.6076], [-60.5746, 1.6615, 4.7512]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.9246, 1.6615, 4.7512], [-60.9246, 2.3107, 6.6076], [-60.5746, 2.3107, 6.6076], [-60.5746, 1.6615, 4.7512]], b: [[-60.5498, 0.8426, 4.9623], [-60.5498, 1.1719, 6.9012], [-60.1998, 1.1719, 6.9012], [-60.1998, 0.8426, 4.9623]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.5498, 0.8426, 4.9623], [-60.5498, 1.1719, 6.9012], [-60.1998, 1.1719, 6.9012], [-60.1998, 0.8426, 4.9623]], b: [[-60.175, 0, 5.0333], [-60.175, 0, 7], [-59.825, 0, 7], [-59.825, 0, 5.0333]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, 0, 5.0333], [-60.175, 0, 7], [-59.825, 0, 7], [-59.825, 0, 5.0333]], b: [[-59.8002, -0.8426, 4.9623], [-59.8002, -1.1719, 6.9012], [-59.4502, -1.1719, 6.9012], [-59.4502, -0.8426, 4.9623]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.8002, -0.8426, 4.9623], [-59.8002, -1.1719, 6.9012], [-59.4502, -1.1719, 6.9012], [-59.4502, -0.8426, 4.9623]], b: [[-59.4254, -1.6615, 4.7512], [-59.4254, -2.3107, 6.6076], [-59.0754, -2.3107, 6.6076], [-59.0754, -1.6615, 4.7512]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.4254, -1.6615, 4.7512], [-59.4254, -2.3107, 6.6076], [-59.0754, -2.3107, 6.6076], [-59.0754, -1.6615, 4.7512]], b: [[-59.0506, -2.4335, 4.406], [-59.0506, -3.3843, 6.1275], [-58.7006, -3.3843, 6.1275], [-58.7006, -2.4335, 4.406]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.0506, -2.4335, 4.406], [-59.0506, -3.3843, 6.1275], [-58.7006, -3.3843, 6.1275], [-58.7006, -2.4335, 4.406]], b: [[-58.6758, -3.1367, 3.9364], [-58.6758, -4.3624, 5.4745], [-58.3258, -4.3624, 5.4745], [-58.3258, -3.1367, 3.9364]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.1374, -0.4605, -0.999], [-61.1374, -1.2838, -2.785], [-60.7874, -1.2838, -2.785], [-60.7874, -0.4605, -0.999]], b: [[-60.8968, -0.3502, -1.0428], [-60.8968, -0.9762, -2.9071], [-60.5468, -0.9762, -2.9071], [-60.5468, -0.3502, -1.0428]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.8968, -0.3502, -1.0428], [-60.8968, -0.9762, -2.9071], [-60.5468, -0.9762, -2.9071], [-60.5468, -0.3502, -1.0428]], b: [[-60.6562, -0.2357, -1.0744], [-60.6562, -0.6572, -2.9954], [-60.3062, -0.6572, -2.9954], [-60.3062, -0.2357, -1.0744]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.6562, -0.2357, -1.0744], [-60.6562, -0.6572, -2.9954], [-60.3062, -0.6572, -2.9954], [-60.3062, -0.2357, -1.0744]], b: [[-60.4156, -0.1186, -1.0936], [-60.4156, -0.3305, -3.0488], [-60.0656, -0.3305, -3.0488], [-60.0656, -0.1186, -1.0936]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.4156, -0.1186, -1.0936], [-60.4156, -0.3305, -3.0488], [-60.0656, -0.3305, -3.0488], [-60.0656, -0.1186, -1.0936]], b: [[-60.175, -0, -1.1], [-60.175, -0, -3.0667], [-59.825, -0, -3.0667], [-59.825, -0, -1.1]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, -0, -1.1], [-60.175, -0, -3.0667], [-59.825, -0, -3.0667], [-59.825, -0, -1.1]], b: [[-59.9344, 0.1186, -1.0936], [-59.9344, 0.3305, -3.0488], [-59.5844, 0.3305, -3.0488], [-59.5844, 0.1186, -1.0936]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.9344, 0.1186, -1.0936], [-59.9344, 0.3305, -3.0488], [-59.5844, 0.3305, -3.0488], [-59.5844, 0.1186, -1.0936]], b: [[-59.6938, 0.2357, -1.0744], [-59.6938, 0.6572, -2.9954], [-59.3438, 0.6572, -2.9954], [-59.3438, 0.2357, -1.0744]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.6938, 0.2357, -1.0744], [-59.6938, 0.6572, -2.9954], [-59.3438, 0.6572, -2.9954], [-59.3438, 0.2357, -1.0744]], b: [[-59.4532, 0.3502, -1.0428], [-59.4532, 0.9762, -2.9071], [-59.1032, 0.9762, -2.9071], [-59.1032, 0.3502, -1.0428]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.4532, 0.3502, -1.0428], [-59.4532, 0.9762, -2.9071], [-59.1032, 0.9762, -2.9071], [-59.1032, 0.3502, -1.0428]], b: [[-59.2126, 0.4605, -0.999], [-59.2126, 1.2838, -2.785], [-58.8626, 1.2838, -2.785], [-58.8626, 0.4605, -0.999]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.4058, -1.6091, -2.6106], [-61.4058, -2.6411, -4.2848], [-61.0558, -2.6411, -4.2848], [-61.0558, -1.6091, -2.6106]], b: [[-61.0981, -1.2344, -2.8072], [-61.0981, -2.0261, -4.6075], [-60.7481, -2.0261, -4.6075], [-60.7481, -1.2344, -2.8072]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.0981, -1.2344, -2.8072], [-61.0981, -2.0261, -4.6075], [-60.7481, -2.0261, -4.6075], [-60.7481, -1.2344, -2.8072]], b: [[-60.7904, -0.8363, -2.9504], [-60.7904, -1.3726, -4.8426], [-60.4404, -1.3726, -4.8426], [-60.4404, -0.8363, -2.9504]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.7904, -0.8363, -2.9504], [-60.7904, -1.3726, -4.8426], [-60.4404, -1.3726, -4.8426], [-60.4404, -0.8363, -2.9504]], b: [[-60.4827, -0.4221, -3.0375], [-60.4827, -0.6929, -4.9854], [-60.1327, -0.6929, -4.9854], [-60.1327, -0.4221, -3.0375]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.4827, -0.4221, -3.0375], [-60.4827, -0.6929, -4.9854], [-60.1327, -0.6929, -4.9854], [-60.1327, -0.4221, -3.0375]], b: [[-60.175, -0, -3.0667], [-60.175, -0, -5.0333], [-59.825, -0, -5.0333], [-59.825, -0, -3.0667]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, -0, -3.0667], [-60.175, -0, -5.0333], [-59.825, -0, -5.0333], [-59.825, -0, -3.0667]], b: [[-59.8673, 0.4221, -3.0375], [-59.8673, 0.6929, -4.9854], [-59.5173, 0.6929, -4.9854], [-59.5173, 0.4221, -3.0375]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.8673, 0.4221, -3.0375], [-59.8673, 0.6929, -4.9854], [-59.5173, 0.6929, -4.9854], [-59.5173, 0.4221, -3.0375]], b: [[-59.5596, 0.8363, -2.9504], [-59.5596, 1.3726, -4.8426], [-59.2096, 1.3726, -4.8426], [-59.2096, 0.8363, -2.9504]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.5596, 0.8363, -2.9504], [-59.5596, 1.3726, -4.8426], [-59.2096, 1.3726, -4.8426], [-59.2096, 0.8363, -2.9504]], b: [[-59.2519, 1.2344, -2.8072], [-59.2519, 2.0261, -4.6075], [-58.9019, 2.0261, -4.6075], [-58.9019, 1.2344, -2.8072]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.2519, 1.2344, -2.8072], [-59.2519, 2.0261, -4.6075], [-58.9019, 2.0261, -4.6075], [-58.9019, 1.2344, -2.8072]], b: [[-58.9442, 1.6091, -2.6106], [-58.9442, 2.6411, -4.2848], [-58.5942, 2.6411, -4.2848], [-58.5942, 1.6091, -2.6106]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.6742, -3.1367, -3.9364], [-61.6742, -4.3624, -5.4745], [-61.3242, -4.3624, -5.4745], [-61.3242, -3.1367, -3.9364]], b: [[-61.2994, -2.4335, -4.406], [-61.2994, -3.3843, -6.1275], [-60.9494, -3.3843, -6.1275], [-60.9494, -2.4335, -4.406]], collide: 0, sail: true}
      - {kind: loft, a: [[-61.2994, -2.4335, -4.406], [-61.2994, -3.3843, -6.1275], [-60.9494, -3.3843, -6.1275], [-60.9494, -2.4335, -4.406]], b: [[-60.9246, -1.6615, -4.7512], [-60.9246, -2.3107, -6.6076], [-60.5746, -2.3107, -6.6076], [-60.5746, -1.6615, -4.7512]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.9246, -1.6615, -4.7512], [-60.9246, -2.3107, -6.6076], [-60.5746, -2.3107, -6.6076], [-60.5746, -1.6615, -4.7512]], b: [[-60.5498, -0.8426, -4.9623], [-60.5498, -1.1719, -6.9012], [-60.1998, -1.1719, -6.9012], [-60.1998, -0.8426, -4.9623]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.5498, -0.8426, -4.9623], [-60.5498, -1.1719, -6.9012], [-60.1998, -1.1719, -6.9012], [-60.1998, -0.8426, -4.9623]], b: [[-60.175, -0, -5.0333], [-60.175, -0, -7], [-59.825, -0, -7], [-59.825, -0, -5.0333]], collide: 0, sail: true}
      - {kind: loft, a: [[-60.175, -0, -5.0333], [-60.175, -0, -7], [-59.825, -0, -7], [-59.825, -0, -5.0333]], b: [[-59.8002, 0.8426, -4.9623], [-59.8002, 1.1719, -6.9012], [-59.4502, 1.1719, -6.9012], [-59.4502, 0.8426, -4.9623]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.8002, 0.8426, -4.9623], [-59.8002, 1.1719, -6.9012], [-59.4502, 1.1719, -6.9012], [-59.4502, 0.8426, -4.9623]], b: [[-59.4254, 1.6615, -4.7512], [-59.4254, 2.3107, -6.6076], [-59.0754, 2.3107, -6.6076], [-59.0754, 1.6615, -4.7512]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.4254, 1.6615, -4.7512], [-59.4254, 2.3107, -6.6076], [-59.0754, 2.3107, -6.6076], [-59.0754, 1.6615, -4.7512]], b: [[-59.0506, 2.4335, -4.406], [-59.0506, 3.3843, -6.1275], [-58.7006, 3.3843, -6.1275], [-58.7006, 2.4335, -4.406]], collide: 0, sail: true}
      - {kind: loft, a: [[-59.0506, 2.4335, -4.406], [-59.0506, 3.3843, -6.1275], [-58.7006, 3.3843, -6.1275], [-58.7006, 2.4335, -4.406]], b: [[-58.6758, 3.1367, -3.9364], [-58.6758, 4.3624, -5.4745], [-58.3258, 4.3624, -5.4745], [-58.3258, 3.1367, -3.9364]], collide: 0, sail: true}
  - id: piles
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#6b5d4f"
    pieces:
      - {kind: poly, points: [[-90.6, -8.5], [-89.4, -8.5], [-89.4, 12], [-90.6, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}   # piles standing in the still water (fixed marks to see the vessel go by)
      - {kind: poly, points: [[-70.6, -8.5], [-69.4, -8.5], [-69.4, 12], [-70.6, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[-50.6, -8.5], [-49.4, -8.5], [-49.4, 12], [-50.6, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[-30.6, -8.5], [-29.4, -8.5], [-29.4, 12], [-30.6, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[-10.6, -8.5], [-9.4, -8.5], [-9.4, 12], [-10.6, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[9.4, -8.5], [10.6, -8.5], [10.6, 12], [9.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[29.4, -8.5], [30.6, -8.5], [30.6, 12], [29.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[49.4, -8.5], [50.6, -8.5], [50.6, 12], [49.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[69.4, -8.5], [70.6, -8.5], [70.6, 12], [69.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[89.4, -8.5], [90.6, -8.5], [90.6, 12], [89.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[109.4, -8.5], [110.6, -8.5], [110.6, 12], [109.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[129.4, -8.5], [130.6, -8.5], [130.6, 12], [129.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[149.4, -8.5], [150.6, -8.5], [150.6, 12], [149.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[169.4, -8.5], [170.6, -8.5], [170.6, 12], [169.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
      - {kind: poly, points: [[189.4, -8.5], [190.6, -8.5], [190.6, 12], [189.4, 12]], y: [12, 13.6], collide: 0, color: "#6b5d4f"}
joints:
  - {id: j_v, type: slide, body: vessel, axis: [1, 0, 0], damping: 12}   # + : forward
  - {id: j_s, type: hinge, body: screw, axis: [1, 0, 0], damping: 0.0001}   # + : the top going away from the eye (from +y towards +z)
air: {density: 1000, viscosity: 0.001, wind: [0, 0, 0]}   # the medium is the sea: still water (MuJoCo's fluid forces in water's density and viscosity)
driver: {joint: j_s, kind: velocity, rpm: 90, max_torque: 5}   # the engine turns the screw: the only input
checks:
  - {type: monotonic, joint: j_v, direction: 1, max_back: 0.3, settle_s: 2.0, window_s: 6}
camera: {target: [-41, 0, 0.5], position: [-41, -150, 0.5], fov: 14}
display:
  output: j_v
  labels: {j_v: "Vessel (forward)", j_s: "Screw (engine)"}
