# No. 450 (Brown 1868): "Ordinary force pump, with two valves. The cylinder is above water, and is fitted with solid piston; one valve
# closes outlet-pipe, and other closes suction-pipe. When piston is rising suction-valve is open, and water rushes into cylinder,
# outlet-valve being closed. On descent of piston suction-valve closes, and water is forced up through outlet-valve to any distance or
# elevation."
# Model (cm, gravity on, Brown's view from in front, the pump cut away in half section). The handle turns on the top of a swinging link
# from a lug on the barrel and is pinned to the piston-rod a short way along, so the rod rises and falls straight; the hand swings the
# handle (the only drive). The solid piston works in an open barrel. A flap hinged at one edge closes the suction hole in the barrel's
# foot; a passage from the foot leads to the outlet valve (a poppet) under the rising pipe. The water is lumped vessels
# (src/fluid/vessels.c): the barrel under the piston with the passage is a chamber the piston sweeps (28.2743 cm^2), the suction
# pipe is the well at -2000 Pa (its water ~20 cm down), and the rising pipe is an open tank (8.0425 cm^2) whose
# water rises with each down-stroke and runs over where the pipe is broken off. Both valves are real, the flap on a hinge and the poppet
# on a slide, shut by their weight and moved only by the pressures on their faces, passing water (orifice, cd 0.62) as far as they open.
# Generator: opencode-runs/cfd/gen450v.py (from opencode-runs/vessels/gen450.py).
number: 450
slug: ordinary-force-pump
name: Ordinary force pump
brown: "Ordinary force pump, with two valves. The cylinder is above water, and is fitted with solid piston; one valve closes outlet-pipe, and other closes suction-pipe. When piston is rising suction-valve is open, and water rushes into cylinder, outlet-valve being closed. On descent of piston suction-valve closes, and water is forced up through outlet-valve to any distance or elevation."
units: cm
sim:
  timestep: 0.0001
  integrator: implicitfast
  iterations: 60
  duration_s: 10
  floor: false
bodies:
  - id: link
    shape: part
    pos: [-5.9, 0, 17.9]
    mass: 0.03
    color: "#6d675c"
    pieces:
      - {kind: rod, from: [-5.9, -1.2, 17.9], to: [-5.9, -1.2, 23.3], radius: 0.4, capsule: true, collide: 0}
      - {kind: rod, from: [-5.9, -1.6, 23.3], to: [-5.9, 0.1, 23.3], radius: 0.25, collide: 0}
  - id: handle
    shape: part
    mount: link
    pos: [-5.9, 0, 23.3]
    mass: 0.15
    color: "#5f5a52"
    pieces:
      - {kind: rod, from: [-5.9, 0, 23.3], to: [-3, 0, 24.7], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [-3, 0, 24.7], to: [-0.3, 0, 24.3], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [-0.3, 0, 24.3], to: [5, 0, 24.6], radius: 0.42, capsule: true, collide: 0}
      - {kind: rod, from: [5, 0, 24.6], to: [10, 0, 22.4], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [10, 0, 22.4], to: [14, 0, 17], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [14, 0, 17], to: [17.4, 0, 10.8], radius: 0.36, capsule: true, collide: 0}
      - {kind: rod, from: [-5.9, -0.7, 23.3], to: [-5.9, 0.7, 23.3], radius: 0.6, collide: 0}
      - {kind: rod, from: [-0.3, -0.7, 24.3], to: [-0.3, 0.7, 24.3], radius: 0.6, collide: 0}
      - {kind: rod, from: [17.4, -0.6, 10.8], to: [17.4, 0.6, 10.8], radius: 0.95, capsule: true, collide: 0}
  - id: piston
    shape: part
    pos: [0, 0, 8]
    mass: 0.1
    color: "#8a8478"
    pieces:
      - {kind: loft, a: [[2.95, 0, 11.4], [2.7254, 1.1289, 11.4], [2.086, 2.086, 11.4], [1.1289, 2.7254, 11.4], [0, 2.95, 11.4], [-1.1289, 2.7254, 11.4], [-2.086, 2.086, 11.4], [-2.7254, 1.1289, 11.4], [-2.95, 0, 11.4], [-2.7254, -1.1289, 11.4], [-2.086, -2.086, 11.4], [-1.1289, -2.7254, 11.4], [-0, -2.95, 11.4], [1.1289, -2.7254, 11.4], [2.086, -2.086, 11.4], [2.7254, -1.1289, 11.4]], b: [[2.95, 0, 8], [2.7254, 1.1289, 8], [2.086, 2.086, 8], [1.1289, 2.7254, 8], [0, 2.95, 8], [-1.1289, 2.7254, 8], [-2.086, 2.086, 8], [-2.7254, 1.1289, 8], [-2.95, 0, 8], [-2.7254, -1.1289, 8], [-2.086, -2.086, 8], [-1.1289, -2.7254, 8], [-0, -2.95, 8], [1.1289, -2.7254, 8], [2.086, -2.086, 8], [2.7254, -1.1289, 8]], collide: 0, color: "#8a8478"}
      - {kind: loft, a: [[2.98, 0, 10.6], [2.7532, 1.1404, 10.6], [2.1072, 2.1072, 10.6], [1.1404, 2.7532, 10.6], [0, 2.98, 10.6], [-1.1404, 2.7532, 10.6], [-2.1072, 2.1072, 10.6], [-2.7532, 1.1404, 10.6], [-2.98, 0, 10.6], [-2.7532, -1.1404, 10.6], [-2.1072, -2.1072, 10.6], [-1.1404, -2.7532, 10.6], [-0, -2.98, 10.6], [1.1404, -2.7532, 10.6], [2.1072, -2.1072, 10.6], [2.7532, -1.1404, 10.6]], b: [[2.98, 0, 8.8], [2.7532, 1.1404, 8.8], [2.1072, 2.1072, 8.8], [1.1404, 2.7532, 8.8], [0, 2.98, 8.8], [-1.1404, 2.7532, 8.8], [-2.1072, 2.1072, 8.8], [-2.7532, 1.1404, 8.8], [-2.98, 0, 8.8], [-2.7532, -1.1404, 8.8], [-2.1072, -2.1072, 8.8], [-1.1404, -2.7532, 8.8], [-0, -2.98, 8.8], [1.1404, -2.7532, 8.8], [2.1072, -2.1072, 8.8], [2.7532, -1.1404, 8.8]], collide: 0, color: "#3d2e20"}
      - {kind: rod, from: [0, 0, 11.4], to: [0, 0, 24.3], radius: 0.35, collide: 0}
      - {kind: rod, from: [0, -0.5, 24.3], to: [0, 0.5, 24.3], radius: 0.55, collide: 0}
  - id: sflap
    shape: part
    pos: [-2, 0, 0.15]
    mass: 0.004
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[2, 0, 0.3], [1.8478, 0.7654, 0.3], [1.4142, 1.4142, 0.3], [0.7654, 1.8478, 0.3], [0, 2, 0.3], [-0.7654, 1.8478, 0.3], [-1.4142, 1.4142, 0.3], [-1.8478, 0.7654, 0.3], [-2, 0, 0.3], [-1.8478, -0.7654, 0.3], [-1.4142, -1.4142, 0.3], [-0.7654, -1.8478, 0.3], [-0, -2, 0.3], [0.7654, -1.8478, 0.3], [1.4142, -1.4142, 0.3], [1.8478, -0.7654, 0.3]], b: [[2, 0, 0], [1.8478, 0.7654, 0], [1.4142, 1.4142, 0], [0.7654, 1.8478, 0], [0, 2, 0], [-0.7654, 1.8478, 0], [-1.4142, 1.4142, 0], [-1.8478, 0.7654, 0], [-2, 0, 0], [-1.8478, -0.7654, 0], [-1.4142, -1.4142, 0], [-0.7654, -1.8478, 0], [-0, -2, 0], [0.7654, -1.8478, 0], [1.4142, -1.4142, 0], [1.8478, -0.7654, 0]], collide: 0}
      - {kind: rod, from: [-2, -0.9, 0.15], to: [-2, 0.9, 0.15], radius: 0.2, collide: 0}
  - id: ovalve
    shape: part
    pos: [-10.5, 0, 4.2]
    mass: 0.004
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[-9.1, 0, 4.5], [-9.2066, 0.5358, 4.5], [-9.5101, 0.9899, 4.5], [-9.9642, 1.2934, 4.5], [-10.5, 1.4, 4.5], [-11.0358, 1.2934, 4.5], [-11.4899, 0.9899, 4.5], [-11.7934, 0.5358, 4.5], [-11.9, 0, 4.5], [-11.7934, -0.5358, 4.5], [-11.4899, -0.9899, 4.5], [-11.0358, -1.2934, 4.5], [-10.5, -1.4, 4.5], [-9.9642, -1.2934, 4.5], [-9.5101, -0.9899, 4.5], [-9.2066, -0.5358, 4.5]], b: [[-9.1, 0, 4.2], [-9.2066, 0.5358, 4.2], [-9.5101, 0.9899, 4.2], [-9.9642, 1.2934, 4.2], [-10.5, 1.4, 4.2], [-11.0358, 1.2934, 4.2], [-11.4899, 0.9899, 4.2], [-11.7934, 0.5358, 4.2], [-11.9, 0, 4.2], [-11.7934, -0.5358, 4.2], [-11.4899, -0.9899, 4.2], [-11.0358, -1.2934, 4.2], [-10.5, -1.4, 4.2], [-9.9642, -1.2934, 4.2], [-9.5101, -0.9899, 4.2], [-9.2066, -0.5358, 4.2]], collide: 0}
      - {kind: loft, a: [[-10.2, 0, 5.3], [-10.2402, 0.15, 5.3], [-10.35, 0.2598, 5.3], [-10.5, 0.3, 5.3], [-10.65, 0.2598, 5.3], [-10.7598, 0.15, 5.3], [-10.8, 0, 5.3], [-10.7598, -0.15, 5.3], [-10.65, -0.2598, 5.3], [-10.5, -0.3, 5.3], [-10.35, -0.2598, 5.3], [-10.2402, -0.15, 5.3]], b: [[-9.3, 0, 4.5], [-9.4608, 0.6, 4.5], [-9.9, 1.0392, 4.5], [-10.5, 1.2, 4.5], [-11.1, 1.0392, 4.5], [-11.5392, 0.6, 4.5], [-11.7, 0, 4.5], [-11.5392, -0.6, 4.5], [-11.1, -1.0392, 4.5], [-10.5, -1.2, 4.5], [-9.9, -1.0392, 4.5], [-9.4608, -0.6, 4.5]], collide: 0}
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: loft, a: [[3, 0, 17.9], [2.7716, 1.1481, 17.9], [3.4184, 1.4159, 17.9], [3.7, 0, 17.9]], b: [[3, 0, 0], [2.7716, 1.1481, 0], [3.4184, 1.4159, 0], [3.7, 0, 0]], collide: 0}
      - {kind: loft, a: [[2.7716, 1.1481, 17.9], [2.1213, 2.1213, 17.9], [2.6163, 2.6163, 17.9], [3.4184, 1.4159, 17.9]], b: [[2.7716, 1.1481, 0], [2.1213, 2.1213, 0], [2.6163, 2.6163, 0], [3.4184, 1.4159, 0]], collide: 0}
      - {kind: loft, a: [[2.1213, 2.1213, 17.9], [1.1481, 2.7716, 17.9], [1.4159, 3.4184, 17.9], [2.6163, 2.6163, 17.9]], b: [[2.1213, 2.1213, 0], [1.1481, 2.7716, 0], [1.4159, 3.4184, 0], [2.6163, 2.6163, 0]], collide: 0}
      - {kind: loft, a: [[1.1481, 2.7716, 17.9], [0, 3, 17.9], [0, 3.7, 17.9], [1.4159, 3.4184, 17.9]], b: [[1.1481, 2.7716, 0], [0, 3, 0], [0, 3.7, 0], [1.4159, 3.4184, 0]], collide: 0}
      - {kind: loft, a: [[0, 3, 17.9], [-1.1481, 2.7716, 17.9], [-1.4159, 3.4184, 17.9], [0, 3.7, 17.9]], b: [[0, 3, 0], [-1.1481, 2.7716, 0], [-1.4159, 3.4184, 0], [0, 3.7, 0]], collide: 0}
      - {kind: loft, a: [[-1.1481, 2.7716, 17.9], [-2.1213, 2.1213, 17.9], [-2.6163, 2.6163, 17.9], [-1.4159, 3.4184, 17.9]], b: [[-1.1481, 2.7716, 0], [-2.1213, 2.1213, 0], [-2.6163, 2.6163, 0], [-1.4159, 3.4184, 0]], collide: 0}
      - {kind: loft, a: [[-2.1213, 2.1213, 17.9], [-3, 0, 17.9], [-3.7, 0, 17.9], [-2.6163, 2.6163, 17.9]], b: [[-2.1213, 2.1213, 2.9], [-3, 0, 2.9], [-3.7, 0, 2.9], [-2.6163, 2.6163, 2.9]], collide: 0}
      - {kind: loft, a: [[-2.1213, 2.1213, 1.25], [-3, 0, 1.25], [-3.7, 0, 1.25], [-2.6163, 2.6163, 1.25]], b: [[-2.1213, 2.1213, 0], [-3, 0, 0], [-3.7, 0, 0], [-2.6163, 2.6163, 0]], collide: 0}
      - {kind: loft, a: [[3.7, 0, 17.9], [3.4184, 1.4159, 17.9], [3.8803, 1.6073, 17.9], [4.2, 0, 17.9]], b: [[3.7, 0, 17.3], [3.4184, 1.4159, 17.3], [3.8803, 1.6073, 17.3], [4.2, 0, 17.3]], collide: 0}
      - {kind: loft, a: [[3.4184, 1.4159, 17.9], [2.6163, 2.6163, 17.9], [2.9698, 2.9698, 17.9], [3.8803, 1.6073, 17.9]], b: [[3.4184, 1.4159, 17.3], [2.6163, 2.6163, 17.3], [2.9698, 2.9698, 17.3], [3.8803, 1.6073, 17.3]], collide: 0}
      - {kind: loft, a: [[2.6163, 2.6163, 17.9], [1.4159, 3.4184, 17.9], [1.6073, 3.8803, 17.9], [2.9698, 2.9698, 17.9]], b: [[2.6163, 2.6163, 17.3], [1.4159, 3.4184, 17.3], [1.6073, 3.8803, 17.3], [2.9698, 2.9698, 17.3]], collide: 0}
      - {kind: loft, a: [[1.4159, 3.4184, 17.9], [0, 3.7, 17.9], [0, 4.2, 17.9], [1.6073, 3.8803, 17.9]], b: [[1.4159, 3.4184, 17.3], [0, 3.7, 17.3], [0, 4.2, 17.3], [1.6073, 3.8803, 17.3]], collide: 0}
      - {kind: loft, a: [[0, 3.7, 17.9], [-1.4159, 3.4184, 17.9], [-1.6073, 3.8803, 17.9], [0, 4.2, 17.9]], b: [[0, 3.7, 17.3], [-1.4159, 3.4184, 17.3], [-1.6073, 3.8803, 17.3], [0, 4.2, 17.3]], collide: 0}
      - {kind: loft, a: [[-1.4159, 3.4184, 17.9], [-2.6163, 2.6163, 17.9], [-2.9698, 2.9698, 17.9], [-1.6073, 3.8803, 17.9]], b: [[-1.4159, 3.4184, 17.3], [-2.6163, 2.6163, 17.3], [-2.9698, 2.9698, 17.3], [-1.6073, 3.8803, 17.3]], collide: 0}
      - {kind: loft, a: [[-2.6163, 2.6163, 17.9], [-3.4184, 1.4159, 17.9], [-3.8803, 1.6073, 17.9], [-2.9698, 2.9698, 17.9]], b: [[-2.6163, 2.6163, 17.3], [-3.4184, 1.4159, 17.3], [-3.8803, 1.6073, 17.3], [-2.9698, 2.9698, 17.3]], collide: 0}
      - {kind: loft, a: [[-3.4184, 1.4159, 17.9], [-3.7, 0, 17.9], [-4.2, 0, 17.9], [-3.8803, 1.6073, 17.9]], b: [[-3.4184, 1.4159, 17.3], [-3.7, 0, 17.3], [-4.2, 0, 17.3], [-3.8803, 1.6073, 17.3]], collide: 0}
      - {kind: loft, a: [[1.6, 0, 0], [1.4782, 0.6123, 0], [4.4346, 1.8369, 0], [4.8, 0, 0]], b: [[1.6, 0, -0.8], [1.4782, 0.6123, -0.8], [4.4346, 1.8369, -0.8], [4.8, 0, -0.8]], collide: 0}
      - {kind: loft, a: [[1.4782, 0.6123, 0], [1.1314, 1.1314, 0], [3.3941, 3.3941, 0], [4.4346, 1.8369, 0]], b: [[1.4782, 0.6123, -0.8], [1.1314, 1.1314, -0.8], [3.3941, 3.3941, -0.8], [4.4346, 1.8369, -0.8]], collide: 0}
      - {kind: loft, a: [[1.1314, 1.1314, 0], [0.6123, 1.4782, 0], [1.8369, 4.4346, 0], [3.3941, 3.3941, 0]], b: [[1.1314, 1.1314, -0.8], [0.6123, 1.4782, -0.8], [1.8369, 4.4346, -0.8], [3.3941, 3.3941, -0.8]], collide: 0}
      - {kind: loft, a: [[0.6123, 1.4782, 0], [0, 1.6, 0], [0, 4.8, 0], [1.8369, 4.4346, 0]], b: [[0.6123, 1.4782, -0.8], [0, 1.6, -0.8], [0, 4.8, -0.8], [1.8369, 4.4346, -0.8]], collide: 0}
      - {kind: loft, a: [[0, 1.6, 0], [-0.6123, 1.4782, 0], [-1.8369, 4.4346, 0], [0, 4.8, 0]], b: [[0, 1.6, -0.8], [-0.6123, 1.4782, -0.8], [-1.8369, 4.4346, -0.8], [0, 4.8, -0.8]], collide: 0}
      - {kind: loft, a: [[-0.6123, 1.4782, 0], [-1.1314, 1.1314, 0], [-3.3941, 3.3941, 0], [-1.8369, 4.4346, 0]], b: [[-0.6123, 1.4782, -0.8], [-1.1314, 1.1314, -0.8], [-3.3941, 3.3941, -0.8], [-1.8369, 4.4346, -0.8]], collide: 0}
      - {kind: loft, a: [[-1.1314, 1.1314, 0], [-1.4782, 0.6123, 0], [-4.4346, 1.8369, 0], [-3.3941, 3.3941, 0]], b: [[-1.1314, 1.1314, -0.8], [-1.4782, 0.6123, -0.8], [-4.4346, 1.8369, -0.8], [-3.3941, 3.3941, -0.8]], collide: 0}
      - {kind: loft, a: [[-1.4782, 0.6123, 0], [-1.6, 0, 0], [-4.8, 0, 0], [-4.4346, 1.8369, 0]], b: [[-1.4782, 0.6123, -0.8], [-1.6, 0, -0.8], [-4.8, 0, -0.8], [-4.4346, 1.8369, -0.8]], collide: 0}
      - {kind: loft, a: [[2.2, 0, -0.8], [2.0325, 0.8419, -0.8], [2.6793, 1.1098, -0.8], [2.9, 0, -0.8]], b: [[2.2, 0, -15], [2.0325, 0.8419, -15], [2.6793, 1.1098, -15], [2.9, 0, -15]], collide: 0}
      - {kind: loft, a: [[2.0325, 0.8419, -0.8], [1.5556, 1.5556, -0.8], [2.0506, 2.0506, -0.8], [2.6793, 1.1098, -0.8]], b: [[2.0325, 0.8419, -15], [1.5556, 1.5556, -15], [2.0506, 2.0506, -15], [2.6793, 1.1098, -15]], collide: 0}
      - {kind: loft, a: [[1.5556, 1.5556, -0.8], [0.8419, 2.0325, -0.8], [1.1098, 2.6793, -0.8], [2.0506, 2.0506, -0.8]], b: [[1.5556, 1.5556, -15], [0.8419, 2.0325, -15], [1.1098, 2.6793, -15], [2.0506, 2.0506, -15]], collide: 0}
      - {kind: loft, a: [[0.8419, 2.0325, -0.8], [0, 2.2, -0.8], [0, 2.9, -0.8], [1.1098, 2.6793, -0.8]], b: [[0.8419, 2.0325, -15], [0, 2.2, -15], [0, 2.9, -15], [1.1098, 2.6793, -15]], collide: 0}
      - {kind: loft, a: [[0, 2.2, -0.8], [-0.8419, 2.0325, -0.8], [-1.1098, 2.6793, -0.8], [0, 2.9, -0.8]], b: [[0, 2.2, -15], [-0.8419, 2.0325, -15], [-1.1098, 2.6793, -15], [0, 2.9, -15]], collide: 0}
      - {kind: loft, a: [[-0.8419, 2.0325, -0.8], [-1.5556, 1.5556, -0.8], [-2.0506, 2.0506, -0.8], [-1.1098, 2.6793, -0.8]], b: [[-0.8419, 2.0325, -15], [-1.5556, 1.5556, -15], [-2.0506, 2.0506, -15], [-1.1098, 2.6793, -15]], collide: 0}
      - {kind: loft, a: [[-1.5556, 1.5556, -0.8], [-2.0325, 0.8419, -0.8], [-2.6793, 1.1098, -0.8], [-2.0506, 2.0506, -0.8]], b: [[-1.5556, 1.5556, -15], [-2.0325, 0.8419, -15], [-2.6793, 1.1098, -15], [-2.0506, 2.0506, -15]], collide: 0}
      - {kind: loft, a: [[-2.0325, 0.8419, -0.8], [-2.2, 0, -0.8], [-2.9, 0, -0.8], [-2.6793, 1.1098, -0.8]], b: [[-2.0325, 0.8419, -15], [-2.2, 0, -15], [-2.9, 0, -15], [-2.6793, 1.1098, -15]], collide: 0}
      - {kind: loft, a: [[-7.6, 0, -18], [7.6, 0, -18], [7.6, 6.6, -18], [-7.6, 6.6, -18]], b: [[-7.6, 0, -18.6], [7.6, 0, -18.6], [7.6, 6.6, -18.6], [-7.6, 6.6, -18.6]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-7.6, 6, -8], [7.6, 6, -8], [7.6, 6.6, -8], [-7.6, 6.6, -8]], b: [[-7.6, 6, -18], [7.6, 6, -18], [7.6, 6.6, -18], [-7.6, 6.6, -18]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-7.6, 0, -8], [-7, 0, -8], [-7, 6, -8], [-7.6, 6, -8]], b: [[-7.6, 0, -18], [-7, 0, -18], [-7, 6, -18], [-7.6, 6, -18]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[7, 0, -8], [7.6, 0, -8], [7.6, 6, -8], [7, 6, -8]], b: [[7, 0, -18], [7.6, 0, -18], [7.6, 6, -18], [7, 6, -18]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-24, 0, -8], [-7.6, 0, -8], [-7.6, 8, -8], [-24, 8, -8]], b: [[-24, 0, -9.2], [-7.6, 0, -9.2], [-7.6, 8, -9.2], [-24, 8, -9.2]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[7.6, 0, -8], [24, 0, -8], [24, 8, -8], [7.6, 8, -8]], b: [[7.6, 0, -9.2], [24, 0, -9.2], [24, 8, -9.2], [7.6, 8, -9.2]], collide: 0, color: "#8b7d66"}
      - {kind: loft, a: [[2.9, 0, -2.6], [2.6793, 1.1098, -2.6], [4.4346, 1.8369, -2.6], [4.8, 0, -2.6]], b: [[2.9, 0, -4.4], [2.6793, 1.1098, -4.4], [4.4346, 1.8369, -4.4], [4.8, 0, -4.4]], collide: 0}
      - {kind: loft, a: [[2.6793, 1.1098, -2.6], [2.0506, 2.0506, -2.6], [3.3941, 3.3941, -2.6], [4.4346, 1.8369, -2.6]], b: [[2.6793, 1.1098, -4.4], [2.0506, 2.0506, -4.4], [3.3941, 3.3941, -4.4], [4.4346, 1.8369, -4.4]], collide: 0}
      - {kind: loft, a: [[2.0506, 2.0506, -2.6], [1.1098, 2.6793, -2.6], [1.8369, 4.4346, -2.6], [3.3941, 3.3941, -2.6]], b: [[2.0506, 2.0506, -4.4], [1.1098, 2.6793, -4.4], [1.8369, 4.4346, -4.4], [3.3941, 3.3941, -4.4]], collide: 0}
      - {kind: loft, a: [[1.1098, 2.6793, -2.6], [0, 2.9, -2.6], [0, 4.8, -2.6], [1.8369, 4.4346, -2.6]], b: [[1.1098, 2.6793, -4.4], [0, 2.9, -4.4], [0, 4.8, -4.4], [1.8369, 4.4346, -4.4]], collide: 0}
      - {kind: loft, a: [[0, 2.9, -2.6], [-1.1098, 2.6793, -2.6], [-1.8369, 4.4346, -2.6], [0, 4.8, -2.6]], b: [[0, 2.9, -4.4], [-1.1098, 2.6793, -4.4], [-1.8369, 4.4346, -4.4], [0, 4.8, -4.4]], collide: 0}
      - {kind: loft, a: [[-1.1098, 2.6793, -2.6], [-2.0506, 2.0506, -2.6], [-3.3941, 3.3941, -2.6], [-1.8369, 4.4346, -2.6]], b: [[-1.1098, 2.6793, -4.4], [-2.0506, 2.0506, -4.4], [-3.3941, 3.3941, -4.4], [-1.8369, 4.4346, -4.4]], collide: 0}
      - {kind: loft, a: [[-2.0506, 2.0506, -2.6], [-2.6793, 1.1098, -2.6], [-4.4346, 1.8369, -2.6], [-3.3941, 3.3941, -2.6]], b: [[-2.0506, 2.0506, -4.4], [-2.6793, 1.1098, -4.4], [-4.4346, 1.8369, -4.4], [-3.3941, 3.3941, -4.4]], collide: 0}
      - {kind: loft, a: [[-2.6793, 1.1098, -2.6], [-2.9, 0, -2.6], [-4.8, 0, -2.6], [-4.4346, 1.8369, -2.6]], b: [[-2.6793, 1.1098, -4.4], [-2.9, 0, -4.4], [-4.8, 0, -4.4], [-4.4346, 1.8369, -4.4]], collide: 0}
      - {kind: loft, a: [[-12.9, 0, 1.25], [-3, 0, 1.25], [-3, 1.6, 1.25], [-12.9, 1.6, 1.25]], b: [[-12.9, 0, 0.55], [-3, 0, 0.55], [-3, 1.6, 0.55], [-12.9, 1.6, 0.55]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-8.8, 0.85, 2.9], [-3.1, 0.85, 2.9], [-3.1, 1.6, 2.9], [-8.8, 1.6, 2.9]], b: [[-8.8, 0.85, 1.25], [-3.1, 0.85, 1.25], [-3.1, 1.6, 1.25], [-8.8, 1.6, 1.25]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-8.8, 0, 3.6], [-3.1, 0, 3.6], [-3.1, 1.6, 3.6], [-8.8, 1.6, 3.6]], b: [[-8.8, 0, 2.9], [-3.1, 0, 2.9], [-3.1, 1.6, 2.9], [-8.8, 1.6, 2.9]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-10.5, 1.7, 3.7], [-11.1506, 1.5706, 3.7], [-11.4184, 2.2173, 3.7], [-10.5, 2.4, 3.7]], b: [[-10.5, 1.7, 1.25], [-11.1506, 1.5706, 1.25], [-11.4184, 2.2173, 1.25], [-10.5, 2.4, 1.25]], collide: 0}
      - {kind: loft, a: [[-11.1506, 1.5706, 3.7], [-11.7021, 1.2021, 3.7], [-12.1971, 1.6971, 3.7], [-11.4184, 2.2173, 3.7]], b: [[-11.1506, 1.5706, 1.25], [-11.7021, 1.2021, 1.25], [-12.1971, 1.6971, 1.25], [-11.4184, 2.2173, 1.25]], collide: 0}
      - {kind: loft, a: [[-11.7021, 1.2021, 3.7], [-12.0706, 0.6506, 3.7], [-12.7173, 0.9184, 3.7], [-12.1971, 1.6971, 3.7]], b: [[-11.7021, 1.2021, 1.25], [-12.0706, 0.6506, 1.25], [-12.7173, 0.9184, 1.25], [-12.1971, 1.6971, 1.25]], collide: 0}
      - {kind: loft, a: [[-12.0706, 0.6506, 3.7], [-12.2, 0, 3.7], [-12.9, 0, 3.7], [-12.7173, 0.9184, 3.7]], b: [[-12.0706, 0.6506, 1.25], [-12.2, 0, 1.25], [-12.9, 0, 1.25], [-12.7173, 0.9184, 1.25]], collide: 0}
      - {kind: loft, a: [[-8.8, 0, 3.7], [-8.9294, 0.6506, 3.7], [-8.2827, 0.9184, 3.7], [-8.1, 0, 3.7]], b: [[-8.8, 0, 2.9], [-8.9294, 0.6506, 2.9], [-8.2827, 0.9184, 2.9], [-8.1, 0, 2.9]], collide: 0}
      - {kind: loft, a: [[-8.9294, 0.6506, 3.7], [-9.2979, 1.2021, 3.7], [-8.8029, 1.6971, 3.7], [-8.2827, 0.9184, 3.7]], b: [[-8.9294, 0.6506, 2.9], [-9.2979, 1.2021, 2.9], [-8.8029, 1.6971, 2.9], [-8.2827, 0.9184, 2.9]], collide: 0}
      - {kind: loft, a: [[-9.2979, 1.2021, 3.7], [-9.8494, 1.5706, 3.7], [-9.5816, 2.2173, 3.7], [-8.8029, 1.6971, 3.7]], b: [[-9.2979, 1.2021, 2.9], [-9.8494, 1.5706, 2.9], [-9.5816, 2.2173, 2.9], [-8.8029, 1.6971, 2.9]], collide: 0}
      - {kind: loft, a: [[-9.8494, 1.5706, 3.7], [-10.5, 1.7, 3.7], [-10.5, 2.4, 3.7], [-9.5816, 2.2173, 3.7]], b: [[-9.8494, 1.5706, 2.9], [-10.5, 1.7, 2.9], [-10.5, 2.4, 2.9], [-9.5816, 2.2173, 2.9]], collide: 0}
      - {kind: loft, a: [[-9.5, 0, 4.2], [-9.5761, 0.3827, 4.2], [-6.7121, 1.569, 4.2], [-6.4, 0, 4.2]], b: [[-9.5, 0, 3.7], [-9.5761, 0.3827, 3.7], [-6.7121, 1.569, 3.7], [-6.4, 0, 3.7]], collide: 0}
      - {kind: loft, a: [[-9.5761, 0.3827, 4.2], [-9.7929, 0.7071, 4.2], [-7.6009, 2.8991, 4.2], [-6.7121, 1.569, 4.2]], b: [[-9.5761, 0.3827, 3.7], [-9.7929, 0.7071, 3.7], [-7.6009, 2.8991, 3.7], [-6.7121, 1.569, 3.7]], collide: 0}
      - {kind: loft, a: [[-9.7929, 0.7071, 4.2], [-10.1173, 0.9239, 4.2], [-8.931, 3.7879, 4.2], [-7.6009, 2.8991, 4.2]], b: [[-9.7929, 0.7071, 3.7], [-10.1173, 0.9239, 3.7], [-8.931, 3.7879, 3.7], [-7.6009, 2.8991, 3.7]], collide: 0}
      - {kind: loft, a: [[-10.1173, 0.9239, 4.2], [-10.5, 1, 4.2], [-10.5, 4.1, 4.2], [-8.931, 3.7879, 4.2]], b: [[-10.1173, 0.9239, 3.7], [-10.5, 1, 3.7], [-10.5, 4.1, 3.7], [-8.931, 3.7879, 3.7]], collide: 0}
      - {kind: loft, a: [[-10.5, 1, 4.2], [-10.8827, 0.9239, 4.2], [-12.069, 3.7879, 4.2], [-10.5, 4.1, 4.2]], b: [[-10.5, 1, 3.7], [-10.8827, 0.9239, 3.7], [-12.069, 3.7879, 3.7], [-10.5, 4.1, 3.7]], collide: 0}
      - {kind: loft, a: [[-10.8827, 0.9239, 4.2], [-11.2071, 0.7071, 4.2], [-13.3991, 2.8991, 4.2], [-12.069, 3.7879, 4.2]], b: [[-10.8827, 0.9239, 3.7], [-11.2071, 0.7071, 3.7], [-13.3991, 2.8991, 3.7], [-12.069, 3.7879, 3.7]], collide: 0}
      - {kind: loft, a: [[-11.2071, 0.7071, 4.2], [-11.4239, 0.3827, 4.2], [-14.2879, 1.569, 4.2], [-13.3991, 2.8991, 4.2]], b: [[-11.2071, 0.7071, 3.7], [-11.4239, 0.3827, 3.7], [-14.2879, 1.569, 3.7], [-13.3991, 2.8991, 3.7]], collide: 0}
      - {kind: loft, a: [[-11.4239, 0.3827, 4.2], [-11.5, 0, 4.2], [-14.6, 0, 4.2], [-14.2879, 1.569, 4.2]], b: [[-11.4239, 0.3827, 3.7], [-11.5, 0, 3.7], [-14.6, 0, 3.7], [-14.2879, 1.569, 3.7]], collide: 0}
      - {kind: loft, a: [[-7.5, 0, 5.1], [-7.7284, 1.1481, 5.1], [-7.174, 1.3777, 5.1], [-6.9, 0, 5.1]], b: [[-8.4, 0, 4.2], [-8.5599, 0.8036, 4.2], [-8.0055, 1.0332, 4.2], [-7.8, 0, 4.2]], collide: 0}
      - {kind: loft, a: [[-7.7284, 1.1481, 5.1], [-8.3787, 2.1213, 5.1], [-7.9544, 2.5456, 5.1], [-7.174, 1.3777, 5.1]], b: [[-8.5599, 0.8036, 4.2], [-9.0151, 1.4849, 4.2], [-8.5908, 1.9092, 4.2], [-8.0055, 1.0332, 4.2]], collide: 0}
      - {kind: loft, a: [[-8.3787, 2.1213, 5.1], [-9.3519, 2.7716, 5.1], [-9.1223, 3.326, 5.1], [-7.9544, 2.5456, 5.1]], b: [[-9.0151, 1.4849, 4.2], [-9.6964, 1.9401, 4.2], [-9.4668, 2.4945, 4.2], [-8.5908, 1.9092, 4.2]], collide: 0}
      - {kind: loft, a: [[-9.3519, 2.7716, 5.1], [-10.5, 3, 5.1], [-10.5, 3.6, 5.1], [-9.1223, 3.326, 5.1]], b: [[-9.6964, 1.9401, 4.2], [-10.5, 2.1, 4.2], [-10.5, 2.7, 4.2], [-9.4668, 2.4945, 4.2]], collide: 0}
      - {kind: loft, a: [[-10.5, 3, 5.1], [-11.6481, 2.7716, 5.1], [-11.8777, 3.326, 5.1], [-10.5, 3.6, 5.1]], b: [[-10.5, 2.1, 4.2], [-11.3036, 1.9401, 4.2], [-11.5332, 2.4945, 4.2], [-10.5, 2.7, 4.2]], collide: 0}
      - {kind: loft, a: [[-11.6481, 2.7716, 5.1], [-12.6213, 2.1213, 5.1], [-13.0456, 2.5456, 5.1], [-11.8777, 3.326, 5.1]], b: [[-11.3036, 1.9401, 4.2], [-11.9849, 1.4849, 4.2], [-12.4092, 1.9092, 4.2], [-11.5332, 2.4945, 4.2]], collide: 0}
      - {kind: loft, a: [[-12.6213, 2.1213, 5.1], [-13.2716, 1.1481, 5.1], [-13.826, 1.3777, 5.1], [-13.0456, 2.5456, 5.1]], b: [[-11.9849, 1.4849, 4.2], [-12.4401, 0.8036, 4.2], [-12.9945, 1.0332, 4.2], [-12.4092, 1.9092, 4.2]], collide: 0}
      - {kind: loft, a: [[-13.2716, 1.1481, 5.1], [-13.5, 0, 5.1], [-14.1, 0, 5.1], [-13.826, 1.3777, 5.1]], b: [[-12.4401, 0.8036, 4.2], [-12.6, 0, 4.2], [-13.2, 0, 4.2], [-12.9945, 1.0332, 4.2]], collide: 0}
      - {kind: loft, a: [[-7.5, 0, 6.8], [-7.7284, 1.1481, 6.8], [-7.174, 1.3777, 6.8], [-6.9, 0, 6.8]], b: [[-7.5, 0, 5.1], [-7.7284, 1.1481, 5.1], [-7.174, 1.3777, 5.1], [-6.9, 0, 5.1]], collide: 0}
      - {kind: loft, a: [[-7.7284, 1.1481, 6.8], [-8.3787, 2.1213, 6.8], [-7.9544, 2.5456, 6.8], [-7.174, 1.3777, 6.8]], b: [[-7.7284, 1.1481, 5.1], [-8.3787, 2.1213, 5.1], [-7.9544, 2.5456, 5.1], [-7.174, 1.3777, 5.1]], collide: 0}
      - {kind: loft, a: [[-8.3787, 2.1213, 6.8], [-9.3519, 2.7716, 6.8], [-9.1223, 3.326, 6.8], [-7.9544, 2.5456, 6.8]], b: [[-8.3787, 2.1213, 5.1], [-9.3519, 2.7716, 5.1], [-9.1223, 3.326, 5.1], [-7.9544, 2.5456, 5.1]], collide: 0}
      - {kind: loft, a: [[-9.3519, 2.7716, 6.8], [-10.5, 3, 6.8], [-10.5, 3.6, 6.8], [-9.1223, 3.326, 6.8]], b: [[-9.3519, 2.7716, 5.1], [-10.5, 3, 5.1], [-10.5, 3.6, 5.1], [-9.1223, 3.326, 5.1]], collide: 0}
      - {kind: loft, a: [[-10.5, 3, 6.8], [-11.6481, 2.7716, 6.8], [-11.8777, 3.326, 6.8], [-10.5, 3.6, 6.8]], b: [[-10.5, 3, 5.1], [-11.6481, 2.7716, 5.1], [-11.8777, 3.326, 5.1], [-10.5, 3.6, 5.1]], collide: 0}
      - {kind: loft, a: [[-11.6481, 2.7716, 6.8], [-12.6213, 2.1213, 6.8], [-13.0456, 2.5456, 6.8], [-11.8777, 3.326, 6.8]], b: [[-11.6481, 2.7716, 5.1], [-12.6213, 2.1213, 5.1], [-13.0456, 2.5456, 5.1], [-11.8777, 3.326, 5.1]], collide: 0}
      - {kind: loft, a: [[-12.6213, 2.1213, 6.8], [-13.2716, 1.1481, 6.8], [-13.826, 1.3777, 6.8], [-13.0456, 2.5456, 6.8]], b: [[-12.6213, 2.1213, 5.1], [-13.2716, 1.1481, 5.1], [-13.826, 1.3777, 5.1], [-13.0456, 2.5456, 5.1]], collide: 0}
      - {kind: loft, a: [[-13.2716, 1.1481, 6.8], [-13.5, 0, 6.8], [-14.1, 0, 6.8], [-13.826, 1.3777, 6.8]], b: [[-13.2716, 1.1481, 5.1], [-13.5, 0, 5.1], [-14.1, 0, 5.1], [-13.826, 1.3777, 5.1]], collide: 0}
      - {kind: loft, a: [[-8.9, 0, 8.5], [-9.0218, 0.6123, 8.5], [-8.4675, 0.8419, 8.5], [-8.3, 0, 8.5]], b: [[-7.5, 0, 6.8], [-7.7284, 1.1481, 6.8], [-7.174, 1.3777, 6.8], [-6.9, 0, 6.8]], collide: 0}
      - {kind: loft, a: [[-9.0218, 0.6123, 8.5], [-9.3686, 1.1314, 8.5], [-8.9444, 1.5556, 8.5], [-8.4675, 0.8419, 8.5]], b: [[-7.7284, 1.1481, 6.8], [-8.3787, 2.1213, 6.8], [-7.9544, 2.5456, 6.8], [-7.174, 1.3777, 6.8]], collide: 0}
      - {kind: loft, a: [[-9.3686, 1.1314, 8.5], [-9.8877, 1.4782, 8.5], [-9.6581, 2.0325, 8.5], [-8.9444, 1.5556, 8.5]], b: [[-8.3787, 2.1213, 6.8], [-9.3519, 2.7716, 6.8], [-9.1223, 3.326, 6.8], [-7.9544, 2.5456, 6.8]], collide: 0}
      - {kind: loft, a: [[-9.8877, 1.4782, 8.5], [-10.5, 1.6, 8.5], [-10.5, 2.2, 8.5], [-9.6581, 2.0325, 8.5]], b: [[-9.3519, 2.7716, 6.8], [-10.5, 3, 6.8], [-10.5, 3.6, 6.8], [-9.1223, 3.326, 6.8]], collide: 0}
      - {kind: loft, a: [[-10.5, 1.6, 8.5], [-11.1123, 1.4782, 8.5], [-11.3419, 2.0325, 8.5], [-10.5, 2.2, 8.5]], b: [[-10.5, 3, 6.8], [-11.6481, 2.7716, 6.8], [-11.8777, 3.326, 6.8], [-10.5, 3.6, 6.8]], collide: 0}
      - {kind: loft, a: [[-11.1123, 1.4782, 8.5], [-11.6314, 1.1314, 8.5], [-12.0556, 1.5556, 8.5], [-11.3419, 2.0325, 8.5]], b: [[-11.6481, 2.7716, 6.8], [-12.6213, 2.1213, 6.8], [-13.0456, 2.5456, 6.8], [-11.8777, 3.326, 6.8]], collide: 0}
      - {kind: loft, a: [[-11.6314, 1.1314, 8.5], [-11.9782, 0.6123, 8.5], [-12.5325, 0.8419, 8.5], [-12.0556, 1.5556, 8.5]], b: [[-12.6213, 2.1213, 6.8], [-13.2716, 1.1481, 6.8], [-13.826, 1.3777, 6.8], [-13.0456, 2.5456, 6.8]], collide: 0}
      - {kind: loft, a: [[-11.9782, 0.6123, 8.5], [-12.1, 0, 8.5], [-12.7, 0, 8.5], [-12.5325, 0.8419, 8.5]], b: [[-13.2716, 1.1481, 6.8], [-13.5, 0, 6.8], [-14.1, 0, 6.8], [-13.826, 1.3777, 6.8]], collide: 0}
      - {kind: loft, a: [[-8.3, 0, 4.7], [-8.4675, 0.8419, 4.7], [-6.7121, 1.569, 4.7], [-6.4, 0, 4.7]], b: [[-8.3, 0, 4.2], [-8.4675, 0.8419, 4.2], [-6.7121, 1.569, 4.2], [-6.4, 0, 4.2]], collide: 0}
      - {kind: loft, a: [[-8.4675, 0.8419, 4.7], [-8.9444, 1.5556, 4.7], [-7.6009, 2.8991, 4.7], [-6.7121, 1.569, 4.7]], b: [[-8.4675, 0.8419, 4.2], [-8.9444, 1.5556, 4.2], [-7.6009, 2.8991, 4.2], [-6.7121, 1.569, 4.2]], collide: 0}
      - {kind: loft, a: [[-8.9444, 1.5556, 4.7], [-9.6581, 2.0325, 4.7], [-8.931, 3.7879, 4.7], [-7.6009, 2.8991, 4.7]], b: [[-8.9444, 1.5556, 4.2], [-9.6581, 2.0325, 4.2], [-8.931, 3.7879, 4.2], [-7.6009, 2.8991, 4.2]], collide: 0}
      - {kind: loft, a: [[-9.6581, 2.0325, 4.7], [-10.5, 2.2, 4.7], [-10.5, 4.1, 4.7], [-8.931, 3.7879, 4.7]], b: [[-9.6581, 2.0325, 4.2], [-10.5, 2.2, 4.2], [-10.5, 4.1, 4.2], [-8.931, 3.7879, 4.2]], collide: 0}
      - {kind: loft, a: [[-10.5, 2.2, 4.7], [-11.3419, 2.0325, 4.7], [-12.069, 3.7879, 4.7], [-10.5, 4.1, 4.7]], b: [[-10.5, 2.2, 4.2], [-11.3419, 2.0325, 4.2], [-12.069, 3.7879, 4.2], [-10.5, 4.1, 4.2]], collide: 0}
      - {kind: loft, a: [[-11.3419, 2.0325, 4.7], [-12.0556, 1.5556, 4.7], [-13.3991, 2.8991, 4.7], [-12.069, 3.7879, 4.7]], b: [[-11.3419, 2.0325, 4.2], [-12.0556, 1.5556, 4.2], [-13.3991, 2.8991, 4.2], [-12.069, 3.7879, 4.2]], collide: 0}
      - {kind: loft, a: [[-12.0556, 1.5556, 4.7], [-12.5325, 0.8419, 4.7], [-14.2879, 1.569, 4.7], [-13.3991, 2.8991, 4.7]], b: [[-12.0556, 1.5556, 4.2], [-12.5325, 0.8419, 4.2], [-14.2879, 1.569, 4.2], [-13.3991, 2.8991, 4.2]], collide: 0}
      - {kind: loft, a: [[-12.5325, 0.8419, 4.7], [-12.7, 0, 4.7], [-14.6, 0, 4.7], [-14.2879, 1.569, 4.7]], b: [[-12.5325, 0.8419, 4.2], [-12.7, 0, 4.2], [-14.6, 0, 4.2], [-14.2879, 1.569, 4.2]], collide: 0}
      - {kind: loft, a: [[-8.9, 0, 25.4], [-9.0218, 0.6123, 25.4], [-8.4675, 0.8419, 25.4], [-8.3, 0, 25.4]], b: [[-8.9, 0, 8.5], [-9.0218, 0.6123, 8.5], [-8.4675, 0.8419, 8.5], [-8.3, 0, 8.5]], collide: 0}
      - {kind: loft, a: [[-9.0218, 0.6123, 25.4], [-9.3686, 1.1314, 25.4], [-8.9444, 1.5556, 25.4], [-8.4675, 0.8419, 25.4]], b: [[-9.0218, 0.6123, 8.5], [-9.3686, 1.1314, 8.5], [-8.9444, 1.5556, 8.5], [-8.4675, 0.8419, 8.5]], collide: 0}
      - {kind: loft, a: [[-9.3686, 1.1314, 25.4], [-9.8877, 1.4782, 25.4], [-9.6581, 2.0325, 25.4], [-8.9444, 1.5556, 25.4]], b: [[-9.3686, 1.1314, 8.5], [-9.8877, 1.4782, 8.5], [-9.6581, 2.0325, 8.5], [-8.9444, 1.5556, 8.5]], collide: 0}
      - {kind: loft, a: [[-9.8877, 1.4782, 25.4], [-10.5, 1.6, 25.4], [-10.5, 2.2, 25.4], [-9.6581, 2.0325, 25.4]], b: [[-9.8877, 1.4782, 8.5], [-10.5, 1.6, 8.5], [-10.5, 2.2, 8.5], [-9.6581, 2.0325, 8.5]], collide: 0}
      - {kind: loft, a: [[-10.5, 1.6, 25.4], [-11.1123, 1.4782, 25.4], [-11.3419, 2.0325, 25.4], [-10.5, 2.2, 25.4]], b: [[-10.5, 1.6, 8.5], [-11.1123, 1.4782, 8.5], [-11.3419, 2.0325, 8.5], [-10.5, 2.2, 8.5]], collide: 0}
      - {kind: loft, a: [[-11.1123, 1.4782, 25.4], [-11.6314, 1.1314, 25.4], [-12.0556, 1.5556, 25.4], [-11.3419, 2.0325, 25.4]], b: [[-11.1123, 1.4782, 8.5], [-11.6314, 1.1314, 8.5], [-12.0556, 1.5556, 8.5], [-11.3419, 2.0325, 8.5]], collide: 0}
      - {kind: loft, a: [[-11.6314, 1.1314, 25.4], [-11.9782, 0.6123, 25.4], [-12.5325, 0.8419, 25.4], [-12.0556, 1.5556, 25.4]], b: [[-11.6314, 1.1314, 8.5], [-11.9782, 0.6123, 8.5], [-12.5325, 0.8419, 8.5], [-12.0556, 1.5556, 8.5]], collide: 0}
      - {kind: loft, a: [[-11.9782, 0.6123, 25.4], [-12.1, 0, 25.4], [-12.7, 0, 25.4], [-12.5325, 0.8419, 25.4]], b: [[-11.9782, 0.6123, 8.5], [-12.1, 0, 8.5], [-12.7, 0, 8.5], [-12.5325, 0.8419, 8.5]], collide: 0}
      - {kind: loft, a: [[-12.4, 0, 23.2], [-14.7, 0, 22.7], [-14.7, 1.5, 22.7], [-12.4, 1.5, 23.2]], b: [[-12.4, 0, 22.7], [-14.7, 0, 22.2], [-14.7, 1.5, 22.2], [-12.4, 1.5, 22.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-12.4, 1.5, 25.2], [-14.7, 1.5, 24.7], [-14.7, 2, 24.7], [-12.4, 2, 25.2]], b: [[-12.4, 1.5, 22.7], [-14.7, 1.5, 22.2], [-14.7, 2, 22.2], [-12.4, 2, 22.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-14.7, 0, 22.7], [-16.5, 0, 21.4], [-16.5, 1.5, 21.4], [-14.7, 1.5, 22.7]], b: [[-14.7, 0, 22.2], [-16.5, 0, 20.9], [-16.5, 1.5, 20.9], [-14.7, 1.5, 22.2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-14.7, 1.5, 24.7], [-16.5, 1.5, 23.4], [-16.5, 2, 23.4], [-14.7, 2, 24.7]], b: [[-14.7, 1.5, 22.2], [-16.5, 1.5, 20.9], [-16.5, 2, 20.9], [-14.7, 2, 22.2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-16.5, 0, 21.4], [-17.2, 0, 20.2], [-17.2, 1.5, 20.2], [-16.5, 1.5, 21.4]], b: [[-16.5, 0, 20.9], [-17.2, 0, 19.7], [-17.2, 1.5, 19.7], [-16.5, 1.5, 20.9]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-16.5, 1.5, 23.4], [-17.2, 1.5, 22.2], [-17.2, 2, 22.2], [-16.5, 2, 23.4]], b: [[-16.5, 1.5, 20.9], [-17.2, 1.5, 19.7], [-17.2, 2, 19.7], [-16.5, 2, 20.9]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-6.5, -0.4, 18.5], [-3.65, -0.4, 18.5], [-3.65, 0.4, 18.5], [-6.5, 0.4, 18.5]], b: [[-6.5, -0.4, 15.7], [-3.65, -0.4, 15.7], [-3.65, 0.4, 15.7], [-6.5, 0.4, 15.7]], collide: 0, color: "#b9ae98"}
      - {kind: rod, from: [-5.9, -1.8, 17.9], to: [-5.9, 0.4, 17.9], 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 the link's top (the hand's)
  - {id: j_p, type: slide, body: piston, axis: [0, 0, 1], range: [-4.5, 6], damping: 0.01}
  - {id: j_sf, type: hinge, body: sflap, axis: [0, -1, 0], range: [0, 0.6], damping: 0.00002}   # 0: shut over the suction hole
  - {id: j_ov, type: slide, body: ovalve, axis: [0, 0, 1], range: [0, 0.9], damping: 0.0005}   # 0: on the outlet's seat
pins:
  - {id: p_R, a: handle, b: piston, at: [-0.3, 0, 24.3]}   # the rod's top in the handle
vessels:
  substeps: 4
  nodes:
    - {id: ground, kind: source, p: 735.75}   # the ground water feeding the well, keeping its level
    - {id: well, kind: tank, area: 84, z: -18, level: 7.5,
       draw: {section: [[-7, -18], [7, -18], [7, -8], [-7, -8]], y: [0.05, 6]}}
    - {id: spipe, kind: chamber, fixed: -15, sections: [[-15, 15.2053], [-0.8, 8.0425]], volume: 222.349, water: 68.4239, K: 200000,
       draw: {sections: [[[-2.2, -15], [2.2, -15], [2.2, -0.8], [-2.2, -0.8]], [[-1.6, -0.8], [1.6, -0.8], [1.6, 0], [-1.6, 0]]], y: [0, 2.2]}}   # the suction pipe, air over the well's water till it is primed
    - {id: barrel, kind: chamber, fixed: 0, sections: [[0, 28.2743], [1.25, 47.2135], [2.9, 37.3535], [4.2, 28.2743]], volume: 269.247, water: 113.245, K: 200000,
       draw: {sections: [[[-2.95, 0], [2.95, 0], [2.95, 17.9], [-2.95, 17.9]], [[-12.2, 1.25], [-2.95, 1.25], [-2.95, 2.9], [-12.2, 2.9]], [[-12.2, 2.9], [-8.8, 2.9], [-8.8, 4.2], [-12.2, 4.2]]], y: [0, 1.6]}}   # under the piston, the passage and up to the outlet valve
    - {id: rise, kind: tank, area: 8.0425, z: 4.2, level: 17.8, max: 20.9,
       draw: {section: [[-12.1, 4.2], [-8.9, 4.2], [-8.9, 25.4], [-12.1, 25.4]], y: [0, 1.6]}}   # the rising pipe over the outlet valve
    - {id: air, kind: source, p: 0}   # out of the spout
  links:
    - {id: spring, from: ground, to: well, area: 30, cd: 0.62, z: -18}
    - {id: intake, from: well, to: spipe, area: 15.2053, cd: 0.8, z: -14.8}   # the pipe's open foot
    - {id: suction, from: spipe, to: barrel, area: 8.0425, cd: 0.62, z: 99, zTo: -99, open: {joint: j_sf, q: [0, 0.25], frac: [0, 1]}}
    - {id: outlet, from: barrel, to: rise, area: 3.1416, cd: 0.62, z: 4.2, zTo: 4.2, open: {joint: j_ov, q: [0, 0.006], frac: [0, 1]}}
    - {id: spout, from: rise, to: air, area: 8, cd: 0.62, z: 23.2, check: true,
       draw: {from: [-12.1, 0.75, 23.45], via: [[-14.7, 0.75, 22.95], [-16.5, 0.75, 21.65]], to: [-17.3, 0.75, 19.95], width: 1.4, flow: 0.08,
              fall: {dir: [-0.7, 0, -1.2], floor: -8}}}   # over the spout's lip, along it and falling from its mouth
  pistons:
    - {node: barrel, joint: j_p, area: 28.2743, sign: 1}
    - {node: spipe, joint: j_sf, area: 8.0425, arm: 2, sign: 1}
    - {node: barrel, joint: j_sf, area: 8.0425, arm: 2, sign: -1, z: -99}
    - {node: barrel, joint: j_ov, area: 3.1416, sign: 1, z: 4.2}
    - {node: rise, joint: j_ov, area: 3.1416, sign: -1, z: 4.2}
driver: {joint: j_h, kind: velocity, rpm: 0, swing: {amplitude: 0.6, hz: 0.5}, kv: 3000, max_torque: 40}
checks:
  - {type: amplitude, joint: j_p, min: 0.025, max: 0.04, settle_s: 1.0, window_s: 8.5}
  - {type: amplitude, joint: j_sf, min: 0.05, max: 0.5, settle_s: 1.0, window_s: 8.5}
  - {type: amplitude, joint: j_ov, min: 0.001, max: 0.009, settle_s: 1.0, window_s: 8.5}
  - {type: penetration, max: 0.003}
camera: {target: [2.5, 0, -0.6], position: [2.5, -200, 2.4], fov: 19}
display:
  output: j_p
  labels: {j_h: "Handle (driver)", j_l: "Swinging link", j_p: "Piston", j_sf: "Suction valve", j_ov: "Outlet valve"}
