# No. 444 (Brown 1868): "Montgolfier's hydraulic ram. Small fall of water made to throw a jet to a great height or furnish a supply
# at high level. The right-hand valve being kept open by a weight or spring, the current flowing through the pipe in the direction of
# the arrow escapes thereby till its pressure, overcoming the resistance of weight or spring, closes it. On the closing of this valve
# the momentum of the current overcomes the pressure on the other valve, opens it, and throws a quantity of water into the globular
# air-chamber by the expansive force of the air in which the upward stream from the nozzle is maintained. On equilibrium taking place,
# the right-hand valve opens and left-hand one shuts. ..."
# Model (cm, gravity on, Brown's view from in front, cut away in half section). Water is poured into the head cistern (the only
# input); a pipe 63 cm long (2.4 cm bore) falls from it and runs along the floor of the basin into the valve box. The water
# is lumped vessels (src/fluid/vessels.c) and the drive pipe's water has inertia (vessels `length`): its flow is a state, so it runs on
# when the waste valve shuts and slams into the box (water hammer). The waste valve (right) is a disc under its seat on a stem with a
# ball, held open by its weight and pushed shut by the box's pressure over the basin's; the delivery valve (left) is a disc on the seat
# under the globe's neck, lifted by the box's pressure over the globe's. The globe holds water under air (a closed chamber); the jet pipe
# dips into its water and throws it up from its mouth. The fall from the cistern's surface to the basin's is about 42 cm; the
# globe's air holds the water at a head of more than twice that. Generator: opencode-runs/water/gen444.py.
number: 444
slug: montgolfiers-hydraulic-ram
name: Montgolfier's hydraulic ram
brown: "Montgolfier's hydraulic ram. Small fall of water made to throw a jet to a great height or furnish a supply at high level. The right-hand valve being kept open by a weight or spring, the current flowing through the pipe in the direction of the arrow escapes thereby till its pressure, overcoming the resistance of weight or spring, closes it. On the closing of this valve the momentum of the current overcomes the pressure on the other valve, opens it, and throws a quantity of water into the globular air-chamber by the expansive force of the air in which the upward stream from the nozzle is maintained. On equilibrium taking place, the right-hand valve opens and left-hand one shuts. Thus, by the alternate action of the valves, a quantity of water is raised into the air-chamber at every stroke, and the elasticity of the air gives uniformity to the efflux."
units: cm
sim:
  timestep: 0.00025
  integrator: implicitfast
  iterations: 40
  duration_s: 14
  floor: false
bodies:
  - id: wvalve
    shape: part
    pos: [9.5, 0, -1.7]
    mass: 0.1
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[11.6, 0, -1.7], [11.4401, 0.8036, -1.7], [10.9849, 1.4849, -1.7], [10.3036, 1.9401, -1.7], [9.5, 2.1, -1.7], [8.6964, 1.9401, -1.7], [8.0151, 1.4849, -1.7], [7.5599, 0.8036, -1.7], [7.4, 0, -1.7], [7.5599, -0.8036, -1.7], [8.0151, -1.4849, -1.7], [8.6964, -1.9401, -1.7], [9.5, -2.1, -1.7], [10.3036, -1.9401, -1.7], [10.9849, -1.4849, -1.7], [11.4401, -0.8036, -1.7]], b: [[11.6, 0, -2.1], [11.4401, 0.8036, -2.1], [10.9849, 1.4849, -2.1], [10.3036, 1.9401, -2.1], [9.5, 2.1, -2.1], [8.6964, 1.9401, -2.1], [8.0151, 1.4849, -2.1], [7.5599, 0.8036, -2.1], [7.4, 0, -2.1], [7.5599, -0.8036, -2.1], [8.0151, -1.4849, -2.1], [8.6964, -1.9401, -2.1], [9.5, -2.1, -2.1], [10.3036, -1.9401, -2.1], [10.9849, -1.4849, -2.1], [11.4401, -0.8036, -2.1]], collide: 0}
      - {kind: rod, from: [9.5, 0, -1.7], to: [9.5, 0, 12], radius: 0.3, collide: 0}
      - {kind: loft, a: [[10.2, 0, 11.9876], [10.1062, 0.35, 11.9876], [9.85, 0.6062, 11.9876], [9.5, 0.7, 11.9876], [9.15, 0.6062, 11.9876], [8.8938, 0.35, 11.9876], [8.8, 0, 11.9876], [8.8938, -0.35, 11.9876], [9.15, -0.6062, 11.9876], [9.5, -0.7, 11.9876], [9.85, -0.6062, 11.9876], [10.1062, -0.35, 11.9876]], b: [[9.55, 0, 11.8], [9.5433, 0.025, 11.8], [9.525, 0.0433, 11.8], [9.5, 0.05, 11.8], [9.475, 0.0433, 11.8], [9.4567, 0.025, 11.8], [9.45, 0, 11.8], [9.4567, -0.025, 11.8], [9.475, -0.0433, 11.8], [9.5, -0.05, 11.8], [9.525, -0.0433, 11.8], [9.5433, -0.025, 11.8]], collide: 0}
      - {kind: loft, a: [[10.7124, 0, 12.5], [10.55, 0.6062, 12.5], [10.1062, 1.05, 12.5], [9.5, 1.2124, 12.5], [8.8938, 1.05, 12.5], [8.45, 0.6062, 12.5], [8.2876, 0, 12.5], [8.45, -0.6062, 12.5], [8.8938, -1.05, 12.5], [9.5, -1.2124, 12.5], [10.1062, -1.05, 12.5], [10.55, -0.6062, 12.5]], b: [[10.2, 0, 11.9876], [10.1062, 0.35, 11.9876], [9.85, 0.6062, 11.9876], [9.5, 0.7, 11.9876], [9.15, 0.6062, 11.9876], [8.8938, 0.35, 11.9876], [8.8, 0, 11.9876], [8.8938, -0.35, 11.9876], [9.15, -0.6062, 11.9876], [9.5, -0.7, 11.9876], [9.85, -0.6062, 11.9876], [10.1062, -0.35, 11.9876]], collide: 0}
      - {kind: loft, a: [[10.9, 0, 13.2], [10.7124, 0.7, 13.2], [10.2, 1.2124, 13.2], [9.5, 1.4, 13.2], [8.8, 1.2124, 13.2], [8.2876, 0.7, 13.2], [8.1, 0, 13.2], [8.2876, -0.7, 13.2], [8.8, -1.2124, 13.2], [9.5, -1.4, 13.2], [10.2, -1.2124, 13.2], [10.7124, -0.7, 13.2]], b: [[10.7124, 0, 12.5], [10.55, 0.6062, 12.5], [10.1062, 1.05, 12.5], [9.5, 1.2124, 12.5], [8.8938, 1.05, 12.5], [8.45, 0.6062, 12.5], [8.2876, 0, 12.5], [8.45, -0.6062, 12.5], [8.8938, -1.05, 12.5], [9.5, -1.2124, 12.5], [10.1062, -1.05, 12.5], [10.55, -0.6062, 12.5]], collide: 0}
      - {kind: loft, a: [[10.7124, 0, 13.9], [10.55, 0.6062, 13.9], [10.1062, 1.05, 13.9], [9.5, 1.2124, 13.9], [8.8938, 1.05, 13.9], [8.45, 0.6062, 13.9], [8.2876, 0, 13.9], [8.45, -0.6062, 13.9], [8.8938, -1.05, 13.9], [9.5, -1.2124, 13.9], [10.1062, -1.05, 13.9], [10.55, -0.6062, 13.9]], b: [[10.9, 0, 13.2], [10.7124, 0.7, 13.2], [10.2, 1.2124, 13.2], [9.5, 1.4, 13.2], [8.8, 1.2124, 13.2], [8.2876, 0.7, 13.2], [8.1, 0, 13.2], [8.2876, -0.7, 13.2], [8.8, -1.2124, 13.2], [9.5, -1.4, 13.2], [10.2, -1.2124, 13.2], [10.7124, -0.7, 13.2]], collide: 0}
      - {kind: loft, a: [[10.2, 0, 14.4124], [10.1062, 0.35, 14.4124], [9.85, 0.6062, 14.4124], [9.5, 0.7, 14.4124], [9.15, 0.6062, 14.4124], [8.8938, 0.35, 14.4124], [8.8, 0, 14.4124], [8.8938, -0.35, 14.4124], [9.15, -0.6062, 14.4124], [9.5, -0.7, 14.4124], [9.85, -0.6062, 14.4124], [10.1062, -0.35, 14.4124]], b: [[10.7124, 0, 13.9], [10.55, 0.6062, 13.9], [10.1062, 1.05, 13.9], [9.5, 1.2124, 13.9], [8.8938, 1.05, 13.9], [8.45, 0.6062, 13.9], [8.2876, 0, 13.9], [8.45, -0.6062, 13.9], [8.8938, -1.05, 13.9], [9.5, -1.2124, 13.9], [10.1062, -1.05, 13.9], [10.55, -0.6062, 13.9]], collide: 0}
      - {kind: loft, a: [[9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, 0, 14.6], [9.5, -0, 14.6], [9.5, -0, 14.6], [9.5, -0, 14.6], [9.5, -0, 14.6], [9.5, -0, 14.6]], b: [[10.2, 0, 14.4124], [10.1062, 0.35, 14.4124], [9.85, 0.6062, 14.4124], [9.5, 0.7, 14.4124], [9.15, 0.6062, 14.4124], [8.8938, 0.35, 14.4124], [8.8, 0, 14.4124], [8.8938, -0.35, 14.4124], [9.15, -0.6062, 14.4124], [9.5, -0.7, 14.4124], [9.85, -0.6062, 14.4124], [10.1062, -0.35, 14.4124]], collide: 0}
  - id: dvalve
    shape: part
    pos: [0, 0, 2]
    mass: 0.01
    color: "#e0a030"
    pieces:
      - {kind: loft, a: [[2, 0, 2.35], [1.8478, 0.7654, 2.35], [1.4142, 1.4142, 2.35], [0.7654, 1.8478, 2.35], [0, 2, 2.35], [-0.7654, 1.8478, 2.35], [-1.4142, 1.4142, 2.35], [-1.8478, 0.7654, 2.35], [-2, 0, 2.35], [-1.8478, -0.7654, 2.35], [-1.4142, -1.4142, 2.35], [-0.7654, -1.8478, 2.35], [-0, -2, 2.35], [0.7654, -1.8478, 2.35], [1.4142, -1.4142, 2.35], [1.8478, -0.7654, 2.35]], b: [[2, 0, 2], [1.8478, 0.7654, 2], [1.4142, 1.4142, 2], [0.7654, 1.8478, 2], [0, 2, 2], [-0.7654, 1.8478, 2], [-1.4142, 1.4142, 2], [-1.8478, 0.7654, 2], [-2, 0, 2], [-1.8478, -0.7654, 2], [-1.4142, -1.4142, 2], [-0.7654, -1.8478, 2], [-0, -2, 2], [0.7654, -1.8478, 2], [1.4142, -1.4142, 2], [1.8478, -0.7654, 2]], collide: 0}
      - {kind: rod, from: [0, 0, 2.35], to: [0, 0, 4.2], radius: 0.2, collide: 0}
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: loft, a: [[-38.8, 0, 34], [-21.2, 0, 34], [-21.2, 8.1, 34], [-38.8, 8.1, 34]], b: [[-38.8, 0, 33.2], [-21.2, 0, 33.2], [-21.2, 8.1, 33.2], [-38.8, 8.1, 33.2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-38.8, 7.5, 50], [-21.2, 7.5, 50], [-21.2, 8.1, 50], [-38.8, 8.1, 50]], b: [[-38.8, 7.5, 34], [-21.2, 7.5, 34], [-21.2, 8.1, 34], [-38.8, 8.1, 34]], collide: 0}
      - {kind: loft, a: [[-38.8, 0, 50], [-38, 0, 50], [-38, 7.5, 50], [-38.8, 7.5, 50]], b: [[-38.8, 0, 34], [-38, 0, 34], [-38, 7.5, 34], [-38.8, 7.5, 34]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-22, 0, 50], [-21.2, 0, 50], [-21.2, 7.5, 50], [-22, 7.5, 50]], b: [[-22, 0, 34], [-21.2, 0, 34], [-21.2, 7.5, 34], [-22, 7.5, 34]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-50, 0, 56.5], [-37, 0, 54.5], [-37, 3, 54.5], [-50, 3, 56.5]], b: [[-50, 0, 55.7], [-37, 0, 53.7], [-37, 3, 53.7], [-50, 3, 55.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-50, 3, 58], [-37, 3, 56], [-37, 3.4, 56], [-50, 3.4, 58]], b: [[-50, 3, 55.7], [-37, 3, 53.7], [-37, 3.4, 53.7], [-50, 3.4, 55.7]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-28.8, 0, -1.8], [-28.9608, 0.6, -1.8], [-28.6577, 0.775, -1.8], [-28.45, 0, -1.8]], b: [[-28.8, 0, 34], [-28.9608, 0.6, 34], [-28.6577, 0.775, 34], [-28.45, 0, 34]], collide: 0}
      - {kind: loft, a: [[-28.9608, 0.6, -1.8], [-29.4, 1.0392, -1.8], [-29.225, 1.3423, -1.8], [-28.6577, 0.775, -1.8]], b: [[-28.9608, 0.6, 34], [-29.4, 1.0392, 34], [-29.225, 1.3423, 34], [-28.6577, 0.775, 34]], collide: 0}
      - {kind: loft, a: [[-29.4, 1.0392, -1.8], [-30, 1.2, -1.8], [-30, 1.55, -1.8], [-29.225, 1.3423, -1.8]], b: [[-29.4, 1.0392, 34], [-30, 1.2, 34], [-30, 1.55, 34], [-29.225, 1.3423, 34]], collide: 0}
      - {kind: loft, a: [[-30, 1.2, -1.8], [-30.6, 1.0392, -1.8], [-30.775, 1.3423, -1.8], [-30, 1.55, -1.8]], b: [[-30, 1.2, 34], [-30.6, 1.0392, 34], [-30.775, 1.3423, 34], [-30, 1.55, 34]], collide: 0}
      - {kind: loft, a: [[-30.6, 1.0392, -1.8], [-31.0392, 0.6, -1.8], [-31.3423, 0.775, -1.8], [-30.775, 1.3423, -1.8]], b: [[-30.6, 1.0392, 34], [-31.0392, 0.6, 34], [-31.3423, 0.775, 34], [-30.775, 1.3423, 34]], collide: 0}
      - {kind: loft, a: [[-31.0392, 0.6, -1.8], [-31.2, 0, -1.8], [-31.55, 0, -1.8], [-31.3423, 0.775, -1.8]], b: [[-31.0392, 0.6, 34], [-31.2, 0, 34], [-31.55, 0, 34], [-31.3423, 0.775, 34]], collide: 0}
      - {kind: loft, a: [[-4, 0, -1.6], [-4, 0.6, -1.7608], [-4, 0.775, -1.4577], [-4, 0, -1.25]], b: [[-29, 0, -1.6], [-29, 0.6, -1.7608], [-29, 0.775, -1.4577], [-29, 0, -1.25]], collide: 0}
      - {kind: loft, a: [[-4, 0.6, -1.7608], [-4, 1.0392, -2.2], [-4, 1.3423, -2.025], [-4, 0.775, -1.4577]], b: [[-29, 0.6, -1.7608], [-29, 1.0392, -2.2], [-29, 1.3423, -2.025], [-29, 0.775, -1.4577]], collide: 0}
      - {kind: loft, a: [[-4, 1.0392, -2.2], [-4, 1.2, -2.8], [-4, 1.55, -2.8], [-4, 1.3423, -2.025]], b: [[-29, 1.0392, -2.2], [-29, 1.2, -2.8], [-29, 1.55, -2.8], [-29, 1.3423, -2.025]], collide: 0}
      - {kind: loft, a: [[-4, 1.2, -2.8], [-4, 1.0392, -3.4], [-4, 1.3423, -3.575], [-4, 1.55, -2.8]], b: [[-29, 1.2, -2.8], [-29, 1.0392, -3.4], [-29, 1.3423, -3.575], [-29, 1.55, -2.8]], collide: 0}
      - {kind: loft, a: [[-4, 1.0392, -3.4], [-4, 0.6, -3.8392], [-4, 0.775, -4.1423], [-4, 1.3423, -3.575]], b: [[-29, 1.0392, -3.4], [-29, 0.6, -3.8392], [-29, 0.775, -4.1423], [-29, 1.3423, -3.575]], collide: 0}
      - {kind: loft, a: [[-4, 0.6, -3.8392], [-4, 0, -4], [-4, 0, -4.35], [-4, 0.775, -4.1423]], b: [[-29, 0.6, -3.8392], [-29, 0, -4], [-29, 0, -4.35], [-29, 0.775, -4.1423]], collide: 0}
      - {kind: loft, a: [[-28.1515, 0, -1.9515], [-28.4, 0.8485, -2.2], [-28.225, 1.096, -2.025], [-27.904, 0, -1.704]], b: [[-29.1515, 0, -0.9515], [-29.4, 0.8485, -1.2], [-29.225, 1.096, -1.025], [-28.904, 0, -0.704]], collide: 0}
      - {kind: loft, a: [[-28.4, 0.8485, -2.2], [-29, 1.2, -2.8], [-29, 1.55, -2.8], [-28.225, 1.096, -2.025]], b: [[-29.4, 0.8485, -1.2], [-30, 1.2, -1.8], [-30, 1.55, -1.8], [-29.225, 1.096, -1.025]], collide: 0}
      - {kind: loft, a: [[-29, 1.2, -2.8], [-29.6, 0.8485, -3.4], [-29.775, 1.096, -3.575], [-29, 1.55, -2.8]], b: [[-30, 1.2, -1.8], [-30.6, 0.8485, -2.4], [-30.775, 1.096, -2.575], [-30, 1.55, -1.8]], collide: 0}
      - {kind: loft, a: [[-29.6, 0.8485, -3.4], [-29.8485, 0, -3.6485], [-30.096, 0, -3.896], [-29.775, 1.096, -3.575]], b: [[-30.6, 0.8485, -2.4], [-30.8485, 0, -2.6485], [-31.096, 0, -2.896], [-30.775, 1.096, -2.575]], collide: 0}
      - {kind: loft, a: [[-31.55, 0, -4], [-28.45, 0, -4], [-28.45, 1.55, -4], [-31.55, 1.55, -4]], b: [[-31.55, 0, -4.35], [-28.45, 0, -4.35], [-28.45, 1.55, -4.35], [-31.55, 1.55, -4.35]], collide: 0}
      - {kind: loft, a: [[-4.8, 0, -6], [14.8, 0, -6], [14.8, 3.6, -6], [-4.8, 3.6, -6]], b: [[-4.8, 0, -6.8], [14.8, 0, -6.8], [14.8, 3.6, -6.8], [-4.8, 3.6, -6.8]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-4.8, 3, 2], [14.8, 3, 2], [14.8, 3.6, 2], [-4.8, 3.6, 2]], b: [[-4.8, 3, -6], [14.8, 3, -6], [14.8, 3.6, -6], [-4.8, 3.6, -6]], collide: 0}
      - {kind: loft, a: [[-4.8, 0, -4], [-4, 0, -4], [-4, 3, -4], [-4.8, 3, -4]], b: [[-4.8, 0, -6], [-4, 0, -6], [-4, 3, -6], [-4.8, 3, -6]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-4.8, 0, 2], [-4, 0, 2], [-4, 3, 2], [-4.8, 3, 2]], b: [[-4.8, 0, -1.6], [-4, 0, -1.6], [-4, 3, -1.6], [-4.8, 3, -1.6]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[14, 0, 2], [14.8, 0, 2], [14.8, 3, 2], [14, 3, 2]], b: [[14, 0, -6], [14.8, 0, -6], [14.8, 3, -6], [14, 3, -6]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-4.8, 0, 2.8], [-1.6, 0, 2.8], [-1.6, 3, 2.8], [-4.8, 3, 2.8]], b: [[-4.8, 0, 2], [-1.6, 0, 2], [-1.6, 3, 2], [-4.8, 3, 2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[1.6, 0, 2.8], [7.9, 0, 2.8], [7.9, 3, 2.8], [1.6, 3, 2.8]], b: [[1.6, 0, 2], [7.9, 0, 2], [7.9, 3, 2], [1.6, 3, 2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[11.1, 0, 2.8], [14.8, 0, 2.8], [14.8, 3, 2.8], [11.1, 3, 2.8]], b: [[11.1, 0, 2], [14.8, 0, 2], [14.8, 3, 2], [11.1, 3, 2]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[6.5, 0, 8.5], [7.1, 0, 8.5], [7.1, 1.6, 8.5], [6.5, 1.6, 8.5]], b: [[6.5, 0, 2.8], [7.1, 0, 2.8], [7.1, 1.6, 2.8], [6.5, 1.6, 2.8]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[11.9, 0, 8.5], [12.5, 0, 8.5], [12.5, 1.6, 8.5], [11.9, 1.6, 8.5]], b: [[11.9, 0, 2.8], [12.5, 0, 2.8], [12.5, 1.6, 2.8], [11.9, 1.6, 2.8]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[6.5, 0, 9.1], [9.05, 0, 9.1], [9.05, 1.6, 9.1], [6.5, 1.6, 9.1]], b: [[6.5, 0, 8.5], [9.05, 0, 8.5], [9.05, 1.6, 8.5], [6.5, 1.6, 8.5]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[9.95, 0, 9.1], [12.5, 0, 9.1], [12.5, 1.6, 9.1], [9.95, 1.6, 9.1]], b: [[9.95, 0, 8.5], [12.5, 0, 8.5], [12.5, 1.6, 8.5], [9.95, 1.6, 8.5]], collide: 0, color: "#b9ae98"}
      - {kind: loft, a: [[-1.61, 0, 9.4], [-1.3943, 0.805, 9.4], [-1.9053, 1.1, 9.4], [-2.2, 0, 9.4]], b: [[-1.61, 0, 2.8], [-1.3943, 0.805, 2.8], [-1.9053, 1.1, 2.8], [-2.2, 0, 2.8]], collide: 0}
      - {kind: loft, a: [[-1.3943, 0.805, 9.4], [-0.805, 1.3943, 9.4], [-1.1, 1.9053, 9.4], [-1.9053, 1.1, 9.4]], b: [[-1.3943, 0.805, 2.8], [-0.805, 1.3943, 2.8], [-1.1, 1.9053, 2.8], [-1.9053, 1.1, 2.8]], collide: 0}
      - {kind: loft, a: [[-0.805, 1.3943, 9.4], [-0, 1.61, 9.4], [-0, 2.2, 9.4], [-1.1, 1.9053, 9.4]], b: [[-0.805, 1.3943, 2.8], [-0, 1.61, 2.8], [-0, 2.2, 2.8], [-1.1, 1.9053, 2.8]], collide: 0}
      - {kind: loft, a: [[-0, 1.61, 9.4], [0.805, 1.3943, 9.4], [1.1, 1.9053, 9.4], [-0, 2.2, 9.4]], b: [[-0, 1.61, 2.8], [0.805, 1.3943, 2.8], [1.1, 1.9053, 2.8], [-0, 2.2, 2.8]], collide: 0}
      - {kind: loft, a: [[0.805, 1.3943, 9.4], [1.3943, 0.805, 9.4], [1.9053, 1.1, 9.4], [1.1, 1.9053, 9.4]], b: [[0.805, 1.3943, 2.8], [1.3943, 0.805, 2.8], [1.9053, 1.1, 2.8], [1.1, 1.9053, 2.8]], collide: 0}
      - {kind: loft, a: [[1.3943, 0.805, 9.4], [1.61, 0, 9.4], [2.2, 0, 9.4], [1.9053, 1.1, 9.4]], b: [[1.3943, 0.805, 2.8], [1.61, 0, 2.8], [2.2, 0, 2.8], [1.9053, 1.1, 2.8]], collide: 0}
      - {kind: loft, a: [[7.4124, 0, 11.5631], [6.8482, 2.8366, 11.5631], [7.7226, 3.1988, 11.5631], [8.3589, 0, 11.5631]], b: [[2.2, 0, 9.2034], [2.0325, 0.8419, 9.2034], [4.0994, 1.698, 9.2034], [4.4372, 0, 9.2034]], collide: 0}
      - {kind: loft, a: [[6.8482, 2.8366, 11.5631], [5.2414, 5.2414, 11.5631], [5.9106, 5.9106, 11.5631], [7.7226, 3.1988, 11.5631]], b: [[2.0325, 0.8419, 9.2034], [1.5556, 1.5556, 9.2034], [3.1376, 3.1376, 9.2034], [4.0994, 1.698, 9.2034]], collide: 0}
      - {kind: loft, a: [[5.2414, 5.2414, 11.5631], [2.8366, 6.8482, 11.5631], [3.1988, 7.7226, 11.5631], [5.9106, 5.9106, 11.5631]], b: [[1.5556, 1.5556, 9.2034], [0.8419, 2.0325, 9.2034], [1.698, 4.0994, 9.2034], [3.1376, 3.1376, 9.2034]], collide: 0}
      - {kind: loft, a: [[2.8366, 6.8482, 11.5631], [0, 7.4124, 11.5631], [0, 8.3589, 11.5631], [3.1988, 7.7226, 11.5631]], b: [[0.8419, 2.0325, 9.2034], [0, 2.2, 9.2034], [0, 4.4372, 9.2034], [1.698, 4.0994, 9.2034]], collide: 0}
      - {kind: loft, a: [[0, 7.4124, 11.5631], [-2.8366, 6.8482, 11.5631], [-3.1988, 7.7226, 11.5631], [0, 8.3589, 11.5631]], b: [[0, 2.2, 9.2034], [-0.8419, 2.0325, 9.2034], [-1.698, 4.0994, 9.2034], [0, 4.4372, 9.2034]], collide: 0}
      - {kind: loft, a: [[-2.8366, 6.8482, 11.5631], [-5.2414, 5.2414, 11.5631], [-5.9106, 5.9106, 11.5631], [-3.1988, 7.7226, 11.5631]], b: [[-0.8419, 2.0325, 9.2034], [-1.5556, 1.5556, 9.2034], [-3.1376, 3.1376, 9.2034], [-1.698, 4.0994, 9.2034]], collide: 0}
      - {kind: loft, a: [[-5.2414, 5.2414, 11.5631], [-6.8482, 2.8366, 11.5631], [-7.7226, 3.1988, 11.5631], [-5.9106, 5.9106, 11.5631]], b: [[-1.5556, 1.5556, 9.2034], [-2.0325, 0.8419, 9.2034], [-4.0994, 1.698, 9.2034], [-3.1376, 3.1376, 9.2034]], collide: 0}
      - {kind: loft, a: [[-6.8482, 2.8366, 11.5631], [-7.4124, 0, 11.5631], [-8.3589, 0, 11.5631], [-7.7226, 3.1988, 11.5631]], b: [[-2.0325, 0.8419, 9.2034], [-2.2, 0, 9.2034], [-4.4372, 0, 9.2034], [-4.0994, 1.698, 9.2034]], collide: 0}
      - {kind: loft, a: [[9.6908, 0, 13.9227], [8.9532, 3.7085, 13.9227], [9.6403, 3.9931, 13.9227], [10.4346, 0, 13.9227]], b: [[7.4124, 0, 11.5631], [6.8482, 2.8366, 11.5631], [7.7226, 3.1988, 11.5631], [8.3589, 0, 11.5631]], collide: 0}
      - {kind: loft, a: [[8.9532, 3.7085, 13.9227], [6.8524, 6.8524, 13.9227], [7.3784, 7.3784, 13.9227], [9.6403, 3.9931, 13.9227]], b: [[6.8482, 2.8366, 11.5631], [5.2414, 5.2414, 11.5631], [5.9106, 5.9106, 11.5631], [7.7226, 3.1988, 11.5631]], collide: 0}
      - {kind: loft, a: [[6.8524, 6.8524, 13.9227], [3.7085, 8.9532, 13.9227], [3.9931, 9.6403, 13.9227], [7.3784, 7.3784, 13.9227]], b: [[5.2414, 5.2414, 11.5631], [2.8366, 6.8482, 11.5631], [3.1988, 7.7226, 11.5631], [5.9106, 5.9106, 11.5631]], collide: 0}
      - {kind: loft, a: [[3.7085, 8.9532, 13.9227], [0, 9.6908, 13.9227], [0, 10.4346, 13.9227], [3.9931, 9.6403, 13.9227]], b: [[2.8366, 6.8482, 11.5631], [0, 7.4124, 11.5631], [0, 8.3589, 11.5631], [3.1988, 7.7226, 11.5631]], collide: 0}
      - {kind: loft, a: [[0, 9.6908, 13.9227], [-3.7085, 8.9532, 13.9227], [-3.9931, 9.6403, 13.9227], [0, 10.4346, 13.9227]], b: [[0, 7.4124, 11.5631], [-2.8366, 6.8482, 11.5631], [-3.1988, 7.7226, 11.5631], [0, 8.3589, 11.5631]], collide: 0}
      - {kind: loft, a: [[-3.7085, 8.9532, 13.9227], [-6.8524, 6.8524, 13.9227], [-7.3784, 7.3784, 13.9227], [-3.9931, 9.6403, 13.9227]], b: [[-2.8366, 6.8482, 11.5631], [-5.2414, 5.2414, 11.5631], [-5.9106, 5.9106, 11.5631], [-3.1988, 7.7226, 11.5631]], collide: 0}
      - {kind: loft, a: [[-6.8524, 6.8524, 13.9227], [-8.9532, 3.7085, 13.9227], [-9.6403, 3.9931, 13.9227], [-7.3784, 7.3784, 13.9227]], b: [[-5.2414, 5.2414, 11.5631], [-6.8482, 2.8366, 11.5631], [-7.7226, 3.1988, 11.5631], [-5.9106, 5.9106, 11.5631]], collide: 0}
      - {kind: loft, a: [[-8.9532, 3.7085, 13.9227], [-9.6908, 0, 13.9227], [-10.4346, 0, 13.9227], [-9.6403, 3.9931, 13.9227]], b: [[-6.8482, 2.8366, 11.5631], [-7.4124, 0, 11.5631], [-8.3589, 0, 11.5631], [-7.7226, 3.1988, 11.5631]], collide: 0}
      - {kind: loft, a: [[11.0338, 0, 16.2824], [10.1939, 4.2224, 16.2824], [10.8034, 4.4749, 16.2824], [11.6935, 0, 16.2824]], b: [[9.6908, 0, 13.9227], [8.9532, 3.7085, 13.9227], [9.6403, 3.9931, 13.9227], [10.4346, 0, 13.9227]], collide: 0}
      - {kind: loft, a: [[10.1939, 4.2224, 16.2824], [7.8021, 7.8021, 16.2824], [8.2685, 8.2685, 16.2824], [10.8034, 4.4749, 16.2824]], b: [[8.9532, 3.7085, 13.9227], [6.8524, 6.8524, 13.9227], [7.3784, 7.3784, 13.9227], [9.6403, 3.9931, 13.9227]], collide: 0}
      - {kind: loft, a: [[7.8021, 7.8021, 16.2824], [4.2224, 10.1939, 16.2824], [4.4749, 10.8034, 16.2824], [8.2685, 8.2685, 16.2824]], b: [[6.8524, 6.8524, 13.9227], [3.7085, 8.9532, 13.9227], [3.9931, 9.6403, 13.9227], [7.3784, 7.3784, 13.9227]], collide: 0}
      - {kind: loft, a: [[4.2224, 10.1939, 16.2824], [0, 11.0338, 16.2824], [0, 11.6935, 16.2824], [4.4749, 10.8034, 16.2824]], b: [[3.7085, 8.9532, 13.9227], [0, 9.6908, 13.9227], [0, 10.4346, 13.9227], [3.9931, 9.6403, 13.9227]], collide: 0}
      - {kind: loft, a: [[0, 11.0338, 16.2824], [-4.2224, 10.1939, 16.2824], [-4.4749, 10.8034, 16.2824], [0, 11.6935, 16.2824]], b: [[0, 9.6908, 13.9227], [-3.7085, 8.9532, 13.9227], [-3.9931, 9.6403, 13.9227], [0, 10.4346, 13.9227]], collide: 0}
      - {kind: loft, a: [[-4.2224, 10.1939, 16.2824], [-7.8021, 7.8021, 16.2824], [-8.2685, 8.2685, 16.2824], [-4.4749, 10.8034, 16.2824]], b: [[-3.7085, 8.9532, 13.9227], [-6.8524, 6.8524, 13.9227], [-7.3784, 7.3784, 13.9227], [-3.9931, 9.6403, 13.9227]], collide: 0}
      - {kind: loft, a: [[-7.8021, 7.8021, 16.2824], [-10.1939, 4.2224, 16.2824], [-10.8034, 4.4749, 16.2824], [-8.2685, 8.2685, 16.2824]], b: [[-6.8524, 6.8524, 13.9227], [-8.9532, 3.7085, 13.9227], [-9.6403, 3.9931, 13.9227], [-7.3784, 7.3784, 13.9227]], collide: 0}
      - {kind: loft, a: [[-10.1939, 4.2224, 16.2824], [-11.0338, 0, 16.2824], [-11.6935, 0, 16.2824], [-10.8034, 4.4749, 16.2824]], b: [[-8.9532, 3.7085, 13.9227], [-9.6908, 0, 13.9227], [-10.4346, 0, 13.9227], [-9.6403, 3.9931, 13.9227]], collide: 0}
      - {kind: loft, a: [[11.7661, 0, 18.642], [10.8704, 4.5027, 18.642], [11.4445, 4.7405, 18.642], [12.3874, 0, 18.642]], b: [[11.0338, 0, 16.2824], [10.1939, 4.2224, 16.2824], [10.8034, 4.4749, 16.2824], [11.6935, 0, 16.2824]], collide: 0}
      - {kind: loft, a: [[10.8704, 4.5027, 18.642], [8.3199, 8.3199, 18.642], [8.7592, 8.7592, 18.642], [11.4445, 4.7405, 18.642]], b: [[10.1939, 4.2224, 16.2824], [7.8021, 7.8021, 16.2824], [8.2685, 8.2685, 16.2824], [10.8034, 4.4749, 16.2824]], collide: 0}
      - {kind: loft, a: [[8.3199, 8.3199, 18.642], [4.5027, 10.8704, 18.642], [4.7405, 11.4445, 18.642], [8.7592, 8.7592, 18.642]], b: [[7.8021, 7.8021, 16.2824], [4.2224, 10.1939, 16.2824], [4.4749, 10.8034, 16.2824], [8.2685, 8.2685, 16.2824]], collide: 0}
      - {kind: loft, a: [[4.5027, 10.8704, 18.642], [0, 11.7661, 18.642], [0, 12.3874, 18.642], [4.7405, 11.4445, 18.642]], b: [[4.2224, 10.1939, 16.2824], [0, 11.0338, 16.2824], [0, 11.6935, 16.2824], [4.4749, 10.8034, 16.2824]], collide: 0}
      - {kind: loft, a: [[0, 11.7661, 18.642], [-4.5027, 10.8704, 18.642], [-4.7405, 11.4445, 18.642], [0, 12.3874, 18.642]], b: [[0, 11.0338, 16.2824], [-4.2224, 10.1939, 16.2824], [-4.4749, 10.8034, 16.2824], [0, 11.6935, 16.2824]], collide: 0}
      - {kind: loft, a: [[-4.5027, 10.8704, 18.642], [-8.3199, 8.3199, 18.642], [-8.7592, 8.7592, 18.642], [-4.7405, 11.4445, 18.642]], b: [[-4.2224, 10.1939, 16.2824], [-7.8021, 7.8021, 16.2824], [-8.2685, 8.2685, 16.2824], [-4.4749, 10.8034, 16.2824]], collide: 0}
      - {kind: loft, a: [[-8.3199, 8.3199, 18.642], [-10.8704, 4.5027, 18.642], [-11.4445, 4.7405, 18.642], [-8.7592, 8.7592, 18.642]], b: [[-7.8021, 7.8021, 16.2824], [-10.1939, 4.2224, 16.2824], [-10.8034, 4.4749, 16.2824], [-8.2685, 8.2685, 16.2824]], collide: 0}
      - {kind: loft, a: [[-10.8704, 4.5027, 18.642], [-11.7661, 0, 18.642], [-12.3874, 0, 18.642], [-11.4445, 4.7405, 18.642]], b: [[-10.1939, 4.2224, 16.2824], [-11.0338, 0, 16.2824], [-11.6935, 0, 16.2824], [-10.8034, 4.4749, 16.2824]], collide: 0}
      - {kind: loft, a: [[12, 0, 21.0017], [11.0866, 4.5922, 21.0017], [11.6501, 4.8256, 21.0017], [12.61, 0, 21.0017]], b: [[11.7661, 0, 18.642], [10.8704, 4.5027, 18.642], [11.4445, 4.7405, 18.642], [12.3874, 0, 18.642]], collide: 0}
      - {kind: loft, a: [[11.0866, 4.5922, 21.0017], [8.4853, 8.4853, 21.0017], [8.9166, 8.9166, 21.0017], [11.6501, 4.8256, 21.0017]], b: [[10.8704, 4.5027, 18.642], [8.3199, 8.3199, 18.642], [8.7592, 8.7592, 18.642], [11.4445, 4.7405, 18.642]], collide: 0}
      - {kind: loft, a: [[8.4853, 8.4853, 21.0017], [4.5922, 11.0866, 21.0017], [4.8256, 11.6501, 21.0017], [8.9166, 8.9166, 21.0017]], b: [[8.3199, 8.3199, 18.642], [4.5027, 10.8704, 18.642], [4.7405, 11.4445, 18.642], [8.7592, 8.7592, 18.642]], collide: 0}
      - {kind: loft, a: [[4.5922, 11.0866, 21.0017], [0, 12, 21.0017], [0, 12.61, 21.0017], [4.8256, 11.6501, 21.0017]], b: [[4.5027, 10.8704, 18.642], [0, 11.7661, 18.642], [0, 12.3874, 18.642], [4.7405, 11.4445, 18.642]], collide: 0}
      - {kind: loft, a: [[0, 12, 21.0017], [-4.5922, 11.0866, 21.0017], [-4.8256, 11.6501, 21.0017], [0, 12.61, 21.0017]], b: [[0, 11.7661, 18.642], [-4.5027, 10.8704, 18.642], [-4.7405, 11.4445, 18.642], [0, 12.3874, 18.642]], collide: 0}
      - {kind: loft, a: [[-4.5922, 11.0866, 21.0017], [-8.4853, 8.4853, 21.0017], [-8.9166, 8.9166, 21.0017], [-4.8256, 11.6501, 21.0017]], b: [[-4.5027, 10.8704, 18.642], [-8.3199, 8.3199, 18.642], [-8.7592, 8.7592, 18.642], [-4.7405, 11.4445, 18.642]], collide: 0}
      - {kind: loft, a: [[-8.4853, 8.4853, 21.0017], [-11.0866, 4.5922, 21.0017], [-11.6501, 4.8256, 21.0017], [-8.9166, 8.9166, 21.0017]], b: [[-8.3199, 8.3199, 18.642], [-10.8704, 4.5027, 18.642], [-11.4445, 4.7405, 18.642], [-8.7592, 8.7592, 18.642]], collide: 0}
      - {kind: loft, a: [[-11.0866, 4.5922, 21.0017], [-12, 0, 21.0017], [-12.61, 0, 21.0017], [-11.6501, 4.8256, 21.0017]], b: [[-10.8704, 4.5027, 18.642], [-11.7661, 0, 18.642], [-12.3874, 0, 18.642], [-11.4445, 4.7405, 18.642]], collide: 0}
      - {kind: loft, a: [[11.7654, 0, 23.3614], [10.8698, 4.5024, 23.3614], [11.4439, 4.7402, 23.3614], [12.3868, 0, 23.3614]], b: [[12, 0, 21.0017], [11.0866, 4.5922, 21.0017], [11.6501, 4.8256, 21.0017], [12.61, 0, 21.0017]], collide: 0}
      - {kind: loft, a: [[10.8698, 4.5024, 23.3614], [8.3194, 8.3194, 23.3614], [8.7588, 8.7588, 23.3614], [11.4439, 4.7402, 23.3614]], b: [[11.0866, 4.5922, 21.0017], [8.4853, 8.4853, 21.0017], [8.9166, 8.9166, 21.0017], [11.6501, 4.8256, 21.0017]], collide: 0}
      - {kind: loft, a: [[8.3194, 8.3194, 23.3614], [4.5024, 10.8698, 23.3614], [4.7402, 11.4439, 23.3614], [8.7588, 8.7588, 23.3614]], b: [[8.4853, 8.4853, 21.0017], [4.5922, 11.0866, 21.0017], [4.8256, 11.6501, 21.0017], [8.9166, 8.9166, 21.0017]], collide: 0}
      - {kind: loft, a: [[4.5024, 10.8698, 23.3614], [0, 11.7654, 23.3614], [0, 12.3868, 23.3614], [4.7402, 11.4439, 23.3614]], b: [[4.5922, 11.0866, 21.0017], [0, 12, 21.0017], [0, 12.61, 21.0017], [4.8256, 11.6501, 21.0017]], collide: 0}
      - {kind: loft, a: [[0, 11.7654, 23.3614], [-4.5024, 10.8698, 23.3614], [-4.7402, 11.4439, 23.3614], [0, 12.3868, 23.3614]], b: [[0, 12, 21.0017], [-4.5922, 11.0866, 21.0017], [-4.8256, 11.6501, 21.0017], [0, 12.61, 21.0017]], collide: 0}
      - {kind: loft, a: [[-4.5024, 10.8698, 23.3614], [-8.3194, 8.3194, 23.3614], [-8.7588, 8.7588, 23.3614], [-4.7402, 11.4439, 23.3614]], b: [[-4.5922, 11.0866, 21.0017], [-8.4853, 8.4853, 21.0017], [-8.9166, 8.9166, 21.0017], [-4.8256, 11.6501, 21.0017]], collide: 0}
      - {kind: loft, a: [[-8.3194, 8.3194, 23.3614], [-10.8698, 4.5024, 23.3614], [-11.4439, 4.7402, 23.3614], [-8.7588, 8.7588, 23.3614]], b: [[-8.4853, 8.4853, 21.0017], [-11.0866, 4.5922, 21.0017], [-11.6501, 4.8256, 21.0017], [-8.9166, 8.9166, 21.0017]], collide: 0}
      - {kind: loft, a: [[-10.8698, 4.5024, 23.3614], [-11.7654, 0, 23.3614], [-12.3868, 0, 23.3614], [-11.4439, 4.7402, 23.3614]], b: [[-11.0866, 4.5922, 21.0017], [-12, 0, 21.0017], [-12.61, 0, 21.0017], [-11.6501, 4.8256, 21.0017]], collide: 0}
      - {kind: loft, a: [[11.0323, 0, 25.721], [10.1925, 4.2219, 25.721], [10.8021, 4.4744, 25.721], [11.6921, 0, 25.721]], b: [[11.7654, 0, 23.3614], [10.8698, 4.5024, 23.3614], [11.4439, 4.7402, 23.3614], [12.3868, 0, 23.3614]], collide: 0}
      - {kind: loft, a: [[10.1925, 4.2219, 25.721], [7.801, 7.801, 25.721], [8.2676, 8.2676, 25.721], [10.8021, 4.4744, 25.721]], b: [[10.8698, 4.5024, 23.3614], [8.3194, 8.3194, 23.3614], [8.7588, 8.7588, 23.3614], [11.4439, 4.7402, 23.3614]], collide: 0}
      - {kind: loft, a: [[7.801, 7.801, 25.721], [4.2219, 10.1925, 25.721], [4.4744, 10.8021, 25.721], [8.2676, 8.2676, 25.721]], b: [[8.3194, 8.3194, 23.3614], [4.5024, 10.8698, 23.3614], [4.7402, 11.4439, 23.3614], [8.7588, 8.7588, 23.3614]], collide: 0}
      - {kind: loft, a: [[4.2219, 10.1925, 25.721], [0, 11.0323, 25.721], [0, 11.6921, 25.721], [4.4744, 10.8021, 25.721]], b: [[4.5024, 10.8698, 23.3614], [0, 11.7654, 23.3614], [0, 12.3868, 23.3614], [4.7402, 11.4439, 23.3614]], collide: 0}
      - {kind: loft, a: [[0, 11.0323, 25.721], [-4.2219, 10.1925, 25.721], [-4.4744, 10.8021, 25.721], [0, 11.6921, 25.721]], b: [[0, 11.7654, 23.3614], [-4.5024, 10.8698, 23.3614], [-4.7402, 11.4439, 23.3614], [0, 12.3868, 23.3614]], collide: 0}
      - {kind: loft, a: [[-4.2219, 10.1925, 25.721], [-7.801, 7.801, 25.721], [-8.2676, 8.2676, 25.721], [-4.4744, 10.8021, 25.721]], b: [[-4.5024, 10.8698, 23.3614], [-8.3194, 8.3194, 23.3614], [-8.7588, 8.7588, 23.3614], [-4.7402, 11.4439, 23.3614]], collide: 0}
      - {kind: loft, a: [[-7.801, 7.801, 25.721], [-10.1925, 4.2219, 25.721], [-10.8021, 4.4744, 25.721], [-8.2676, 8.2676, 25.721]], b: [[-8.3194, 8.3194, 23.3614], [-10.8698, 4.5024, 23.3614], [-11.4439, 4.7402, 23.3614], [-8.7588, 8.7588, 23.3614]], collide: 0}
      - {kind: loft, a: [[-10.1925, 4.2219, 25.721], [-11.0323, 0, 25.721], [-11.6921, 0, 25.721], [-10.8021, 4.4744, 25.721]], b: [[-10.8698, 4.5024, 23.3614], [-11.7654, 0, 23.3614], [-12.3868, 0, 23.3614], [-11.4439, 4.7402, 23.3614]], collide: 0}
      - {kind: loft, a: [[9.6883, 0, 28.0807], [8.9509, 3.7076, 28.0807], [9.6382, 3.9923, 28.0807], [10.4323, 0, 28.0807]], b: [[11.0323, 0, 25.721], [10.1925, 4.2219, 25.721], [10.8021, 4.4744, 25.721], [11.6921, 0, 25.721]], collide: 0}
      - {kind: loft, a: [[8.9509, 3.7076, 28.0807], [6.8507, 6.8507, 28.0807], [7.3767, 7.3767, 28.0807], [9.6382, 3.9923, 28.0807]], b: [[10.1925, 4.2219, 25.721], [7.801, 7.801, 25.721], [8.2676, 8.2676, 25.721], [10.8021, 4.4744, 25.721]], collide: 0}
      - {kind: loft, a: [[6.8507, 6.8507, 28.0807], [3.7076, 8.9509, 28.0807], [3.9923, 9.6382, 28.0807], [7.3767, 7.3767, 28.0807]], b: [[7.801, 7.801, 25.721], [4.2219, 10.1925, 25.721], [4.4744, 10.8021, 25.721], [8.2676, 8.2676, 25.721]], collide: 0}
      - {kind: loft, a: [[3.7076, 8.9509, 28.0807], [0, 9.6883, 28.0807], [0, 10.4323, 28.0807], [3.9923, 9.6382, 28.0807]], b: [[4.2219, 10.1925, 25.721], [0, 11.0323, 25.721], [0, 11.6921, 25.721], [4.4744, 10.8021, 25.721]], collide: 0}
      - {kind: loft, a: [[0, 9.6883, 28.0807], [-3.7076, 8.9509, 28.0807], [-3.9923, 9.6382, 28.0807], [0, 10.4323, 28.0807]], b: [[0, 11.0323, 25.721], [-4.2219, 10.1925, 25.721], [-4.4744, 10.8021, 25.721], [0, 11.6921, 25.721]], collide: 0}
      - {kind: loft, a: [[-3.7076, 8.9509, 28.0807], [-6.8507, 6.8507, 28.0807], [-7.3767, 7.3767, 28.0807], [-3.9923, 9.6382, 28.0807]], b: [[-4.2219, 10.1925, 25.721], [-7.801, 7.801, 25.721], [-8.2676, 8.2676, 25.721], [-4.4744, 10.8021, 25.721]], collide: 0}
      - {kind: loft, a: [[-6.8507, 6.8507, 28.0807], [-8.9509, 3.7076, 28.0807], [-9.6382, 3.9923, 28.0807], [-7.3767, 7.3767, 28.0807]], b: [[-7.801, 7.801, 25.721], [-10.1925, 4.2219, 25.721], [-10.8021, 4.4744, 25.721], [-8.2676, 8.2676, 25.721]], collide: 0}
      - {kind: loft, a: [[-8.9509, 3.7076, 28.0807], [-9.6883, 0, 28.0807], [-10.4323, 0, 28.0807], [-9.6382, 3.9923, 28.0807]], b: [[-10.1925, 4.2219, 25.721], [-11.0323, 0, 25.721], [-11.6921, 0, 25.721], [-10.8021, 4.4744, 25.721]], collide: 0}
      - {kind: loft, a: [[7.4081, 0, 30.4403], [6.8442, 2.835, 30.4403], [7.7191, 3.1973, 30.4403], [8.3551, 0, 30.4403]], b: [[9.6883, 0, 28.0807], [8.9509, 3.7076, 28.0807], [9.6382, 3.9923, 28.0807], [10.4323, 0, 28.0807]], collide: 0}
      - {kind: loft, a: [[6.8442, 2.835, 30.4403], [5.2383, 5.2383, 30.4403], [5.9079, 5.9079, 30.4403], [7.7191, 3.1973, 30.4403]], b: [[8.9509, 3.7076, 28.0807], [6.8507, 6.8507, 28.0807], [7.3767, 7.3767, 28.0807], [9.6382, 3.9923, 28.0807]], collide: 0}
      - {kind: loft, a: [[5.2383, 5.2383, 30.4403], [2.835, 6.8442, 30.4403], [3.1973, 7.7191, 30.4403], [5.9079, 5.9079, 30.4403]], b: [[6.8507, 6.8507, 28.0807], [3.7076, 8.9509, 28.0807], [3.9923, 9.6382, 28.0807], [7.3767, 7.3767, 28.0807]], collide: 0}
      - {kind: loft, a: [[2.835, 6.8442, 30.4403], [0, 7.4081, 30.4403], [0, 8.3551, 30.4403], [3.1973, 7.7191, 30.4403]], b: [[3.7076, 8.9509, 28.0807], [0, 9.6883, 28.0807], [0, 10.4323, 28.0807], [3.9923, 9.6382, 28.0807]], collide: 0}
      - {kind: loft, a: [[0, 7.4081, 30.4403], [-2.835, 6.8442, 30.4403], [-3.1973, 7.7191, 30.4403], [0, 8.3551, 30.4403]], b: [[0, 9.6883, 28.0807], [-3.7076, 8.9509, 28.0807], [-3.9923, 9.6382, 28.0807], [0, 10.4323, 28.0807]], collide: 0}
      - {kind: loft, a: [[-2.835, 6.8442, 30.4403], [-5.2383, 5.2383, 30.4403], [-5.9079, 5.9079, 30.4403], [-3.1973, 7.7191, 30.4403]], b: [[-3.7076, 8.9509, 28.0807], [-6.8507, 6.8507, 28.0807], [-7.3767, 7.3767, 28.0807], [-3.9923, 9.6382, 28.0807]], collide: 0}
      - {kind: loft, a: [[-5.2383, 5.2383, 30.4403], [-6.8442, 2.835, 30.4403], [-7.7191, 3.1973, 30.4403], [-5.9079, 5.9079, 30.4403]], b: [[-6.8507, 6.8507, 28.0807], [-8.9509, 3.7076, 28.0807], [-9.6382, 3.9923, 28.0807], [-7.3767, 7.3767, 28.0807]], collide: 0}
      - {kind: loft, a: [[-6.8442, 2.835, 30.4403], [-7.4081, 0, 30.4403], [-8.3551, 0, 30.4403], [-7.7191, 3.1973, 30.4403]], b: [[-8.9509, 3.7076, 28.0807], [-9.6883, 0, 28.0807], [-10.4323, 0, 28.0807], [-9.6382, 3.9923, 28.0807]], collide: 0}
      - {kind: loft, a: [[2.1817, 0, 32.8], [2.0157, 0.8349, 32.8], [4.0911, 1.6946, 32.8], [4.4281, 0, 32.8]], b: [[7.4081, 0, 30.4403], [6.8442, 2.835, 30.4403], [7.7191, 3.1973, 30.4403], [8.3551, 0, 30.4403]], collide: 0}
      - {kind: loft, a: [[2.0157, 0.8349, 32.8], [1.5427, 1.5427, 32.8], [3.1312, 3.1312, 32.8], [4.0911, 1.6946, 32.8]], b: [[6.8442, 2.835, 30.4403], [5.2383, 5.2383, 30.4403], [5.9079, 5.9079, 30.4403], [7.7191, 3.1973, 30.4403]], collide: 0}
      - {kind: loft, a: [[1.5427, 1.5427, 32.8], [0.8349, 2.0157, 32.8], [1.6946, 4.0911, 32.8], [3.1312, 3.1312, 32.8]], b: [[5.2383, 5.2383, 30.4403], [2.835, 6.8442, 30.4403], [3.1973, 7.7191, 30.4403], [5.9079, 5.9079, 30.4403]], collide: 0}
      - {kind: loft, a: [[0.8349, 2.0157, 32.8], [0, 2.1817, 32.8], [0, 4.4281, 32.8], [1.6946, 4.0911, 32.8]], b: [[2.835, 6.8442, 30.4403], [0, 7.4081, 30.4403], [0, 8.3551, 30.4403], [3.1973, 7.7191, 30.4403]], collide: 0}
      - {kind: loft, a: [[0, 2.1817, 32.8], [-0.8349, 2.0157, 32.8], [-1.6946, 4.0911, 32.8], [0, 4.4281, 32.8]], b: [[0, 7.4081, 30.4403], [-2.835, 6.8442, 30.4403], [-3.1973, 7.7191, 30.4403], [0, 8.3551, 30.4403]], collide: 0}
      - {kind: loft, a: [[-0.8349, 2.0157, 32.8], [-1.5427, 1.5427, 32.8], [-3.1312, 3.1312, 32.8], [-1.6946, 4.0911, 32.8]], b: [[-2.835, 6.8442, 30.4403], [-5.2383, 5.2383, 30.4403], [-5.9079, 5.9079, 30.4403], [-3.1973, 7.7191, 30.4403]], collide: 0}
      - {kind: loft, a: [[-1.5427, 1.5427, 32.8], [-2.0157, 0.8349, 32.8], [-4.0911, 1.6946, 32.8], [-3.1312, 3.1312, 32.8]], b: [[-5.2383, 5.2383, 30.4403], [-6.8442, 2.835, 30.4403], [-7.7191, 3.1973, 30.4403], [-5.9079, 5.9079, 30.4403]], collide: 0}
      - {kind: loft, a: [[-2.0157, 0.8349, 32.8], [-2.1817, 0, 32.8], [-4.4281, 0, 32.8], [-4.0911, 1.6946, 32.8]], b: [[-6.8442, 2.835, 30.4403], [-7.4081, 0, 30.4403], [-8.3551, 0, 30.4403], [-7.7191, 3.1973, 30.4403]], collide: 0}
      - {kind: loft, a: [[-0.7, 0, 40], [-0.6062, 0.35, 40], [-0.9093, 0.525, 40], [-1.05, 0, 40]], b: [[-0.7, 0, 12], [-0.6062, 0.35, 12], [-0.9093, 0.525, 12], [-1.05, 0, 12]], collide: 0}
      - {kind: loft, a: [[-0.6062, 0.35, 40], [-0.35, 0.6062, 40], [-0.525, 0.9093, 40], [-0.9093, 0.525, 40]], b: [[-0.6062, 0.35, 12], [-0.35, 0.6062, 12], [-0.525, 0.9093, 12], [-0.9093, 0.525, 12]], collide: 0}
      - {kind: loft, a: [[-0.35, 0.6062, 40], [-0, 0.7, 40], [-0, 1.05, 40], [-0.525, 0.9093, 40]], b: [[-0.35, 0.6062, 12], [-0, 0.7, 12], [-0, 1.05, 12], [-0.525, 0.9093, 12]], collide: 0}
      - {kind: loft, a: [[-0, 0.7, 40], [0.35, 0.6062, 40], [0.525, 0.9093, 40], [-0, 1.05, 40]], b: [[-0, 0.7, 12], [0.35, 0.6062, 12], [0.525, 0.9093, 12], [-0, 1.05, 12]], collide: 0}
      - {kind: loft, a: [[0.35, 0.6062, 40], [0.6062, 0.35, 40], [0.9093, 0.525, 40], [0.525, 0.9093, 40]], b: [[0.35, 0.6062, 12], [0.6062, 0.35, 12], [0.9093, 0.525, 12], [0.525, 0.9093, 12]], collide: 0}
      - {kind: loft, a: [[0.6062, 0.35, 40], [0.7, 0, 40], [1.05, 0, 40], [0.9093, 0.525, 40]], b: [[0.6062, 0.35, 12], [0.7, 0, 12], [1.05, 0, 12], [0.9093, 0.525, 12]], collide: 0}
      - {kind: loft, a: [[-37, 0, -9], [31, 0, -9], [31, 11, -9], [-37, 11, -9]], b: [[-37, 0, -10], [31, 0, -10], [31, 11, -10], [-37, 11, -10]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[-37, 10, 6], [31, 10, 6], [31, 11, 6], [-37, 11, 6]], b: [[-37, 10, -9], [31, 10, -9], [31, 11, -9], [-37, 11, -9]], collide: 0}
      - {kind: loft, a: [[-37, 0, 6], [-36, 0, 6], [-36, 10, 6], [-37, 10, 6]], b: [[-37, 0, -9], [-36, 0, -9], [-36, 10, -9], [-37, 10, -9]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[30, 0, 2], [31, 0, 2], [31, 10, 2], [30, 10, 2]], b: [[30, 0, -9], [31, 0, -9], [31, 10, -9], [30, 10, -9]], collide: 0, color: "#9c9282"}
      - {kind: loft, a: [[30, 0, -3], [46, 0, -3], [46, 11, -3], [30, 11, -3]], b: [[30, 0, -4], [46, 0, -4], [46, 11, -4], [30, 11, -4]], collide: 0, color: "#9c9282"}
joints:
  - {id: j_wv, type: slide, body: wvalve, axis: [0, 0, 1], range: [0, 3.5], damping: 0.5}   # 0: down, open; 3.5: up on its seat, shut
  - {id: j_dv, type: slide, body: dvalve, axis: [0, 0, 1], range: [0, 0.4], damping: 0.02}   # 0: on its seat, shut
vessels:
  substeps: 8
  nodes:
    - {id: pour, kind: source, head: 30}   # the water poured in (the input), its head over the cistern's inlet
    - {id: head, kind: tank, area: 240, z: 34, level: 10, max: 14,
       draw: {section: [[-38, 34], [-22, 34], [-22, 50], [-38, 50]], y: [0, 7.5]}}
    - {id: box, kind: chamber, fixed: -6, sections: [[-6, 108]], volume: 864, water: 864, K: 2e+07,
       draw: {sections: [[[-4, -6], [14, -6], [14, 2], [-4, 2]]], y: [0, 3]}}   # the valve box, full of water
    - {id: basin, kind: tank, area: 1320, z: -9, level: 8, max: 11,
       draw: {section: [[-36, -9], [30, -9], [30, 6], [-36, 6]], y: [3.7, 10]}}   # behind the ram, spilling over its end
    - {id: globe, kind: chamber, fixed: 2, sections: [[-99.0, 8.0425], [9.0, 104.4894], [12.0, 274.1354], [15.0, 387.2327], [18.0, 450.85], [24.0, 387.2327], [27.0, 274.1354], [30.0, 104.4894]], volume: 7356.54, water: 1966.64, p: 6500, K: 2e+07,
       draw: {sections: [[[-1.6, 2], [1.6, 2], [1.6, 9.5], [-1.6, 9.5]], [[0.0, 9.0], [5.207, 10.188], [9.382, 13.518], [11.699, 18.33], [11.699, 23.67], [9.382, 28.482], [5.207, 31.812], [0.0, 33.0], [-5.207, 31.812], [-9.382, 28.482], [-11.699, 23.67], [-11.699, 18.33], [-9.382, 13.518], [-5.207, 10.188]]], y: [0, 8.4]}}   # the air vessel: water under air
    - {id: air, kind: source, p: 0}
  links:
    - {id: feed, from: pour, to: head, area: 4, cd: 0.62, z: 60, check: true,
       draw: {from: [-50, 1.5, 56.4], to: [-37, 1.5, 54.4], width: 2.4, flow: 0.6, fall: {dir: [1, 0, -0.6], floor: 34}}}   # poured from the spout
    - {id: drive, from: head, to: box, area: 4.5239, cd: 0.9, z: 34, zTo: -2.8, length: 62.8,
       draw: {from: [-30, 0.6, 34], via: [[-30, 0.6, -2.8]], to: [-4, 0.6, -2.8], width: 2.4, flow: 1.0}}   # the drive pipe: its water's way is a state
    - {id: waste, from: box, to: basin, area: 8.0425, cd: 0.62, z: 2, zTo: 2, open: {joint: j_wv, q: [2.7, 3.5], frac: [1, 0]},
       draw: {from: [9.5, 1.2, 2], to: [12, 1.2, 3.5], width: 2.0, flow: 1.0}}   # out past the waste valve into the basin
    - {id: tail, from: basin, to: air, area: 3.5, cd: 0.62, z: -9, zTo: -9,
       draw: {from: [29, 0.6, -7.5], to: [38, 0.6, -7.5], width: 1.6, flow: 0.4, fall: {dir: [1, 0, -0.4], floor: -15}}}   # the tail race: the spent water away under the basin's end
    - {id: deliver, from: box, to: globe, area: 8.0425, cd: 0.62, z: 2, zTo: 2.5, check: true, open: {joint: j_dv, q: [0, 0.15], frac: [0, 1]}}
    - {id: jet, from: globe, to: air, area: 0.5, cd: 0.9, z: 12, zTo: 40, check: true, length: 28,
       draw: {from: [0, 0.3, 12], to: [0, 0.3, 40], width: 1.4, flow: 0.05, fall: {dir: [0.12, 0, 1], floor: 33}}}   # up the jet pipe and out of its mouth
  pistons:
    - {node: box, joint: j_wv, area: 8.0425, sign: 1, z: -1.7}   # the box's water pushes the waste disc up, shut
    - {node: basin, joint: j_wv, area: 8.0425, sign: -1, z: 2}   # the basin's down on it
    - {node: box, joint: j_dv, area: 8.0425, sign: 1, z: 2}   # the box's lifts the delivery valve
    - {node: globe, joint: j_dv, area: 8.0425, sign: -1, z: 2.5}   # the globe's holds it down
driver: {joint: j_wv, kind: torque, torque: 0, max_torque: 0.001}   # no hand: the poured water is the only input
checks:
  - {type: amplitude, joint: j_wv, min: 0.00875, max: 0.02345, sustain: 0.7, settle_s: 3.0, window_s: 10}
  - {type: amplitude, joint: j_dv, min: 0.0002, max: 0.003, sustain: 0.5, settle_s: 3.0, window_s: 10}
  - {type: penetration, max: 0.003}
camera: {target: [-6, 0, 9], position: [-6, -320, 19], fov: 28}
display:
  output: j_wv
  labels: {j_wv: "Waste valve (right)", j_dv: "Delivery valve (left)"}
