# No. 497 (Brown 1868): "Fan-blower. The casing has circular openings in its sides through which, by the revolution of the shaft and
# attached fan-blades, air is drawn in at the center of the casing, to be forced out under pressure through the spout."
# Model (cm, Brown's view along the shaft): the shaft is the one driven joint (90 rpm, counterclockwise, Brown's arrow). The air is
# particles in the casing's mid-plane (src/fluid/fluid2d.c, density 1.204 kg/m^3: at these speeds air is as incompressible as water):
# drawn in at the centre through the side openings (a supply kept full there, at rest), flung round by the blades (collision) against
# the volute, the tongue and the spout's walls, and out of the spout's mouth. The particles push back on the blades: the air's load is
# what the shaft's drive feels. Every particle is the solver's own, drawn as a short
# streak along its own velocity (its travel in 0.05 s): the flow's speed and direction as the solver has them.
# Generator: opencode-runs/fluidgen/gen497.py.
number: 497
slug: fan-blower
name: Fan-blower
brown: "Fan-blower. The casing has circular openings in its sides through which, by the revolution of the shaft and attached fan-blades, air is drawn in at the center of the casing, to be forced out under pressure through the spout."
units: cm
sim: {timestep: 0.001, integrator: implicitfast, iterations: 50, duration_s: 10, floor: false, gravity: 0}
bodies:
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: rod, from: [5.8171e-16, -3.0, -9.5], to: [0.83343, -3.0, -9.5261], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [0.83343, -3.0, -9.5261], to: [1.6714, -3.0, -9.4788], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [1.6714, -3.0, -9.4788], to: [2.5073, -3.0, -9.3574], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.5073, -3.0, -9.3574], to: [3.3347, -3.0, -9.162], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [3.3347, -3.0, -9.162], to: [4.1469, -3.0, -8.8931], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.1469, -3.0, -8.8931], to: [4.9375, -3.0, -8.552], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.9375, -3.0, -8.552], to: [5.6999, -3.0, -8.1403], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [5.6999, -3.0, -8.1403], to: [6.4279, -3.0, -7.6604], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [6.4279, -3.0, -7.6604], to: [7.1153, -3.0, -7.1153], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.1153, -3.0, -7.1153], to: [7.7562, -3.0, -6.5082], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.7562, -3.0, -6.5082], to: [8.3451, -3.0, -5.8433], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.3451, -3.0, -5.8433], to: [8.8768, -3.0, -5.125], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.8768, -3.0, -5.125], to: [9.3463, -3.0, -4.3583], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.3463, -3.0, -4.3583], to: [9.7493, -3.0, -3.5485], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.7493, -3.0, -3.5485], to: [10.082, -3.0, -2.7014], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.082, -3.0, -2.7014], to: [10.34, -3.0, -1.8233], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.34, -3.0, -1.8233], to: [10.522, -3.0, -0.92058], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.522, -3.0, -0.92058], to: [10.625, -3.0, 0.0], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.625, -3.0, 0.0], to: [10.647, -3.0, 0.93148], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.647, -3.0, 0.93148], to: [10.587, -3.0, 1.8667], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.587, -3.0, 1.8667], to: [10.444, -3.0, 2.7985], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.444, -3.0, 2.7985], to: [10.219, -3.0, 3.7195], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.219, -3.0, 3.7195], to: [9.9127, -3.0, 4.6224], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.9127, -3.0, 4.6224], to: [9.5263, -3.0, 5.5], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.5263, -3.0, 5.5], to: [9.0619, -3.0, 6.3452], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.0619, -3.0, 6.3452], to: [8.5222, -3.0, 7.151], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.5222, -3.0, 7.151], to: [7.9108, -3.0, 7.9108], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.9108, -3.0, 7.9108], to: [7.2314, -3.0, 8.618], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.2314, -3.0, 8.618], to: [6.4886, -3.0, 9.2667], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [6.4886, -3.0, 9.2667], to: [5.6875, -3.0, 9.851], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [5.6875, -3.0, 9.851], to: [4.8337, -3.0, 10.366], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.8337, -3.0, 10.366], to: [3.9332, -3.0, 10.806], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [3.9332, -3.0, 10.806], to: [2.9926, -3.0, 11.169], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.9926, -3.0, 11.169], to: [2.0187, -3.0, 11.448], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.0187, -3.0, 11.448], to: [1.0186, -3.0, 11.643], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [1.0186, -3.0, 11.643], to: [7.1948e-16, -3.0, 11.75], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.1948e-16, -3.0, 11.75], to: [-1.0295, -3.0, 11.768], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-1.0295, -3.0, 11.768], to: [-2.0621, -3.0, 11.695], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-2.0621, -3.0, 11.695], to: [-3.0897, -3.0, 11.531], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-3.0897, -3.0, 11.531], to: [-4.1042, -3.0, 11.276], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-4.1042, -3.0, 11.276], to: [-5.0978, -3.0, 10.932], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-5.0978, -3.0, 10.932], to: [-6.0625, -3.0, 10.501], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.0625, -3.0, 10.501], to: [-6.9905, -3.0, 9.9834], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.9905, -3.0, 9.9834], to: [-7.8741, -3.0, 9.384], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-7.8741, -3.0, 9.384], to: [-8.7063, -3.0, 8.7063], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-8.7063, -3.0, 8.7063], to: [-9.4798, -3.0, 7.9545], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-9.4798, -3.0, 7.9545], to: [-10.188, -3.0, 7.1339], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.188, -3.0, 7.1339], to: [-10.825, -3.0, 6.25], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.825, -3.0, 6.25], to: [-11.385, -3.0, 5.3091], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.385, -3.0, 5.3091], to: [-11.864, -3.0, 4.318], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.864, -3.0, 4.318], to: [-12.255, -3.0, 3.2838], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.255, -3.0, 3.2838], to: [-12.556, -3.0, 2.214], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.556, -3.0, 2.214], to: [-12.764, -3.0, 1.1167], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.764, -3.0, 1.1167], to: [-12.875, -3.0, 1.5767e-15], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.875, -3.0, 1.5767e-15], to: [-12.888, -3.0, -1.1276], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.888, -3.0, -1.1276], to: [-12.803, -3.0, -2.2574], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.803, -3.0, -2.2574], to: [-12.617, -3.0, -3.3808], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.617, -3.0, -3.3808], to: [-12.333, -3.0, -4.489], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.333, -3.0, -4.489], to: [-11.952, -3.0, -5.5733], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.952, -3.0, -5.5733], to: [-11.475, -3.0, -6.625], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.475, -3.0, -6.625], to: [-10.905, -3.0, -7.6357], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.905, -3.0, -7.6357], to: [-10.246, -3.0, -8.5973], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.246, -3.0, -8.5973], to: [-9.5017, -3.0, -9.5017], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-9.5017, -3.0, -9.5017], to: [-8.6776, -3.0, -10.342], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-8.6776, -3.0, -10.342], to: [-7.7791, -3.0, -11.11], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-7.7791, -3.0, -11.11], to: [-6.8125, -3.0, -11.8], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.8125, -3.0, -11.8], to: [-5.7846, -3.0, -12.405], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-5.7846, -3.0, -12.405], to: [-4.7028, -3.0, -12.921], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-4.7028, -3.0, -12.921], to: [-3.5749, -3.0, -13.342], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-3.5749, -3.0, -13.342], to: [-2.4094, -3.0, -13.664], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-2.4094, -3.0, -13.664], to: [-1.2147, -3.0, -13.884], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-1.2147, -3.0, -13.884], to: [-2.5718e-15, -3.0, -14.0], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [5.8171e-16, 3.0, -9.5], to: [0.83343, 3.0, -9.5261], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [0.83343, 3.0, -9.5261], to: [1.6714, 3.0, -9.4788], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [1.6714, 3.0, -9.4788], to: [2.5073, 3.0, -9.3574], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.5073, 3.0, -9.3574], to: [3.3347, 3.0, -9.162], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [3.3347, 3.0, -9.162], to: [4.1469, 3.0, -8.8931], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.1469, 3.0, -8.8931], to: [4.9375, 3.0, -8.552], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.9375, 3.0, -8.552], to: [5.6999, 3.0, -8.1403], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [5.6999, 3.0, -8.1403], to: [6.4279, 3.0, -7.6604], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [6.4279, 3.0, -7.6604], to: [7.1153, 3.0, -7.1153], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.1153, 3.0, -7.1153], to: [7.7562, 3.0, -6.5082], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.7562, 3.0, -6.5082], to: [8.3451, 3.0, -5.8433], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.3451, 3.0, -5.8433], to: [8.8768, 3.0, -5.125], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.8768, 3.0, -5.125], to: [9.3463, 3.0, -4.3583], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.3463, 3.0, -4.3583], to: [9.7493, 3.0, -3.5485], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.7493, 3.0, -3.5485], to: [10.082, 3.0, -2.7014], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.082, 3.0, -2.7014], to: [10.34, 3.0, -1.8233], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.34, 3.0, -1.8233], to: [10.522, 3.0, -0.92058], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.522, 3.0, -0.92058], to: [10.625, 3.0, 0.0], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.625, 3.0, 0.0], to: [10.647, 3.0, 0.93148], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.647, 3.0, 0.93148], to: [10.587, 3.0, 1.8667], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.587, 3.0, 1.8667], to: [10.444, 3.0, 2.7985], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.444, 3.0, 2.7985], to: [10.219, 3.0, 3.7195], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [10.219, 3.0, 3.7195], to: [9.9127, 3.0, 4.6224], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.9127, 3.0, 4.6224], to: [9.5263, 3.0, 5.5], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.5263, 3.0, 5.5], to: [9.0619, 3.0, 6.3452], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [9.0619, 3.0, 6.3452], to: [8.5222, 3.0, 7.151], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [8.5222, 3.0, 7.151], to: [7.9108, 3.0, 7.9108], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.9108, 3.0, 7.9108], to: [7.2314, 3.0, 8.618], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.2314, 3.0, 8.618], to: [6.4886, 3.0, 9.2667], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [6.4886, 3.0, 9.2667], to: [5.6875, 3.0, 9.851], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [5.6875, 3.0, 9.851], to: [4.8337, 3.0, 10.366], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [4.8337, 3.0, 10.366], to: [3.9332, 3.0, 10.806], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [3.9332, 3.0, 10.806], to: [2.9926, 3.0, 11.169], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.9926, 3.0, 11.169], to: [2.0187, 3.0, 11.448], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [2.0187, 3.0, 11.448], to: [1.0186, 3.0, 11.643], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [1.0186, 3.0, 11.643], to: [7.1948e-16, 3.0, 11.75], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [7.1948e-16, 3.0, 11.75], to: [-1.0295, 3.0, 11.768], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-1.0295, 3.0, 11.768], to: [-2.0621, 3.0, 11.695], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-2.0621, 3.0, 11.695], to: [-3.0897, 3.0, 11.531], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-3.0897, 3.0, 11.531], to: [-4.1042, 3.0, 11.276], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-4.1042, 3.0, 11.276], to: [-5.0978, 3.0, 10.932], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-5.0978, 3.0, 10.932], to: [-6.0625, 3.0, 10.501], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.0625, 3.0, 10.501], to: [-6.9905, 3.0, 9.9834], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.9905, 3.0, 9.9834], to: [-7.8741, 3.0, 9.384], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-7.8741, 3.0, 9.384], to: [-8.7063, 3.0, 8.7063], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-8.7063, 3.0, 8.7063], to: [-9.4798, 3.0, 7.9545], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-9.4798, 3.0, 7.9545], to: [-10.188, 3.0, 7.1339], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.188, 3.0, 7.1339], to: [-10.825, 3.0, 6.25], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.825, 3.0, 6.25], to: [-11.385, 3.0, 5.3091], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.385, 3.0, 5.3091], to: [-11.864, 3.0, 4.318], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.864, 3.0, 4.318], to: [-12.255, 3.0, 3.2838], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.255, 3.0, 3.2838], to: [-12.556, 3.0, 2.214], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.556, 3.0, 2.214], to: [-12.764, 3.0, 1.1167], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.764, 3.0, 1.1167], to: [-12.875, 3.0, 1.5767e-15], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.875, 3.0, 1.5767e-15], to: [-12.888, 3.0, -1.1276], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.888, 3.0, -1.1276], to: [-12.803, 3.0, -2.2574], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.803, 3.0, -2.2574], to: [-12.617, 3.0, -3.3808], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.617, 3.0, -3.3808], to: [-12.333, 3.0, -4.489], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-12.333, 3.0, -4.489], to: [-11.952, 3.0, -5.5733], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.952, 3.0, -5.5733], to: [-11.475, 3.0, -6.625], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-11.475, 3.0, -6.625], to: [-10.905, 3.0, -7.6357], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.905, 3.0, -7.6357], to: [-10.246, 3.0, -8.5973], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-10.246, 3.0, -8.5973], to: [-9.5017, 3.0, -9.5017], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-9.5017, 3.0, -9.5017], to: [-8.6776, 3.0, -10.342], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-8.6776, 3.0, -10.342], to: [-7.7791, 3.0, -11.11], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-7.7791, 3.0, -11.11], to: [-6.8125, 3.0, -11.8], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-6.8125, 3.0, -11.8], to: [-5.7846, 3.0, -12.405], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-5.7846, 3.0, -12.405], to: [-4.7028, 3.0, -12.921], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-4.7028, 3.0, -12.921], to: [-3.5749, 3.0, -13.342], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-3.5749, 3.0, -13.342], to: [-2.4094, 3.0, -13.664], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-2.4094, 3.0, -13.664], to: [-1.2147, 3.0, -13.884], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [-1.2147, 3.0, -13.884], to: [-2.5718e-15, 3.0, -14.0], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: poly, points: [[5.8171e-16, -9.5], [0.83343, -9.5261], [0.8209, -9.9259], [-0.012526, -9.8998]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[0.83343, -9.5261], [1.6714, -9.4788], [1.6939, -9.8781], [0.85599, -9.9255]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[1.6714, -9.4788], [2.5073, -9.3574], [2.5648, -9.7533], [1.7288, -9.8746]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[2.5073, -9.3574], [3.3347, -9.162], [3.4266, -9.5513], [2.5992, -9.7467]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[3.3347, -9.162], [4.1469, -8.8931], [4.2726, -9.2729], [3.4604, -9.5417]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[4.1469, -8.8931], [4.9375, -8.552], [5.096, -8.9193], [4.3054, -9.2604]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[4.9375, -8.552], [5.6999, -8.1403], [5.89, -8.4923], [5.1275, -8.904]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[5.6999, -8.1403], [6.4279, -7.6604], [6.648, -7.9944], [5.9201, -8.4743]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[6.4279, -7.6604], [7.1153, -7.1153], [7.3638, -7.4287], [6.6764, -7.9738]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[7.1153, -7.1153], [7.7562, -6.5082], [8.0313, -6.7986], [7.3903, -7.4057]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[7.7562, -6.5082], [8.3451, -5.8433], [8.6445, -6.1085], [8.0556, -6.7734]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[8.3451, -5.8433], [8.8768, -5.125], [9.1983, -5.363], [8.6666, -6.0813]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[8.8768, -5.125], [9.3463, -4.3583], [9.6874, -4.5671], [9.2179, -5.3339]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[9.3463, -4.3583], [9.7493, -3.5485], [10.107, -3.7267], [9.7044, -4.5365]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[9.7493, -3.5485], [10.082, -2.7014], [10.454, -2.8476], [10.122, -3.6946]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.082, -2.7014], [10.34, -1.8233], [10.724, -1.9363], [10.466, -2.8144]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.34, -1.8233], [10.522, -0.92058], [10.914, -0.99956], [10.733, -1.9023]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.522, -0.92058], [10.625, 0.0], [11.023, -0.044346], [10.92, -0.96493]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.625, 0.0], [10.647, 0.93148], [11.047, 0.9221], [11.025, -0.0093721]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.647, 0.93148], [10.587, 1.8667], [10.986, 1.8924], [11.046, 0.95715]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.587, 1.8667], [10.444, 2.7985], [10.839, 2.859], [10.982, 1.9272]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.444, 2.7985], [10.219, 3.7195], [10.608, 3.8144], [10.833, 2.8934]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[10.219, 3.7195], [9.9127, 4.6224], [10.292, 4.7509], [10.598, 3.848]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[9.9127, 4.6224], [9.5263, 5.5], [9.8924, 5.6612], [10.279, 4.7836]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[9.5263, 5.5], [9.0619, 6.3452], [9.4124, 6.5378], [9.8768, 5.6926]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[9.0619, 6.3452], [8.5222, 7.151], [8.8546, 7.3736], [9.3942, 6.5678]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[8.5222, 7.151], [7.9108, 7.9108], [8.2224, 8.1616], [8.8339, 7.4018]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[7.9108, 7.9108], [7.2314, 8.618], [7.5198, 8.8951], [8.1992, 8.1879]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[7.2314, 8.618], [6.4886, 9.2667], [6.7517, 9.5679], [7.4945, 8.9193]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[6.4886, 9.2667], [5.6875, 9.851], [5.9232, 10.174], [6.7243, 9.5898]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[5.6875, 9.851], [4.8337, 10.366], [5.0403, 10.708], [5.8941, 10.194]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[4.8337, 10.366], [3.9332, 10.806], [4.109, 11.166], [5.0095, 10.725]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[3.9332, 10.806], [2.9926, 11.169], [3.1363, 11.542], [4.0769, 11.18]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[2.9926, 11.169], [2.0187, 11.448], [2.1291, 11.833], [3.1031, 11.553]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[2.0187, 11.448], [1.0186, 11.643], [1.0951, 12.036], [2.0951, 11.841]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[1.0186, 11.643], [7.1948e-16, 11.75], [0.041777, 12.148], [1.0604, 12.041]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[7.1948e-16, 11.75], [-1.0295, 11.768], [-1.0227, 12.167], [0.0068176, 12.15]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-1.0295, 11.768], [-2.0621, 11.695], [-2.0903, 12.094], [-1.0577, 12.167]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-2.0621, 11.695], [-3.0897, 11.531], [-3.1526, 11.926], [-2.1251, 12.09]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-3.0897, 11.531], [-4.1042, 11.276], [-4.2015, 11.664], [-3.1869, 11.919]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-4.1042, 11.276], [-5.0978, 10.932], [-5.2287, 11.31], [-4.2351, 11.654]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-5.0978, 10.932], [-6.0625, 10.501], [-6.2259, 10.866], [-5.2612, 11.297]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-6.0625, 10.501], [-6.9905, 9.9834], [-7.1852, 10.333], [-6.2572, 10.85]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-6.9905, 9.9834], [-7.8741, 9.384], [-8.0987, 9.7151], [-7.215, 10.314]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-7.8741, 9.384], [-8.7063, 8.7063], [-8.9589, 9.0164], [-8.1268, 9.6942]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-8.7063, 8.7063], [-9.4798, 7.9545], [-9.7586, 8.2414], [-8.985, 8.9931]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-9.4798, 7.9545], [-10.188, 7.1339], [-10.491, 7.3952], [-9.7826, 8.2159]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-10.188, 7.1339], [-10.825, 6.25], [-11.15, 6.4839], [-10.513, 7.3678]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-10.825, 6.25], [-11.385, 5.3091], [-11.729, 5.5138], [-11.169, 6.4546]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-11.385, 5.3091], [-11.864, 4.318], [-12.224, 4.4918], [-11.746, 5.4829]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-11.864, 4.318], [-12.255, 3.2838], [-12.629, 3.4254], [-12.238, 4.4596]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.255, 3.2838], [-12.556, 2.214], [-12.941, 2.3224], [-12.64, 3.3921]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.556, 2.214], [-12.764, 1.1167], [-13.157, 1.191], [-12.949, 2.2883]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.764, 1.1167], [-12.875, 1.5767e-15], [-13.273, 0.039656], [-13.162, 1.1563]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.875, 1.5767e-15], [-12.888, -1.1276], [-13.288, -1.1229], [-13.275, 0.0047067]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.888, -1.1276], [-12.803, -2.2574], [-13.201, -2.2877], [-13.287, -1.1579]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.803, -2.2574], [-12.617, -3.3808], [-13.012, -3.4459], [-13.197, -2.3225]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.617, -3.3808], [-12.333, -4.489], [-12.721, -4.5883], [-13.005, -3.4801]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-12.333, -4.489], [-11.952, -5.5733], [-12.329, -5.7061], [-12.711, -4.6218]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-11.952, -5.5733], [-11.475, -6.625], [-11.839, -6.7902], [-12.316, -5.7385]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-11.475, -6.625], [-10.905, -7.6357], [-11.253, -7.8322], [-11.823, -6.8215]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-10.905, -7.6357], [-10.246, -8.5973], [-10.576, -8.8234], [-11.235, -7.8619]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-10.246, -8.5973], [-9.5017, -9.5017], [-9.8106, -9.7559], [-10.555, -8.8514]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-9.5017, -9.5017], [-8.6776, -10.342], [-8.9631, -10.622], [-9.7873, -9.7819]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-8.6776, -10.342], [-7.7791, -11.11], [-8.0391, -11.414], [-8.9376, -10.646]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-7.7791, -11.11], [-6.8125, -11.8], [-7.0449, -12.125], [-8.0115, -11.435]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-6.8125, -11.8], [-5.7846, -12.405], [-5.9876, -12.75], [-7.0155, -12.144]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-5.7846, -12.405], [-4.7028, -12.921], [-4.8749, -13.282], [-5.9567, -12.766]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-4.7028, -12.921], [-3.5749, -13.342], [-3.7148, -13.717], [-4.8427, -13.296]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-3.5749, -13.342], [-2.4094, -13.664], [-2.516, -14.05], [-3.6816, -13.727]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-2.4094, -13.664], [-1.2147, -13.884], [-1.2873, -14.278], [-2.4819, -14.058]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[-1.2147, -13.884], [-2.5718e-15, -14.0], [-0.037874, -14.398], [-1.2526, -14.283]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[0.0, -9.5], [20.0, -9.5], [20.0, -9.1], [0.0, -9.1]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: poly, points: [[0.0, -14.0], [20.0, -14.0], [20.0, -14.4], [0.0, -14.4]], y: [-3.0, 3.0], collide: 1, color: "#8b8170"}
      - {kind: disc, center: [0.0, 0.0], radius: 14.0, y: [3.0, 3.3], collide: 0, inner: 4.2, color: "#c9bfa9"}
      - {kind: disc, center: [0.0, 0.0], radius: 4.8, y: [-3.3, -3.0], collide: 0, inner: 4.2, color: "#8b8170"}
      - {kind: rod, from: [0.0, -3.0, -9.5], to: [20.0, -3.0, -9.5], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: rod, from: [0.0, -3.0, -14.0], to: [20.0, -3.0, -14.0], radius: 0.35, collide: 0, capsule: true, color: "#8b8170"}
      - {kind: poly, points: [[0.0, -14.0], [20.0, -14.0], [20.0, -9.5], [0.0, -9.5]], y: [3.0, 3.3], collide: 0, color: "#c9bfa9"}
      - {kind: poly, points: [[20.0, -15.6], [21.0, -15.6], [21.0, -7.9], [20.0, -7.9]], y: [-4.0, 4.0], collide: 0, color: "#8b8170"}
      - {kind: rod, from: [0.0, 3.3, 0.0], to: [0.0, 7.0, 0.0], radius: 1.2, collide: 0, color: "#6d675c"}
      - {kind: poly, points: [[-12.0, -17.5], [24.0, -17.5], [24.0, -16.5], [-12.0, -16.5]], y: [-6.0, 6.0], collide: 0, color: "#8b7d66"}
      - {kind: poly, points: [[-6.0, -16.5], [6.0, -16.5], [4.0, -13.5], [-4.0, -13.5]], y: [-3.0, 3.0], collide: 0, color: "#8b8170"}
  - id: fan
    shape: part
    pos: [0, 0, 0]
    mass: 0.3
    color: "#b8ad97"
    pieces:
      - {kind: disc, center: [0.0, 0.0], radius: 2.4, y: [2.6, 3.0], collide: 0, inner: 0.9, color: "#8f8a80"}
      - {kind: rod, from: [0.0, -4.0, 0.0], to: [0.0, 3.3, 0.0], radius: 0.9, collide: 0, color: "#6d675c"}
      - {kind: poly, points: [[0.17599, 2.3622], [0.41472, 3.4741], [0.062743, 3.5497], [-0.17599, 2.4378]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[0.39964, 3.4312], [0.93277, 4.4947], [0.61094, 4.656], [0.07782, 3.5926]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[0.90723, 4.4567], [1.7444, 5.4121], [1.4737, 5.6493], [0.63648, 4.694]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[1.71, 5.3817], [2.853, 6.1567], [2.6509, 6.4546], [1.508, 5.6797]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[2.8129, 6.1363], [4.2425, 6.6508], [4.1205, 6.9896], [2.691, 6.475]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[-2.1337, -1.0287], [-3.216, -1.3779], [-3.1055, -1.7205], [-2.0232, -1.3713]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[-3.1714, -1.3695], [-4.3589, -1.4395], [-4.3377, -1.7989], [-3.1502, -1.7289]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[-4.3132, -1.4427], [-5.5592, -1.1953], [-5.6293, -1.5484], [-4.3833, -1.7958]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[-5.5157, -1.2099], [-6.7583, -0.60759], [-6.9153, -0.93154], [-5.6728, -1.5339]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[-6.7206, -0.63209], [-7.881, 0.34866], [-8.1134, 0.07371], [-6.953, -0.90704]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[1.9577, -1.3335], [2.8013, -2.0962], [3.0427, -1.8292], [2.1992, -1.0665]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[2.7717, -2.0617], [3.4261, -3.0551], [3.7268, -2.8571], [3.0723, -1.8637]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[3.406, -3.014], [3.8148, -4.2167], [4.1556, -4.1009], [3.7469, -2.8982]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[3.8057, -4.1718], [3.9053, -5.5491], [4.2644, -5.5231], [4.1647, -4.1458]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
      - {kind: poly, points: [[3.9077, -5.5042], [3.6386, -6.9995], [3.9929, -7.0633], [4.262, -5.568]], y: [-2.5, 2.5], collide: 1, color: "#b8ad97"}
joints:
  - {id: j_fan, type: hinge, body: fan, axis: [0, 1, 0], damping: 0}   # the shaft (the only drive); no bearing friction, so its torque is the air's
fluid:
  plane: xz
  slab: [-1, 1]
  spacing: 0.5
  dt: 0.002
  iterations: 4
  rho: 1.204
  viscosity: 0.05
  friction: 0.02
  color: "#5f8aa6"
  streaks: 0.05                                       # each particle drawn along its own velocity: the flow
  domain: [-16, -16, 24, 16]
  reservoir: {box: [-3.6, -3.6, 3.6, 3.6], head: 3.6, gap: 1.3}   # the side openings: air drawn in at the centre, as much as the fan takes
  sinks: [[20.5, -15, 24, -9]]                          # out of the spout's mouth
  fill: [[-6.5, -6.5, 6.5, -3.6], [-6.5, 3.6, 6.5, 6.5], [-6.5, -3.6, -3.6, 3.6], [3.6, -3.6, 6.5, 3.6], [-9, -3, -6.5, 3], [6.5, -3, 9, 3], [-3, -9, 3, -6.5], [-3, 6.5, 3, 9], [0.5, -13.6, 20, -9.9]]   # the casing and spout full of air at rest
driver: {joint: j_fan, kind: velocity, rpm: -90, kv: 0.5, max_torque: 2}
checks:
  # the shaft keeps its speed against the air it drives (the window also sets the run: 9 s)
  - {type: turning, joint: j_fan, direction: -1, min_mean: 8.5, slow: 0.3, min_fraction: 0.95, settle_s: 1.0, window_s: 8}
  - {type: penetration, max: 0.003}
camera: {target: [4, 0, -7], position: [4, -300, -5], fov: 10}
display:
  output: j_fan
  labels: {j_fan: "Fan shaft (driver)"}
