# No. 474 (Brown 1868): "Æolipile or Hero's steam toy, described by Hero, of Alexandria, 130 years B.C., and now regarded as the first steam engine, the rotary form of which it maybe considered to represent. From the lower vessel, or boiler, rise two pipes conducting steam to globular vessel above, and forming pivots on which the said vessel is caused to revolve in the direction of arrows, by the escape of steam through a number of bent arms. This works on the same principle as Barker's mill, 438 in this table."
# Model (cm, gravity on, seen from in front and to one side, the boiler cut away in half section). The steam is lumped gas vessels
# (src/fluid/vessels.c): the fire's raising of steam is the input, a supply at 6 kPa gauge through 0.8 cm^2 into the boiler; the
# boiler's steam goes up the two pipes (0.5 cm^2 each) into the globe (14 cm, 0.4 kg), which turns on its hollow journals in the
# pipes' ends, and leaves by the 4 bent arms (0.05 cm^2 mouths). Each mouth is a jet (add-gas-jets): the globe feels its reaction,
# the flow times the steam's speed out of the mouth at the steam's own density, plus the mouth's own velocity, so it turns the
# reverse of the escape and no faster than the jets leave, against its journals' friction (0.0016 N m s). The steam in the
# boiler and the globe is drawn and shaded by its pressure (add-steam-drawing; the globe's is behind its metal). The water and
# the fire are not modelled (no heat). Generator: opencode-runs/water/gen474.py.
number: 474
slug: aeolipile
name: Æolipile or Hero's steam toy
brown: "Æolipile or Hero's steam toy, described by Hero, of Alexandria, 130 years B.C., and now regarded as the first steam engine, the rotary form of which it maybe considered to represent. From the lower vessel, or boiler, rise two pipes conducting steam to globular vessel above, and forming pivots on which the said vessel is caused to revolve in the direction of arrows, by the escape of steam through a number of bent arms. This works on the same principle as Barker's mill, 438 in this table."
units: cm
sim:
  timestep: 0.0005
  integrator: implicitfast
  iterations: 50
  duration_s: 12
  floor: false
bodies:
  - id: globe
    shape: part
    pos: [0, 0, 46]
    mass: 0.4
    color: "#b08d4a"
    pieces:
      - {kind: loft, a: [[-7, 0.2236, 46], [-7, 0.2066, 46.0856], [-7, 0.1581, 46.1581], [-7, 0.0856, 46.2066], [-7, 0, 46.2236], [-7, -0.0856, 46.2066], [-7, -0.1581, 46.1581], [-7, -0.2066, 46.0856], [-7, -0.2236, 46], [-7, -0.2066, 45.9144], [-7, -0.1581, 45.8419], [-7, -0.0856, 45.7934], [-7, -0, 45.7764], [-7, 0.0856, 45.7934], [-7, 0.1581, 45.8419], [-7, 0.2066, 45.9144]], b: [[-5.25, 4.6301, 46], [-5.25, 4.2776, 47.7718], [-5.25, 3.274, 49.274], [-5.25, 1.7718, 50.2776], [-5.25, 0, 50.6301], [-5.25, -1.7718, 50.2776], [-5.25, -3.274, 49.274], [-5.25, -4.2776, 47.7718], [-5.25, -4.6301, 46], [-5.25, -4.2776, 44.2282], [-5.25, -3.274, 42.726], [-5.25, -1.7718, 41.7224], [-5.25, -0, 41.3699], [-5.25, 1.7718, 41.7224], [-5.25, 3.274, 42.726], [-5.25, 4.2776, 44.2282]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[-5.25, 4.6301, 46], [-5.25, 4.2776, 47.7718], [-5.25, 3.274, 49.274], [-5.25, 1.7718, 50.2776], [-5.25, 0, 50.6301], [-5.25, -1.7718, 50.2776], [-5.25, -3.274, 49.274], [-5.25, -4.2776, 47.7718], [-5.25, -4.6301, 46], [-5.25, -4.2776, 44.2282], [-5.25, -3.274, 42.726], [-5.25, -1.7718, 41.7224], [-5.25, -0, 41.3699], [-5.25, 1.7718, 41.7224], [-5.25, 3.274, 42.726], [-5.25, 4.2776, 44.2282]], b: [[-3.5, 6.0622, 46], [-3.5, 5.6007, 48.3199], [-3.5, 4.2866, 50.2866], [-3.5, 2.3199, 51.6007], [-3.5, 0, 52.0622], [-3.5, -2.3199, 51.6007], [-3.5, -4.2866, 50.2866], [-3.5, -5.6007, 48.3199], [-3.5, -6.0622, 46], [-3.5, -5.6007, 43.6801], [-3.5, -4.2866, 41.7134], [-3.5, -2.3199, 40.3993], [-3.5, -0, 39.9378], [-3.5, 2.3199, 40.3993], [-3.5, 4.2866, 41.7134], [-3.5, 5.6007, 43.6801]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[-3.5, 6.0622, 46], [-3.5, 5.6007, 48.3199], [-3.5, 4.2866, 50.2866], [-3.5, 2.3199, 51.6007], [-3.5, 0, 52.0622], [-3.5, -2.3199, 51.6007], [-3.5, -4.2866, 50.2866], [-3.5, -5.6007, 48.3199], [-3.5, -6.0622, 46], [-3.5, -5.6007, 43.6801], [-3.5, -4.2866, 41.7134], [-3.5, -2.3199, 40.3993], [-3.5, -0, 39.9378], [-3.5, 2.3199, 40.3993], [-3.5, 4.2866, 41.7134], [-3.5, 5.6007, 43.6801]], b: [[-1.75, 6.7777, 46], [-1.75, 6.2618, 48.5937], [-1.75, 4.7926, 50.7926], [-1.75, 2.5937, 52.2618], [-1.75, 0, 52.7777], [-1.75, -2.5937, 52.2618], [-1.75, -4.7926, 50.7926], [-1.75, -6.2618, 48.5937], [-1.75, -6.7777, 46], [-1.75, -6.2618, 43.4063], [-1.75, -4.7926, 41.2074], [-1.75, -2.5937, 39.7382], [-1.75, -0, 39.2223], [-1.75, 2.5937, 39.7382], [-1.75, 4.7926, 41.2074], [-1.75, 6.2618, 43.4063]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[-1.75, 6.7777, 46], [-1.75, 6.2618, 48.5937], [-1.75, 4.7926, 50.7926], [-1.75, 2.5937, 52.2618], [-1.75, 0, 52.7777], [-1.75, -2.5937, 52.2618], [-1.75, -4.7926, 50.7926], [-1.75, -6.2618, 48.5937], [-1.75, -6.7777, 46], [-1.75, -6.2618, 43.4063], [-1.75, -4.7926, 41.2074], [-1.75, -2.5937, 39.7382], [-1.75, -0, 39.2223], [-1.75, 2.5937, 39.7382], [-1.75, 4.7926, 41.2074], [-1.75, 6.2618, 43.4063]], b: [[0, 7, 46], [0, 6.4672, 48.6788], [0, 4.9497, 50.9497], [0, 2.6788, 52.4672], [0, 0, 53], [0, -2.6788, 52.4672], [0, -4.9497, 50.9497], [0, -6.4672, 48.6788], [0, -7, 46], [0, -6.4672, 43.3212], [0, -4.9497, 41.0503], [0, -2.6788, 39.5328], [0, -0, 39], [0, 2.6788, 39.5328], [0, 4.9497, 41.0503], [0, 6.4672, 43.3212]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[0, 7, 46], [0, 6.4672, 48.6788], [0, 4.9497, 50.9497], [0, 2.6788, 52.4672], [0, 0, 53], [0, -2.6788, 52.4672], [0, -4.9497, 50.9497], [0, -6.4672, 48.6788], [0, -7, 46], [0, -6.4672, 43.3212], [0, -4.9497, 41.0503], [0, -2.6788, 39.5328], [0, -0, 39], [0, 2.6788, 39.5328], [0, 4.9497, 41.0503], [0, 6.4672, 43.3212]], b: [[1.75, 6.7777, 46], [1.75, 6.2618, 48.5937], [1.75, 4.7926, 50.7926], [1.75, 2.5937, 52.2618], [1.75, 0, 52.7777], [1.75, -2.5937, 52.2618], [1.75, -4.7926, 50.7926], [1.75, -6.2618, 48.5937], [1.75, -6.7777, 46], [1.75, -6.2618, 43.4063], [1.75, -4.7926, 41.2074], [1.75, -2.5937, 39.7382], [1.75, -0, 39.2223], [1.75, 2.5937, 39.7382], [1.75, 4.7926, 41.2074], [1.75, 6.2618, 43.4063]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[1.75, 6.7777, 46], [1.75, 6.2618, 48.5937], [1.75, 4.7926, 50.7926], [1.75, 2.5937, 52.2618], [1.75, 0, 52.7777], [1.75, -2.5937, 52.2618], [1.75, -4.7926, 50.7926], [1.75, -6.2618, 48.5937], [1.75, -6.7777, 46], [1.75, -6.2618, 43.4063], [1.75, -4.7926, 41.2074], [1.75, -2.5937, 39.7382], [1.75, -0, 39.2223], [1.75, 2.5937, 39.7382], [1.75, 4.7926, 41.2074], [1.75, 6.2618, 43.4063]], b: [[3.5, 6.0622, 46], [3.5, 5.6007, 48.3199], [3.5, 4.2866, 50.2866], [3.5, 2.3199, 51.6007], [3.5, 0, 52.0622], [3.5, -2.3199, 51.6007], [3.5, -4.2866, 50.2866], [3.5, -5.6007, 48.3199], [3.5, -6.0622, 46], [3.5, -5.6007, 43.6801], [3.5, -4.2866, 41.7134], [3.5, -2.3199, 40.3993], [3.5, -0, 39.9378], [3.5, 2.3199, 40.3993], [3.5, 4.2866, 41.7134], [3.5, 5.6007, 43.6801]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[3.5, 6.0622, 46], [3.5, 5.6007, 48.3199], [3.5, 4.2866, 50.2866], [3.5, 2.3199, 51.6007], [3.5, 0, 52.0622], [3.5, -2.3199, 51.6007], [3.5, -4.2866, 50.2866], [3.5, -5.6007, 48.3199], [3.5, -6.0622, 46], [3.5, -5.6007, 43.6801], [3.5, -4.2866, 41.7134], [3.5, -2.3199, 40.3993], [3.5, -0, 39.9378], [3.5, 2.3199, 40.3993], [3.5, 4.2866, 41.7134], [3.5, 5.6007, 43.6801]], b: [[5.25, 4.6301, 46], [5.25, 4.2776, 47.7718], [5.25, 3.274, 49.274], [5.25, 1.7718, 50.2776], [5.25, 0, 50.6301], [5.25, -1.7718, 50.2776], [5.25, -3.274, 49.274], [5.25, -4.2776, 47.7718], [5.25, -4.6301, 46], [5.25, -4.2776, 44.2282], [5.25, -3.274, 42.726], [5.25, -1.7718, 41.7224], [5.25, -0, 41.3699], [5.25, 1.7718, 41.7224], [5.25, 3.274, 42.726], [5.25, 4.2776, 44.2282]], collide: 0, color: "#b08d4a"}
      - {kind: loft, a: [[5.25, 4.6301, 46], [5.25, 4.2776, 47.7718], [5.25, 3.274, 49.274], [5.25, 1.7718, 50.2776], [5.25, 0, 50.6301], [5.25, -1.7718, 50.2776], [5.25, -3.274, 49.274], [5.25, -4.2776, 47.7718], [5.25, -4.6301, 46], [5.25, -4.2776, 44.2282], [5.25, -3.274, 42.726], [5.25, -1.7718, 41.7224], [5.25, -0, 41.3699], [5.25, 1.7718, 41.7224], [5.25, 3.274, 42.726], [5.25, 4.2776, 44.2282]], b: [[7, 0.2236, 46], [7, 0.2066, 46.0856], [7, 0.1581, 46.1581], [7, 0.0856, 46.2066], [7, 0, 46.2236], [7, -0.0856, 46.2066], [7, -0.1581, 46.1581], [7, -0.2066, 46.0856], [7, -0.2236, 46], [7, -0.2066, 45.9144], [7, -0.1581, 45.8419], [7, -0.0856, 45.7934], [7, -0, 45.7764], [7, 0.0856, 45.7934], [7, 0.1581, 45.8419], [7, 0.2066, 45.9144]], collide: 0, color: "#b08d4a"}
      - {kind: rod, from: [-6.5, 0, 46], to: [-9.2, 0, 46], radius: 0.45, collide: 0, color: "#b08d4a"}
      - {kind: rod, from: [6.5, 0, 46], to: [9.2, 0, 46], radius: 0.45, collide: 0, color: "#b08d4a"}
      - {kind: rod, from: [0, 4.6669, 50.6669], to: [0, 7.7782, 53.7782], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, 7.7782, 53.7782], to: [0, 9.6167, 51.9397], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, -4.6669, 50.6669], to: [0, -7.7782, 53.7782], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, -7.7782, 53.7782], to: [0, -5.9397, 55.6167], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, -4.6669, 41.3331], to: [0, -7.7782, 38.2218], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, -7.7782, 38.2218], to: [0, -9.6167, 40.0603], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, 4.6669, 41.3331], to: [0, 7.7782, 38.2218], radius: 0.55, capsule: true, collide: 0}
      - {kind: rod, from: [0, 7.7782, 38.2218], to: [0, 5.9397, 36.3833], radius: 0.55, capsule: true, collide: 0}
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#d6cdb8"
    pieces:
      - {kind: loft, a: [[-17, -13, 0], [17, -13, 0], [17, 13, 0], [-17, 13, 0]], b: [[-17, -13, -1.5], [17, -13, -1.5], [17, 13, -1.5], [-17, 13, -1.5]], collide: 0, color: "#8b7d66"}
      - {kind: rod, from: [-8.5, -6, 0], to: [-7.5, -5, 8], radius: 0.6, collide: 0, color: "#6d675c"}
      - {kind: rod, from: [-8.5, 6, 0], to: [-7.5, 5, 8], radius: 0.6, collide: 0, color: "#6d675c"}
      - {kind: rod, from: [8.5, -6, 0], to: [7.5, -5, 8], radius: 0.6, collide: 0, color: "#6d675c"}
      - {kind: rod, from: [8.5, 6, 0], to: [7.5, 5, 8], radius: 0.6, collide: 0, color: "#6d675c"}
      - {kind: loft, a: [[11, 0, 24], [10.6252, 2.847, 24], [11.2047, 3.0023, 24], [11.6, 0, 24]], b: [[11, 0, 8], [10.6252, 2.847, 8], [11.2047, 3.0023, 8], [11.6, 0, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[10.6252, 2.847, 24], [9.5263, 5.5, 24], [10.0459, 5.8, 24], [11.2047, 3.0023, 24]], b: [[10.6252, 2.847, 8], [9.5263, 5.5, 8], [10.0459, 5.8, 8], [11.2047, 3.0023, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[9.5263, 5.5, 24], [7.7782, 7.7782, 24], [8.2024, 8.2024, 24], [10.0459, 5.8, 24]], b: [[9.5263, 5.5, 8], [7.7782, 7.7782, 8], [8.2024, 8.2024, 8], [10.0459, 5.8, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[7.7782, 7.7782, 24], [5.5, 9.5263, 24], [5.8, 10.0459, 24], [8.2024, 8.2024, 24]], b: [[7.7782, 7.7782, 8], [5.5, 9.5263, 8], [5.8, 10.0459, 8], [8.2024, 8.2024, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[5.5, 9.5263, 24], [2.847, 10.6252, 24], [3.0023, 11.2047, 24], [5.8, 10.0459, 24]], b: [[5.5, 9.5263, 8], [2.847, 10.6252, 8], [3.0023, 11.2047, 8], [5.8, 10.0459, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[2.847, 10.6252, 24], [0, 11, 24], [0, 11.6, 24], [3.0023, 11.2047, 24]], b: [[2.847, 10.6252, 8], [0, 11, 8], [0, 11.6, 8], [3.0023, 11.2047, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0, 11, 24], [-2.847, 10.6252, 24], [-3.0023, 11.2047, 24], [0, 11.6, 24]], b: [[0, 11, 8], [-2.847, 10.6252, 8], [-3.0023, 11.2047, 8], [0, 11.6, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-2.847, 10.6252, 24], [-5.5, 9.5263, 24], [-5.8, 10.0459, 24], [-3.0023, 11.2047, 24]], b: [[-2.847, 10.6252, 8], [-5.5, 9.5263, 8], [-5.8, 10.0459, 8], [-3.0023, 11.2047, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-5.5, 9.5263, 24], [-7.7782, 7.7782, 24], [-8.2024, 8.2024, 24], [-5.8, 10.0459, 24]], b: [[-5.5, 9.5263, 8], [-7.7782, 7.7782, 8], [-8.2024, 8.2024, 8], [-5.8, 10.0459, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-7.7782, 7.7782, 24], [-9.5263, 5.5, 24], [-10.0459, 5.8, 24], [-8.2024, 8.2024, 24]], b: [[-7.7782, 7.7782, 8], [-9.5263, 5.5, 8], [-10.0459, 5.8, 8], [-8.2024, 8.2024, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-9.5263, 5.5, 24], [-10.6252, 2.847, 24], [-11.2047, 3.0023, 24], [-10.0459, 5.8, 24]], b: [[-9.5263, 5.5, 8], [-10.6252, 2.847, 8], [-11.2047, 3.0023, 8], [-10.0459, 5.8, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-10.6252, 2.847, 24], [-11, 0, 24], [-11.6, 0, 24], [-11.2047, 3.0023, 24]], b: [[-10.6252, 2.847, 8], [-11, 0, 8], [-11.6, 0, 8], [-11.2047, 3.0023, 8]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-11.6, 0, 8], [11.6, 0, 8], [11.6, 11.6, 8], [-11.6, 11.6, 8]], b: [[-11.6, 0, 7.2], [11.6, 0, 7.2], [11.6, 11.6, 7.2], [-11.6, 11.6, 7.2]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.01, 0, 24.8], [0.0097, 0.0026, 24.8], [11.2047, 3.0023, 24.8], [11.6, 0, 24.8]], b: [[0.01, 0, 24], [0.0097, 0.0026, 24], [11.2047, 3.0023, 24], [11.6, 0, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.0097, 0.0026, 24.8], [0.0087, 0.005, 24.8], [10.0459, 5.8, 24.8], [11.2047, 3.0023, 24.8]], b: [[0.0097, 0.0026, 24], [0.0087, 0.005, 24], [10.0459, 5.8, 24], [11.2047, 3.0023, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.0087, 0.005, 24.8], [0.0071, 0.0071, 24.8], [8.2024, 8.2024, 24.8], [10.0459, 5.8, 24.8]], b: [[0.0087, 0.005, 24], [0.0071, 0.0071, 24], [8.2024, 8.2024, 24], [10.0459, 5.8, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.0071, 0.0071, 24.8], [0.005, 0.0087, 24.8], [5.8, 10.0459, 24.8], [8.2024, 8.2024, 24.8]], b: [[0.0071, 0.0071, 24], [0.005, 0.0087, 24], [5.8, 10.0459, 24], [8.2024, 8.2024, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.005, 0.0087, 24.8], [0.0026, 0.0097, 24.8], [3.0023, 11.2047, 24.8], [5.8, 10.0459, 24.8]], b: [[0.005, 0.0087, 24], [0.0026, 0.0097, 24], [3.0023, 11.2047, 24], [5.8, 10.0459, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0.0026, 0.0097, 24.8], [0, 0.01, 24.8], [0, 11.6, 24.8], [3.0023, 11.2047, 24.8]], b: [[0.0026, 0.0097, 24], [0, 0.01, 24], [0, 11.6, 24], [3.0023, 11.2047, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[0, 0.01, 24.8], [-0.0026, 0.0097, 24.8], [-3.0023, 11.2047, 24.8], [0, 11.6, 24.8]], b: [[0, 0.01, 24], [-0.0026, 0.0097, 24], [-3.0023, 11.2047, 24], [0, 11.6, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-0.0026, 0.0097, 24.8], [-0.005, 0.0087, 24.8], [-5.8, 10.0459, 24.8], [-3.0023, 11.2047, 24.8]], b: [[-0.0026, 0.0097, 24], [-0.005, 0.0087, 24], [-5.8, 10.0459, 24], [-3.0023, 11.2047, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-0.005, 0.0087, 24.8], [-0.0071, 0.0071, 24.8], [-8.2024, 8.2024, 24.8], [-5.8, 10.0459, 24.8]], b: [[-0.005, 0.0087, 24], [-0.0071, 0.0071, 24], [-8.2024, 8.2024, 24], [-5.8, 10.0459, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-0.0071, 0.0071, 24.8], [-0.0087, 0.005, 24.8], [-10.0459, 5.8, 24.8], [-8.2024, 8.2024, 24.8]], b: [[-0.0071, 0.0071, 24], [-0.0087, 0.005, 24], [-10.0459, 5.8, 24], [-8.2024, 8.2024, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-0.0087, 0.005, 24.8], [-0.0097, 0.0026, 24.8], [-11.2047, 3.0023, 24.8], [-10.0459, 5.8, 24.8]], b: [[-0.0087, 0.005, 24], [-0.0097, 0.0026, 24], [-11.2047, 3.0023, 24], [-10.0459, 5.8, 24]], collide: 0, color: "#a8643a"}
      - {kind: loft, a: [[-0.0097, 0.0026, 24.8], [-0.01, 0, 24.8], [-11.6, 0, 24.8], [-11.2047, 3.0023, 24.8]], b: [[-0.0097, 0.0026, 24], [-0.01, 0, 24], [-11.6, 0, 24], [-11.2047, 3.0023, 24]], collide: 0, color: "#a8643a"}
      - {kind: rod, from: [-12, 0, 24.8], to: [-12, 0, 46], radius: 0.7, collide: 0, color: "#a8643a"}
      - {kind: rod, from: [-12, 0, 46], to: [-8.6, 0, 46], radius: 0.7, collide: 0, color: "#a8643a"}
      - {kind: rod, from: [-8.6, 0, 46], to: [-9.4, 0, 46], radius: 1, collide: 0, color: "#b08d4a"}
      - {kind: rod, from: [12, 0, 24.8], to: [12, 0, 46], radius: 0.7, collide: 0, color: "#a8643a"}
      - {kind: rod, from: [12, 0, 46], to: [8.6, 0, 46], radius: 0.7, collide: 0, color: "#a8643a"}
      - {kind: rod, from: [8.6, 0, 46], to: [9.4, 0, 46], radius: 1, collide: 0, color: "#b08d4a"}
joints:
  - {id: j_g, type: hinge, body: globe, axis: [1, 0, 0], damping: 0.0016}   # + : the arms' tips go the reverse of their jets
vessels:
  substeps: 8
  nodes:
    - {id: fire, kind: source, p: 6000, gas: true}   # the steam the fire raises (the input)
    - {id: air, kind: source, p: 0, gas: true}
    - {id: boiler, kind: gas, volume: 6082.12, p: 0, RT: 172000,
       draw: {sections: [[[-10.9, 8.1], [10.9, 8.1], [10.9, 23.9], [-10.9, 23.9]]], y: [0.1, 8.8], pref: 12000}}   # the boiler's steam
    - {id: globe, kind: gas, volume: 1436.76, p: 0, RT: 172000,
       draw: {sections: [[[6.5874, 46.0], [5.7049, 49.2937], [3.2937, 51.7049], [0.0, 52.5874], [-3.2937, 51.7049], [-5.7049, 49.2937], [-6.5874, 46.0], [-5.7049, 42.7063], [-3.2937, 40.2951], [-0.0, 39.4126], [3.2937, 40.2951], [5.7049, 42.7063]]], y: [-1.5, 1.5], pref: 12000}}   # the globe's steam (behind its metal)
  links:
    - {id: firing, from: fire, to: boiler, area: 0.8, cd: 0.62}
    - {id: pipe_l, from: boiler, to: globe, area: 0.5, cd: 0.62}
    - {id: pipe_r, from: boiler, to: globe, area: 0.5, cd: 0.62}
    - {id: jet0, from: globe, to: air, area: 0.05, cd: 0.62, jet: {body: globe, at: [0, 9.6167, 51.9397], dir: [0, 0.7071, -0.7071]}}
    - {id: jet1, from: globe, to: air, area: 0.05, cd: 0.62, jet: {body: globe, at: [0, -5.9397, 55.6167], dir: [0, 0.7071, 0.7071]}}
    - {id: jet2, from: globe, to: air, area: 0.05, cd: 0.62, jet: {body: globe, at: [0, -9.6167, 40.0603], dir: [0, -0.7071, 0.7071]}}
    - {id: jet3, from: globe, to: air, area: 0.05, cd: 0.62, jet: {body: globe, at: [0, 5.9397, 36.3833], dir: [0, -0.7071, -0.7071]}}
driver: {joint: j_g, kind: torque, torque: 0, max_torque: 0.001}   # no hand on the globe: the steam is the only input
checks:
  - {type: monotonic, joint: j_g, direction: 1, max_back: 0.05, settle_s: 0.5, window_s: 11}
  - {type: turning, joint: j_g, direction: 1, min_mean: 3, min_fraction: 0.9, settle_s: 3.0, window_s: 8}
  - {type: penetration, max: 0.003}
camera: {target: [0, 0, 14], position: [105, -105, 60], fov: 38}
display:
  output: j_g
  labels: {j_g: "Globe"}
