# No. 448 (Brown 1868): "Common lift pump. In the up-stroke of piston or bucket the lower valve opens and the valve in piston shuts;
# air is exhausted out of suction-pipe, and water rushes up to fill the vacuum. In down-stroke, lower valve is shut and valve in piston
# opens, and the water simply passes through the piston. The water above piston is lifted up, and runs over out of spout at each up-stroke."
# Model (cm, gravity on, Brown's view from in front, the pump cut away in half section). The handle is pinned to the top of the piston-
# rod and turns on a fulcrum carried by a swinging link from a lug on the cistern, so the rod rises and falls straight. The hand swings
# the handle (the only drive). The water is lumped vessels (src/fluid/vessels.c): the barrel under the piston and the water over it (up
# to the spout) are chambers swept by the piston (26.4208 cm^2); the suction pipe is the well at -2500 Pa (its water ~25 cm
# down). Both valves are real poppets on slides, held shut by their weight and lifted only by the difference of the pressures on their
# faces: the foot valve (4.5239 cm^2 hole) between the well and the barrel, the piston's valve (3.1416 cm^2) between the barrel and
# the water over the piston; each passes water (orifice, cd 0.62) as far as it is lifted. The spout lets out the water the up-stroke
# lifts. Generator: opencode-runs/vessels/gen448.py.
number: 448
slug: common-lift-pump
name: Common lift pump
brown: "Common lift pump. In the up-stroke of piston or bucket the lower valve opens and the valve in piston shuts; air is exhausted out of suction-pipe, and water rushes up to fill the vacuum. In down-stroke, lower valve is shut and valve in piston opens, and the water simply passes through the piston. The water above piston is lifted up, and runs over out of spout at each up-stroke. This pump cannot raise water over thirty feet high."
units: cm
sim:
  timestep: 0.0001
  integrator: implicitfast
  iterations: 60
  duration_s: 10
  floor: false
bodies:
  - id: link
    shape: part
    pos: [5.9, 0, 31]
    mass: 0.03
    color: "#6d675c"
    pieces:
      - {kind: rod, from: [5.9, -1.2, 31], to: [7.4, -1.2, 32.6], radius: 0.38, capsule: true, collide: 0}
      - {kind: rod, from: [7.4, -1.2, 32.6], to: [7.9, -1.2, 34.5], radius: 0.38, capsule: true, collide: 0}
      - {kind: rod, from: [7.9, -1.2, 34.5], to: [8.4, -1.2, 36.2], radius: 0.38, capsule: true, collide: 0}
      - {kind: rod, from: [8.4, -1.6, 36.2], to: [8.4, 0.2, 36.2], radius: 0.25, collide: 0}
  - id: handle
    shape: part
    mount: link
    pos: [8.4, 0, 36.2]
    mass: 0.15
    color: "#5f5a52"
    pieces:
      - {kind: rod, from: [0, 0, 39.5], to: [2.6, 0, 40.6], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [2.6, 0, 40.6], to: [5.6, 0, 39.6], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [5.6, 0, 39.6], to: [8.4, 0, 36.2], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [8.4, 0, 36.2], to: [11.5, 0, 33.6], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [11.5, 0, 33.6], to: [15, 0, 29.5], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [15, 0, 29.5], to: [18.4, 0, 25], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [18.4, 0, 25], to: [22.2, 0, 20.3], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [0, -0.75, 39.5], to: [0, 0.75, 39.5], radius: 0.55, collide: 0}
      - {kind: rod, from: [8.4, -0.75, 36.2], to: [8.4, 0.75, 36.2], radius: 0.7, collide: 0}
      - {kind: rod, from: [22.2, -0.6, 20.3], to: [22.2, 0.6, 20.3], radius: 0.95, capsule: true, collide: 0}
  - id: piston
    shape: part
    pos: [0, 0, 11.5]
    mass: 0.08
    color: "#8a8478"
    pieces:
      - {kind: loft, a: [[1, 0, 16], [0.9239, 0.3827, 16], [2.6331, 1.0906, 16], [2.85, 0, 16]], b: [[1, 0, 11.5], [0.9239, 0.3827, 11.5], [2.6331, 1.0906, 11.5], [2.85, 0, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[0.9239, 0.3827, 16], [0.7071, 0.7071, 16], [2.0153, 2.0153, 16], [2.6331, 1.0906, 16]], b: [[0.9239, 0.3827, 11.5], [0.7071, 0.7071, 11.5], [2.0153, 2.0153, 11.5], [2.6331, 1.0906, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[0.7071, 0.7071, 16], [0.3827, 0.9239, 16], [1.0906, 2.6331, 16], [2.0153, 2.0153, 16]], b: [[0.7071, 0.7071, 11.5], [0.3827, 0.9239, 11.5], [1.0906, 2.6331, 11.5], [2.0153, 2.0153, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[0.3827, 0.9239, 16], [0, 1, 16], [0, 2.85, 16], [1.0906, 2.6331, 16]], b: [[0.3827, 0.9239, 11.5], [0, 1, 11.5], [0, 2.85, 11.5], [1.0906, 2.6331, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[0, 1, 16], [-0.3827, 0.9239, 16], [-1.0906, 2.6331, 16], [0, 2.85, 16]], b: [[0, 1, 11.5], [-0.3827, 0.9239, 11.5], [-1.0906, 2.6331, 11.5], [0, 2.85, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[-0.3827, 0.9239, 16], [-0.7071, 0.7071, 16], [-2.0153, 2.0153, 16], [-1.0906, 2.6331, 16]], b: [[-0.3827, 0.9239, 11.5], [-0.7071, 0.7071, 11.5], [-2.0153, 2.0153, 11.5], [-1.0906, 2.6331, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[-0.7071, 0.7071, 16], [-0.9239, 0.3827, 16], [-2.6331, 1.0906, 16], [-2.0153, 2.0153, 16]], b: [[-0.7071, 0.7071, 11.5], [-0.9239, 0.3827, 11.5], [-2.6331, 1.0906, 11.5], [-2.0153, 2.0153, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[-0.9239, 0.3827, 16], [-1, 0, 16], [-2.85, 0, 16], [-2.6331, 1.0906, 16]], b: [[-0.9239, 0.3827, 11.5], [-1, 0, 11.5], [-2.85, 0, 11.5], [-2.6331, 1.0906, 11.5]], collide: 0, color: "#7d6b55"}
      - {kind: loft, a: [[2.75, 0, 15.8], [2.5407, 1.0524, 15.8], [2.6423, 1.0945, 15.8], [2.86, 0, 15.8]], b: [[2.75, 0, 14], [2.5407, 1.0524, 14], [2.6423, 1.0945, 14], [2.86, 0, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[2.5407, 1.0524, 15.8], [1.9445, 1.9445, 15.8], [2.0223, 2.0223, 15.8], [2.6423, 1.0945, 15.8]], b: [[2.5407, 1.0524, 14], [1.9445, 1.9445, 14], [2.0223, 2.0223, 14], [2.6423, 1.0945, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[1.9445, 1.9445, 15.8], [1.0524, 2.5407, 15.8], [1.0945, 2.6423, 15.8], [2.0223, 2.0223, 15.8]], b: [[1.9445, 1.9445, 14], [1.0524, 2.5407, 14], [1.0945, 2.6423, 14], [2.0223, 2.0223, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[1.0524, 2.5407, 15.8], [0, 2.75, 15.8], [0, 2.86, 15.8], [1.0945, 2.6423, 15.8]], b: [[1.0524, 2.5407, 14], [0, 2.75, 14], [0, 2.86, 14], [1.0945, 2.6423, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[0, 2.75, 15.8], [-1.0524, 2.5407, 15.8], [-1.0945, 2.6423, 15.8], [0, 2.86, 15.8]], b: [[0, 2.75, 14], [-1.0524, 2.5407, 14], [-1.0945, 2.6423, 14], [0, 2.86, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[-1.0524, 2.5407, 15.8], [-1.9445, 1.9445, 15.8], [-2.0223, 2.0223, 15.8], [-1.0945, 2.6423, 15.8]], b: [[-1.0524, 2.5407, 14], [-1.9445, 1.9445, 14], [-2.0223, 2.0223, 14], [-1.0945, 2.6423, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[-1.9445, 1.9445, 15.8], [-2.5407, 1.0524, 15.8], [-2.6423, 1.0945, 15.8], [-2.0223, 2.0223, 15.8]], b: [[-1.9445, 1.9445, 14], [-2.5407, 1.0524, 14], [-2.6423, 1.0945, 14], [-2.0223, 2.0223, 14]], collide: 0, color: "#4f3b28"}
      - {kind: loft, a: [[-2.5407, 1.0524, 15.8], [-2.75, 0, 15.8], [-2.86, 0, 15.8], [-2.6423, 1.0945, 15.8]], b: [[-2.5407, 1.0524, 14], [-2.75, 0, 14], [-2.86, 0, 14], [-2.6423, 1.0945, 14]], collide: 0, color: "#4f3b28"}
      - {kind: rod, from: [-1.45, 0.6, 16], to: [-0.3, 0.6, 18.6], radius: 0.22, collide: 0}
      - {kind: rod, from: [-1.45, -0.6, 16], to: [-0.3, -0.6, 18.6], radius: 0.22, collide: 0}
      - {kind: rod, from: [1.45, 0.6, 16], to: [0.3, 0.6, 18.6], radius: 0.22, collide: 0}
      - {kind: rod, from: [1.45, -0.6, 16], to: [0.3, -0.6, 18.6], radius: 0.22, collide: 0}
      - {kind: loft, a: [[-0.5, -0.8, 19.2], [0.5, -0.8, 19.2], [0.5, 0.8, 19.2], [-0.5, 0.8, 19.2]], b: [[-0.5, -0.8, 18.4], [0.5, -0.8, 18.4], [0.5, 0.8, 18.4], [-0.5, 0.8, 18.4]], collide: 0}
      - {kind: rod, from: [0, 0, 18.6], to: [0, 0, 39.5], radius: 0.28, collide: 0}
      - {kind: rod, from: [0, -0.5, 39.5], to: [0, 0.5, 39.5], radius: 0.6, collide: 0}
  - id: bvalve
    shape: part
    mount: piston
    pos: [0, 0, 16]
    mass: 0.004
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[1.3, 0, 16.3], [1.201, 0.4975, 16.3], [0.9192, 0.9192, 16.3], [0.4975, 1.201, 16.3], [0, 1.3, 16.3], [-0.4975, 1.201, 16.3], [-0.9192, 0.9192, 16.3], [-1.201, 0.4975, 16.3], [-1.3, 0, 16.3], [-1.201, -0.4975, 16.3], [-0.9192, -0.9192, 16.3], [-0.4975, -1.201, 16.3], [-0, -1.3, 16.3], [0.4975, -1.201, 16.3], [0.9192, -0.9192, 16.3], [1.201, -0.4975, 16.3]], b: [[1.3, 0, 16], [1.201, 0.4975, 16], [0.9192, 0.9192, 16], [0.4975, 1.201, 16], [0, 1.3, 16], [-0.4975, 1.201, 16], [-0.9192, 0.9192, 16], [-1.201, 0.4975, 16], [-1.3, 0, 16], [-1.201, -0.4975, 16], [-0.9192, -0.9192, 16], [-0.4975, -1.201, 16], [-0, -1.3, 16], [0.4975, -1.201, 16], [0.9192, -0.9192, 16], [1.201, -0.4975, 16]], collide: 0}
      - {kind: rod, from: [0, 0, 16.3], to: [0, 0, 16.9], radius: 0.2, capsule: true, collide: 0}
  - id: fvalve
    shape: part
    pos: [0, 0, 2.5]
    mass: 0.004
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[1.55, 0, 2.8], [1.432, 0.5932, 2.8], [1.096, 1.096, 2.8], [0.5932, 1.432, 2.8], [0, 1.55, 2.8], [-0.5932, 1.432, 2.8], [-1.096, 1.096, 2.8], [-1.432, 0.5932, 2.8], [-1.55, 0, 2.8], [-1.432, -0.5932, 2.8], [-1.096, -1.096, 2.8], [-0.5932, -1.432, 2.8], [-0, -1.55, 2.8], [0.5932, -1.432, 2.8], [1.096, -1.096, 2.8], [1.432, -0.5932, 2.8]], b: [[1.55, 0, 2.5], [1.432, 0.5932, 2.5], [1.096, 1.096, 2.5], [0.5932, 1.432, 2.5], [0, 1.55, 2.5], [-0.5932, 1.432, 2.5], [-1.096, 1.096, 2.5], [-1.432, 0.5932, 2.5], [-1.55, 0, 2.5], [-1.432, -0.5932, 2.5], [-1.096, -1.096, 2.5], [-0.5932, -1.432, 2.5], [-0, -1.55, 2.5], [0.5932, -1.432, 2.5], [1.096, -1.096, 2.5], [1.432, -0.5932, 2.5]], collide: 0}
      - {kind: rod, from: [0, 0, 2.8], to: [0, 0, 3.4], radius: 0.2, capsule: true, collide: 0}
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: loft, a: [[1.2, 0, -7], [1.1087, 0.4592, -7], [1.7554, 0.7271, -7], [1.9, 0, -7]], b: [[1.2, 0, -13], [1.1087, 0.4592, -13], [1.7554, 0.7271, -13], [1.9, 0, -13]], collide: 0}
      - {kind: loft, a: [[1.1087, 0.4592, -7], [0.8485, 0.8485, -7], [1.3435, 1.3435, -7], [1.7554, 0.7271, -7]], b: [[1.1087, 0.4592, -13], [0.8485, 0.8485, -13], [1.3435, 1.3435, -13], [1.7554, 0.7271, -13]], collide: 0}
      - {kind: loft, a: [[0.8485, 0.8485, -7], [0.4592, 1.1087, -7], [0.7271, 1.7554, -7], [1.3435, 1.3435, -7]], b: [[0.8485, 0.8485, -13], [0.4592, 1.1087, -13], [0.7271, 1.7554, -13], [1.3435, 1.3435, -13]], collide: 0}
      - {kind: loft, a: [[0.4592, 1.1087, -7], [0, 1.2, -7], [0, 1.9, -7], [0.7271, 1.7554, -7]], b: [[0.4592, 1.1087, -13], [0, 1.2, -13], [0, 1.9, -13], [0.7271, 1.7554, -13]], collide: 0}
      - {kind: loft, a: [[0, 1.2, -7], [-0.4592, 1.1087, -7], [-0.7271, 1.7554, -7], [0, 1.9, -7]], b: [[0, 1.2, -13], [-0.4592, 1.1087, -13], [-0.7271, 1.7554, -13], [0, 1.9, -13]], collide: 0}
      - {kind: loft, a: [[-0.4592, 1.1087, -7], [-0.8485, 0.8485, -7], [-1.3435, 1.3435, -7], [-0.7271, 1.7554, -7]], b: [[-0.4592, 1.1087, -13], [-0.8485, 0.8485, -13], [-1.3435, 1.3435, -13], [-0.7271, 1.7554, -13]], collide: 0}
      - {kind: loft, a: [[-0.8485, 0.8485, -7], [-1.1087, 0.4592, -7], [-1.7554, 0.7271, -7], [-1.3435, 1.3435, -7]], b: [[-0.8485, 0.8485, -13], [-1.1087, 0.4592, -13], [-1.7554, 0.7271, -13], [-1.3435, 1.3435, -13]], collide: 0}
      - {kind: loft, a: [[-1.1087, 0.4592, -7], [-1.2, 0, -7], [-1.9, 0, -7], [-1.7554, 0.7271, -7]], b: [[-1.1087, 0.4592, -13], [-1.2, 0, -13], [-1.9, 0, -13], [-1.7554, 0.7271, -13]], collide: 0}
      - {kind: loft, a: [[1.9, 0, -3.5], [1.7554, 0.7271, -3.5], [2.4021, 0.995, -3.5], [2.6, 0, -3.5]], b: [[1.2, 0, -7], [1.1087, 0.4592, -7], [1.7554, 0.7271, -7], [1.9, 0, -7]], collide: 0}
      - {kind: loft, a: [[1.7554, 0.7271, -3.5], [1.3435, 1.3435, -3.5], [1.8385, 1.8385, -3.5], [2.4021, 0.995, -3.5]], b: [[1.1087, 0.4592, -7], [0.8485, 0.8485, -7], [1.3435, 1.3435, -7], [1.7554, 0.7271, -7]], collide: 0}
      - {kind: loft, a: [[1.3435, 1.3435, -3.5], [0.7271, 1.7554, -3.5], [0.995, 2.4021, -3.5], [1.8385, 1.8385, -3.5]], b: [[0.8485, 0.8485, -7], [0.4592, 1.1087, -7], [0.7271, 1.7554, -7], [1.3435, 1.3435, -7]], collide: 0}
      - {kind: loft, a: [[0.7271, 1.7554, -3.5], [0, 1.9, -3.5], [0, 2.6, -3.5], [0.995, 2.4021, -3.5]], b: [[0.4592, 1.1087, -7], [0, 1.2, -7], [0, 1.9, -7], [0.7271, 1.7554, -7]], collide: 0}
      - {kind: loft, a: [[0, 1.9, -3.5], [-0.7271, 1.7554, -3.5], [-0.995, 2.4021, -3.5], [0, 2.6, -3.5]], b: [[0, 1.2, -7], [-0.4592, 1.1087, -7], [-0.7271, 1.7554, -7], [0, 1.9, -7]], collide: 0}
      - {kind: loft, a: [[-0.7271, 1.7554, -3.5], [-1.3435, 1.3435, -3.5], [-1.8385, 1.8385, -3.5], [-0.995, 2.4021, -3.5]], b: [[-0.4592, 1.1087, -7], [-0.8485, 0.8485, -7], [-1.3435, 1.3435, -7], [-0.7271, 1.7554, -7]], collide: 0}
      - {kind: loft, a: [[-1.3435, 1.3435, -3.5], [-1.7554, 0.7271, -3.5], [-2.4021, 0.995, -3.5], [-1.8385, 1.8385, -3.5]], b: [[-0.8485, 0.8485, -7], [-1.1087, 0.4592, -7], [-1.7554, 0.7271, -7], [-1.3435, 1.3435, -7]], collide: 0}
      - {kind: loft, a: [[-1.7554, 0.7271, -3.5], [-1.9, 0, -3.5], [-2.6, 0, -3.5], [-2.4021, 0.995, -3.5]], b: [[-1.1087, 0.4592, -7], [-1.2, 0, -7], [-1.9, 0, -7], [-1.7554, 0.7271, -7]], collide: 0}
      - {kind: loft, a: [[2, 0, -0.5], [1.8478, 0.7654, -0.5], [2.4945, 1.0332, -0.5], [2.7, 0, -0.5]], b: [[1.9, 0, -3.5], [1.7554, 0.7271, -3.5], [2.4021, 0.995, -3.5], [2.6, 0, -3.5]], collide: 0}
      - {kind: loft, a: [[1.8478, 0.7654, -0.5], [1.4142, 1.4142, -0.5], [1.9092, 1.9092, -0.5], [2.4945, 1.0332, -0.5]], b: [[1.7554, 0.7271, -3.5], [1.3435, 1.3435, -3.5], [1.8385, 1.8385, -3.5], [2.4021, 0.995, -3.5]], collide: 0}
      - {kind: loft, a: [[1.4142, 1.4142, -0.5], [0.7654, 1.8478, -0.5], [1.0332, 2.4945, -0.5], [1.9092, 1.9092, -0.5]], b: [[1.3435, 1.3435, -3.5], [0.7271, 1.7554, -3.5], [0.995, 2.4021, -3.5], [1.8385, 1.8385, -3.5]], collide: 0}
      - {kind: loft, a: [[0.7654, 1.8478, -0.5], [0, 2, -0.5], [0, 2.7, -0.5], [1.0332, 2.4945, -0.5]], b: [[0.7271, 1.7554, -3.5], [0, 1.9, -3.5], [0, 2.6, -3.5], [0.995, 2.4021, -3.5]], collide: 0}
      - {kind: loft, a: [[0, 2, -0.5], [-0.7654, 1.8478, -0.5], [-1.0332, 2.4945, -0.5], [0, 2.7, -0.5]], b: [[0, 1.9, -3.5], [-0.7271, 1.7554, -3.5], [-0.995, 2.4021, -3.5], [0, 2.6, -3.5]], collide: 0}
      - {kind: loft, a: [[-0.7654, 1.8478, -0.5], [-1.4142, 1.4142, -0.5], [-1.9092, 1.9092, -0.5], [-1.0332, 2.4945, -0.5]], b: [[-0.7271, 1.7554, -3.5], [-1.3435, 1.3435, -3.5], [-1.8385, 1.8385, -3.5], [-0.995, 2.4021, -3.5]], collide: 0}
      - {kind: loft, a: [[-1.4142, 1.4142, -0.5], [-1.8478, 0.7654, -0.5], [-2.4945, 1.0332, -0.5], [-1.9092, 1.9092, -0.5]], b: [[-1.3435, 1.3435, -3.5], [-1.7554, 0.7271, -3.5], [-2.4021, 0.995, -3.5], [-1.8385, 1.8385, -3.5]], collide: 0}
      - {kind: loft, a: [[-1.8478, 0.7654, -0.5], [-2, 0, -0.5], [-2.7, 0, -0.5], [-2.4945, 1.0332, -0.5]], b: [[-1.7554, 0.7271, -3.5], [-1.9, 0, -3.5], [-2.6, 0, -3.5], [-2.4021, 0.995, -3.5]], collide: 0}
      - {kind: loft, a: [[1.4, 0, 1.9], [1.2934, 0.5358, 1.9], [1.9401, 0.8036, 1.9], [2.1, 0, 1.9]], b: [[2, 0, -0.5], [1.8478, 0.7654, -0.5], [2.4945, 1.0332, -0.5], [2.7, 0, -0.5]], collide: 0}
      - {kind: loft, a: [[1.2934, 0.5358, 1.9], [0.9899, 0.9899, 1.9], [1.4849, 1.4849, 1.9], [1.9401, 0.8036, 1.9]], b: [[1.8478, 0.7654, -0.5], [1.4142, 1.4142, -0.5], [1.9092, 1.9092, -0.5], [2.4945, 1.0332, -0.5]], collide: 0}
      - {kind: loft, a: [[0.9899, 0.9899, 1.9], [0.5358, 1.2934, 1.9], [0.8036, 1.9401, 1.9], [1.4849, 1.4849, 1.9]], b: [[1.4142, 1.4142, -0.5], [0.7654, 1.8478, -0.5], [1.0332, 2.4945, -0.5], [1.9092, 1.9092, -0.5]], collide: 0}
      - {kind: loft, a: [[0.5358, 1.2934, 1.9], [0, 1.4, 1.9], [0, 2.1, 1.9], [0.8036, 1.9401, 1.9]], b: [[0.7654, 1.8478, -0.5], [0, 2, -0.5], [0, 2.7, -0.5], [1.0332, 2.4945, -0.5]], collide: 0}
      - {kind: loft, a: [[0, 1.4, 1.9], [-0.5358, 1.2934, 1.9], [-0.8036, 1.9401, 1.9], [0, 2.1, 1.9]], b: [[0, 2, -0.5], [-0.7654, 1.8478, -0.5], [-1.0332, 2.4945, -0.5], [0, 2.7, -0.5]], collide: 0}
      - {kind: loft, a: [[-0.5358, 1.2934, 1.9], [-0.9899, 0.9899, 1.9], [-1.4849, 1.4849, 1.9], [-0.8036, 1.9401, 1.9]], b: [[-0.7654, 1.8478, -0.5], [-1.4142, 1.4142, -0.5], [-1.9092, 1.9092, -0.5], [-1.0332, 2.4945, -0.5]], collide: 0}
      - {kind: loft, a: [[-0.9899, 0.9899, 1.9], [-1.2934, 0.5358, 1.9], [-1.9401, 0.8036, 1.9], [-1.4849, 1.4849, 1.9]], b: [[-1.4142, 1.4142, -0.5], [-1.8478, 0.7654, -0.5], [-2.4945, 1.0332, -0.5], [-1.9092, 1.9092, -0.5]], collide: 0}
      - {kind: loft, a: [[-1.2934, 0.5358, 1.9], [-1.4, 0, 1.9], [-2.1, 0, 1.9], [-1.9401, 0.8036, 1.9]], b: [[-1.8478, 0.7654, -0.5], [-2, 0, -0.5], [-2.7, 0, -0.5], [-2.4945, 1.0332, -0.5]], collide: 0}
      - {kind: loft, a: [[1.2, 0, 2.5], [1.1087, 0.4592, 2.5], [3.2336, 1.3394, 2.5], [3.5, 0, 2.5]], b: [[1.2, 0, 1.9], [1.1087, 0.4592, 1.9], [3.2336, 1.3394, 1.9], [3.5, 0, 1.9]], collide: 0}
      - {kind: loft, a: [[1.1087, 0.4592, 2.5], [0.8485, 0.8485, 2.5], [2.4749, 2.4749, 2.5], [3.2336, 1.3394, 2.5]], b: [[1.1087, 0.4592, 1.9], [0.8485, 0.8485, 1.9], [2.4749, 2.4749, 1.9], [3.2336, 1.3394, 1.9]], collide: 0}
      - {kind: loft, a: [[0.8485, 0.8485, 2.5], [0.4592, 1.1087, 2.5], [1.3394, 3.2336, 2.5], [2.4749, 2.4749, 2.5]], b: [[0.8485, 0.8485, 1.9], [0.4592, 1.1087, 1.9], [1.3394, 3.2336, 1.9], [2.4749, 2.4749, 1.9]], collide: 0}
      - {kind: loft, a: [[0.4592, 1.1087, 2.5], [0, 1.2, 2.5], [0, 3.5, 2.5], [1.3394, 3.2336, 2.5]], b: [[0.4592, 1.1087, 1.9], [0, 1.2, 1.9], [0, 3.5, 1.9], [1.3394, 3.2336, 1.9]], collide: 0}
      - {kind: loft, a: [[0, 1.2, 2.5], [-0.4592, 1.1087, 2.5], [-1.3394, 3.2336, 2.5], [0, 3.5, 2.5]], b: [[0, 1.2, 1.9], [-0.4592, 1.1087, 1.9], [-1.3394, 3.2336, 1.9], [0, 3.5, 1.9]], collide: 0}
      - {kind: loft, a: [[-0.4592, 1.1087, 2.5], [-0.8485, 0.8485, 2.5], [-2.4749, 2.4749, 2.5], [-1.3394, 3.2336, 2.5]], b: [[-0.4592, 1.1087, 1.9], [-0.8485, 0.8485, 1.9], [-2.4749, 2.4749, 1.9], [-1.3394, 3.2336, 1.9]], collide: 0}
      - {kind: loft, a: [[-0.8485, 0.8485, 2.5], [-1.1087, 0.4592, 2.5], [-3.2336, 1.3394, 2.5], [-2.4749, 2.4749, 2.5]], b: [[-0.8485, 0.8485, 1.9], [-1.1087, 0.4592, 1.9], [-3.2336, 1.3394, 1.9], [-2.4749, 2.4749, 1.9]], collide: 0}
      - {kind: loft, a: [[-1.1087, 0.4592, 2.5], [-1.2, 0, 2.5], [-3.5, 0, 2.5], [-3.2336, 1.3394, 2.5]], b: [[-1.1087, 0.4592, 1.9], [-1.2, 0, 1.9], [-3.5, 0, 1.9], [-3.2336, 1.3394, 1.9]], collide: 0}
      - {kind: loft, a: [[2.9, 0, 21.5], [2.6793, 1.1098, 21.5], [3.2336, 1.3394, 21.5], [3.5, 0, 21.5]], b: [[2.9, 0, 2.5], [2.6793, 1.1098, 2.5], [3.2336, 1.3394, 2.5], [3.5, 0, 2.5]], collide: 0}
      - {kind: loft, a: [[2.6793, 1.1098, 21.5], [2.0506, 2.0506, 21.5], [2.4749, 2.4749, 21.5], [3.2336, 1.3394, 21.5]], b: [[2.6793, 1.1098, 2.5], [2.0506, 2.0506, 2.5], [2.4749, 2.4749, 2.5], [3.2336, 1.3394, 2.5]], collide: 0}
      - {kind: loft, a: [[2.0506, 2.0506, 21.5], [1.1098, 2.6793, 21.5], [1.3394, 3.2336, 21.5], [2.4749, 2.4749, 21.5]], b: [[2.0506, 2.0506, 2.5], [1.1098, 2.6793, 2.5], [1.3394, 3.2336, 2.5], [2.4749, 2.4749, 2.5]], collide: 0}
      - {kind: loft, a: [[1.1098, 2.6793, 21.5], [0, 2.9, 21.5], [0, 3.5, 21.5], [1.3394, 3.2336, 21.5]], b: [[1.1098, 2.6793, 2.5], [0, 2.9, 2.5], [0, 3.5, 2.5], [1.3394, 3.2336, 2.5]], collide: 0}
      - {kind: loft, a: [[0, 2.9, 21.5], [-1.1098, 2.6793, 21.5], [-1.3394, 3.2336, 21.5], [0, 3.5, 21.5]], b: [[0, 2.9, 2.5], [-1.1098, 2.6793, 2.5], [-1.3394, 3.2336, 2.5], [0, 3.5, 2.5]], collide: 0}
      - {kind: loft, a: [[-1.1098, 2.6793, 21.5], [-2.0506, 2.0506, 21.5], [-2.4749, 2.4749, 21.5], [-1.3394, 3.2336, 21.5]], b: [[-1.1098, 2.6793, 2.5], [-2.0506, 2.0506, 2.5], [-2.4749, 2.4749, 2.5], [-1.3394, 3.2336, 2.5]], collide: 0}
      - {kind: loft, a: [[-2.0506, 2.0506, 21.5], [-2.6793, 1.1098, 21.5], [-3.2336, 1.3394, 21.5], [-2.4749, 2.4749, 21.5]], b: [[-2.0506, 2.0506, 2.5], [-2.6793, 1.1098, 2.5], [-3.2336, 1.3394, 2.5], [-2.4749, 2.4749, 2.5]], collide: 0}
      - {kind: loft, a: [[-2.6793, 1.1098, 21.5], [-2.9, 0, 21.5], [-3.5, 0, 21.5], [-3.2336, 1.3394, 21.5]], b: [[-2.6793, 1.1098, 2.5], [-2.9, 0, 2.5], [-3.5, 0, 2.5], [-3.2336, 1.3394, 2.5]], collide: 0}
      - {kind: loft, a: [[2.9, 0, 22.1], [2.6793, 1.1098, 22.1], [4.7118, 1.9517, 22.1], [5.1, 0, 22.1]], b: [[2.9, 0, 21.5], [2.6793, 1.1098, 21.5], [4.7118, 1.9517, 21.5], [5.1, 0, 21.5]], collide: 0}
      - {kind: loft, a: [[2.6793, 1.1098, 22.1], [2.0506, 2.0506, 22.1], [3.6062, 3.6062, 22.1], [4.7118, 1.9517, 22.1]], b: [[2.6793, 1.1098, 21.5], [2.0506, 2.0506, 21.5], [3.6062, 3.6062, 21.5], [4.7118, 1.9517, 21.5]], collide: 0}
      - {kind: loft, a: [[2.0506, 2.0506, 22.1], [1.1098, 2.6793, 22.1], [1.9517, 4.7118, 22.1], [3.6062, 3.6062, 22.1]], b: [[2.0506, 2.0506, 21.5], [1.1098, 2.6793, 21.5], [1.9517, 4.7118, 21.5], [3.6062, 3.6062, 21.5]], collide: 0}
      - {kind: loft, a: [[1.1098, 2.6793, 22.1], [0, 2.9, 22.1], [0, 5.1, 22.1], [1.9517, 4.7118, 22.1]], b: [[1.1098, 2.6793, 21.5], [0, 2.9, 21.5], [0, 5.1, 21.5], [1.9517, 4.7118, 21.5]], collide: 0}
      - {kind: loft, a: [[0, 2.9, 22.1], [-1.1098, 2.6793, 22.1], [-1.9517, 4.7118, 22.1], [0, 5.1, 22.1]], b: [[0, 2.9, 21.5], [-1.1098, 2.6793, 21.5], [-1.9517, 4.7118, 21.5], [0, 5.1, 21.5]], collide: 0}
      - {kind: loft, a: [[-1.1098, 2.6793, 22.1], [-2.0506, 2.0506, 22.1], [-3.6062, 3.6062, 22.1], [-1.9517, 4.7118, 22.1]], b: [[-1.1098, 2.6793, 21.5], [-2.0506, 2.0506, 21.5], [-3.6062, 3.6062, 21.5], [-1.9517, 4.7118, 21.5]], collide: 0}
      - {kind: loft, a: [[-2.0506, 2.0506, 22.1], [-2.6793, 1.1098, 22.1], [-4.7118, 1.9517, 22.1], [-3.6062, 3.6062, 22.1]], b: [[-2.0506, 2.0506, 21.5], [-2.6793, 1.1098, 21.5], [-4.7118, 1.9517, 21.5], [-3.6062, 3.6062, 21.5]], collide: 0}
      - {kind: loft, a: [[-2.6793, 1.1098, 22.1], [-2.9, 0, 22.1], [-5.1, 0, 22.1], [-4.7118, 1.9517, 22.1]], b: [[-2.6793, 1.1098, 21.5], [-2.9, 0, 21.5], [-5.1, 0, 21.5], [-4.7118, 1.9517, 21.5]], collide: 0}
      - {kind: loft, a: [[4.5, 0, 30.5], [4.1575, 1.7221, 30.5], [4.7118, 1.9517, 30.5], [5.1, 0, 30.5]], b: [[4.5, 0, 22.1], [4.1575, 1.7221, 22.1], [4.7118, 1.9517, 22.1], [5.1, 0, 22.1]], collide: 0}
      - {kind: loft, a: [[4.1575, 1.7221, 30.5], [3.182, 3.182, 30.5], [3.6062, 3.6062, 30.5], [4.7118, 1.9517, 30.5]], b: [[4.1575, 1.7221, 22.1], [3.182, 3.182, 22.1], [3.6062, 3.6062, 22.1], [4.7118, 1.9517, 22.1]], collide: 0}
      - {kind: loft, a: [[3.182, 3.182, 30.5], [1.7221, 4.1575, 30.5], [1.9517, 4.7118, 30.5], [3.6062, 3.6062, 30.5]], b: [[3.182, 3.182, 22.1], [1.7221, 4.1575, 22.1], [1.9517, 4.7118, 22.1], [3.6062, 3.6062, 22.1]], collide: 0}
      - {kind: loft, a: [[1.7221, 4.1575, 30.5], [0, 4.5, 30.5], [0, 5.1, 30.5], [1.9517, 4.7118, 30.5]], b: [[1.7221, 4.1575, 22.1], [0, 4.5, 22.1], [0, 5.1, 22.1], [1.9517, 4.7118, 22.1]], collide: 0}
      - {kind: loft, a: [[0, 4.5, 30.5], [-1.7221, 4.1575, 30.5], [-1.9517, 4.7118, 30.5], [0, 5.1, 30.5]], b: [[0, 4.5, 22.1], [-1.7221, 4.1575, 22.1], [-1.9517, 4.7118, 22.1], [0, 5.1, 22.1]], collide: 0}
      - {kind: loft, a: [[-1.7221, 4.1575, 30.5], [-3.182, 3.182, 30.5], [-3.6062, 3.6062, 30.5], [-1.9517, 4.7118, 30.5]], b: [[-1.7221, 4.1575, 22.1], [-3.182, 3.182, 22.1], [-3.6062, 3.6062, 22.1], [-1.9517, 4.7118, 22.1]], collide: 0}
      - {kind: loft, a: [[-3.182, 3.182, 30.5], [-4.1575, 1.7221, 30.5], [-4.7118, 1.9517, 30.5], [-3.6062, 3.6062, 30.5]], b: [[-3.182, 3.182, 22.1], [-4.1575, 1.7221, 22.1], [-4.7118, 1.9517, 22.1], [-3.6062, 3.6062, 22.1]], collide: 0}
      - {kind: loft, a: [[-4.1575, 1.7221, 30.5], [-4.5, 0, 30.5], [-5.1, 0, 30.5], [-4.7118, 1.9517, 30.5]], b: [[-4.1575, 1.7221, 22.1], [-4.5, 0, 22.1], [-5.1, 0, 22.1], [-4.7118, 1.9517, 22.1]], collide: 0}
      - {kind: loft, a: [[5.1, 0, 30.5], [4.7118, 1.9517, 30.5], [5.0813, 2.1048, 30.5], [5.5, 0, 30.5]], b: [[5.1, 0, 29.9], [4.7118, 1.9517, 29.9], [5.0813, 2.1048, 29.9], [5.5, 0, 29.9]], collide: 0}
      - {kind: loft, a: [[4.7118, 1.9517, 30.5], [3.6062, 3.6062, 30.5], [3.8891, 3.8891, 30.5], [5.0813, 2.1048, 30.5]], b: [[4.7118, 1.9517, 29.9], [3.6062, 3.6062, 29.9], [3.8891, 3.8891, 29.9], [5.0813, 2.1048, 29.9]], collide: 0}
      - {kind: loft, a: [[3.6062, 3.6062, 30.5], [1.9517, 4.7118, 30.5], [2.1048, 5.0813, 30.5], [3.8891, 3.8891, 30.5]], b: [[3.6062, 3.6062, 29.9], [1.9517, 4.7118, 29.9], [2.1048, 5.0813, 29.9], [3.8891, 3.8891, 29.9]], collide: 0}
      - {kind: loft, a: [[1.9517, 4.7118, 30.5], [0, 5.1, 30.5], [0, 5.5, 30.5], [2.1048, 5.0813, 30.5]], b: [[1.9517, 4.7118, 29.9], [0, 5.1, 29.9], [0, 5.5, 29.9], [2.1048, 5.0813, 29.9]], collide: 0}
      - {kind: loft, a: [[0, 5.1, 30.5], [-1.9517, 4.7118, 30.5], [-2.1048, 5.0813, 30.5], [0, 5.5, 30.5]], b: [[0, 5.1, 29.9], [-1.9517, 4.7118, 29.9], [-2.1048, 5.0813, 29.9], [0, 5.5, 29.9]], collide: 0}
      - {kind: loft, a: [[-1.9517, 4.7118, 30.5], [-3.6062, 3.6062, 30.5], [-3.8891, 3.8891, 30.5], [-2.1048, 5.0813, 30.5]], b: [[-1.9517, 4.7118, 29.9], [-3.6062, 3.6062, 29.9], [-3.8891, 3.8891, 29.9], [-2.1048, 5.0813, 29.9]], collide: 0}
      - {kind: loft, a: [[-3.6062, 3.6062, 30.5], [-4.7118, 1.9517, 30.5], [-5.0813, 2.1048, 30.5], [-3.8891, 3.8891, 30.5]], b: [[-3.6062, 3.6062, 29.9], [-4.7118, 1.9517, 29.9], [-5.0813, 2.1048, 29.9], [-3.8891, 3.8891, 29.9]], collide: 0}
      - {kind: loft, a: [[-4.7118, 1.9517, 30.5], [-5.1, 0, 30.5], [-5.5, 0, 30.5], [-5.0813, 2.1048, 30.5]], b: [[-4.7118, 1.9517, 29.9], [-5.1, 0, 29.9], [-5.5, 0, 29.9], [-5.0813, 2.1048, 29.9]], collide: 0}
      - {kind: loft, a: [[-4.7, 0, 25.5], [-8, 0, 24.9], [-8, 1.5, 24.9], [-4.7, 1.5, 25.5]], b: [[-4.7, 0, 25], [-8, 0, 24.4], [-8, 1.5, 24.4], [-4.7, 1.5, 25]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-4.7, 1.5, 27.5], [-8, 1.5, 26.9], [-8, 2, 26.9], [-4.7, 2, 27.5]], b: [[-4.7, 1.5, 25], [-8, 1.5, 24.4], [-8, 2, 24.4], [-4.7, 2, 25]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-8, 0, 24.9], [-10.3, 0, 23.2], [-10.3, 1.5, 23.2], [-8, 1.5, 24.9]], b: [[-8, 0, 24.4], [-10.3, 0, 22.7], [-10.3, 1.5, 22.7], [-8, 1.5, 24.4]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-8, 1.5, 26.9], [-10.3, 1.5, 25.2], [-10.3, 2, 25.2], [-8, 2, 26.9]], b: [[-8, 1.5, 24.4], [-10.3, 1.5, 22.7], [-10.3, 2, 22.7], [-8, 2, 24.4]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-10.3, 0, 23.2], [-11.2, 0, 21.9], [-11.2, 1.5, 21.9], [-10.3, 1.5, 23.2]], b: [[-10.3, 0, 22.7], [-11.2, 0, 21.4], [-11.2, 1.5, 21.4], [-10.3, 1.5, 22.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-10.3, 1.5, 25.2], [-11.2, 1.5, 23.9], [-11.2, 2, 23.9], [-10.3, 2, 25.2]], b: [[-10.3, 1.5, 22.7], [-11.2, 1.5, 21.4], [-11.2, 2, 21.4], [-10.3, 2, 22.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-7.6, 0, -16], [7.6, 0, -16], [7.6, 6.6, -16], [-7.6, 6.6, -16]], b: [[-7.6, 0, -16.6], [7.6, 0, -16.6], [7.6, 6.6, -16.6], [-7.6, 6.6, -16.6]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-7.6, 6, -6.5], [7.6, 6, -6.5], [7.6, 6.6, -6.5], [-7.6, 6.6, -6.5]], b: [[-7.6, 6, -16], [7.6, 6, -16], [7.6, 6.6, -16], [-7.6, 6.6, -16]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-7.6, 0, -6.5], [-7, 0, -6.5], [-7, 6, -6.5], [-7.6, 6, -6.5]], b: [[-7.6, 0, -16], [-7, 0, -16], [-7, 6, -16], [-7.6, 6, -16]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[7, 0, -6.5], [7.6, 0, -6.5], [7.6, 6, -6.5], [7, 6, -6.5]], b: [[7, 0, -16], [7.6, 0, -16], [7.6, 6, -16], [7, 6, -16]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-24, 0, -6.5], [-7.6, 0, -6.5], [-7.6, 8, -6.5], [-24, 8, -6.5]], b: [[-24, 0, -7.7], [-7.6, 0, -7.7], [-7.6, 8, -7.7], [-24, 8, -7.7]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[7.6, 0, -6.5], [26, 0, -6.5], [26, 8, -6.5], [7.6, 8, -6.5]], b: [[7.6, 0, -7.7], [26, 0, -7.7], [26, 8, -7.7], [7.6, 8, -7.7]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[-6.5, 0, 29.5], [-5.1, 0, 29.5], [-5.1, 1.6, 29.5], [-6.5, 1.6, 29.5]], b: [[-6.5, 0, 27.9], [-5.1, 0, 27.9], [-5.1, 1.6, 27.9], [-6.5, 1.6, 27.9]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[4.9, -1.2, 31.7], [6.6, -1.2, 31.7], [6.6, 0, 31.7], [4.9, 0, 31.7]], b: [[4.9, -1.2, 29], [6.6, -1.2, 29], [6.6, 0, 29], [4.9, 0, 29]], collide: 0, color: "#b9ae98"}
      - {kind: rod, from: [5.9, -2, 31], to: [5.9, 0.3, 31], radius: 0.25, collide: 0, color: "#6d675c"}
joints:
  - {id: j_l, type: hinge, body: link, axis: [0, 1, 0], damping: 0.001}   # the link swings on its lug
  - {id: j_h, type: hinge, body: handle, axis: [0, 1, 0], damping: 0.001}   # the handle on its fulcrum (the hand's)
  - {id: j_p, type: slide, body: piston, axis: [0, 0, 1], range: [-8, 5.3], damping: 0.01}
  - {id: j_bv, type: slide, body: bvalve, axis: [0, 0, 1], range: [0, 0.9], damping: 0.0005}   # 0: on its seat over the piston's hole
  - {id: j_fv, type: slide, body: fvalve, axis: [0, 0, 1], range: [0, 0.9], damping: 0.0005}   # 0: on the seat over the foot hole
pins:
  - {id: p_R, a: handle, b: piston, at: [0, 0, 39.5]}   # the rod's top in the handle's short end
vessels:
  substeps: 4
  nodes:
    - {id: ground, kind: source, p: 686.7}   # the ground water feeding the well, keeping its level
    - {id: well, kind: tank, area: 84, z: -16, level: 7,
       draw: {section: [[-7, -16], [7, -16], [7, -6.5], [-7, -6.5]], y: [0, 6]}}
    - {id: pipe, kind: chamber, fixed: -13, sections: [[-13, 4.5239], [-7, 7.5477], [-3.5, 11.9459], [-0.5, 9.0792]], volume: 111.188, water: 18.0956, K: 200000,
       draw: {sections: [[[-1.2, -13], [1.2, -13], [1.2, -7], [-1.2, -7]], [[-1.2, -7], [1.2, -7], [1.9, -3.5], [-1.9, -3.5]], [[-1.9, -3.5], [1.9, -3.5], [2, -0.5], [-2, -0.5]], [[-2, -0.5], [2, -0.5], [1.4, 1.9], [-1.4, 1.9]]], y: [0, 1]}}   # the suction pipe, air over the well's water till it is primed
    - {id: under, kind: chamber, fixed: 2.5, sections: [[0, 26.4208]], volume: 237.787, water: 0, K: 200000,
       draw: {sections: [[[-2.9, 2.5], [2.9, 2.5], [2.9, 21.5], [-2.9, 21.5]]], y: [0, 2.5]}}   # the barrel under the piston
    - {id: over, kind: chamber, open: true, fixed: 30.1, moving: bottom, sections: [[0, 26.1745], [22.1, 63.371]], volume: 666.632, water: 330.766,
       draw: {sections: [[[-2.9, 2], [2.9, 2], [2.9, 22.1], [-2.9, 22.1]], [[-4.5, 22.1], [4.5, 22.1], [4.5, 30.1], [-4.5, 30.1]]], y: [0, 4.5]}}   # over the piston and up in the cistern, open
    - {id: air, kind: source, p: 0}   # out of the spout
  links:
    - {id: spring, from: ground, to: well, area: 30, cd: 0.62, z: -16}
    - {id: intake, from: well, to: pipe, area: 4.5239, cd: 0.8, z: -12.8}   # the pipe's open foot
    - {id: foot, from: pipe, to: under, area: 4.5239, cd: 0.62, z: 99, zTo: -99, open: {joint: j_fv, q: [0, 0.006], frac: [0, 1]}}
    - {id: through, from: under, to: over, area: 3.1416, cd: 0.62, z: 99, zTo: -99, open: {joint: j_bv, q: [0, 0.006], frac: [0, 1]}}
    - {id: spout, from: over, to: air, area: 8, cd: 0.62, z: 25.5, check: true,
       draw: {from: [-4.8, 0.75, 25.75], via: [[-8, 0.75, 25.15], [-10.3, 0.75, 23.45]], to: [-11.3, 0.75, 21.65], width: 1.4, flow: 0.08,
              fall: {dir: [-0.9, 0, -1.3], floor: -6.5}}}   # over the spout's lip, along it and falling from its mouth
  pistons:
    - {node: under, joint: j_p, area: 26.4208, sign: 1}
    - {node: over, joint: j_p, area: 26.1745, sign: -1}
    - {node: under, joint: j_bv, area: 3.1416, sign: 1}
    - {node: over, joint: j_bv, area: 3.1416, sign: -1}
    - {node: pipe, joint: j_fv, area: 4.5239, sign: 1}
    - {node: under, joint: j_fv, area: 4.5239, sign: -1, z: -99}
driver: {joint: j_h, kind: velocity, rpm: 0, swing: {amplitude: 0.55, hz: 0.5}, kv: 30, max_torque: 40}
checks:
  - {type: amplitude, joint: j_p, min: 0.028, max: 0.045, settle_s: 1.0, window_s: 8.5}
  - {type: amplitude, joint: j_fv, min: 0.001, max: 0.009, settle_s: 1.0, window_s: 8.5}
  - {type: amplitude, joint: j_bv, min: 0.001, max: 0.009, settle_s: 1.0, window_s: 8.5}
  - {type: penetration, max: 0.003}
camera: {target: [4.5, 0, 4.5], position: [4.5, -200, 7.5], fov: 24.5}
display:
  output: j_p
  labels: {j_h: "Handle (driver)", j_l: "Swinging link", j_p: "Piston (bucket)", j_bv: "Valve in piston", j_fv: "Lower valve"}
