# No. 68 (Brown 1868): intermittent rotary motion by a single tooth, the driver serving as its own lock.
#
# As drawn (cm; the drawing plane is x-z, depth y): B at the left (the one motor-driven shaft) turns
# clockwise; its single tooth A (a pin of radius 0.3 on its circumference) enters one of the 10 notches of C
# at the right and turns C the distance of one notch each turn of B. Between its notches C's circumference
# is cut in hollows fitting B's circumference, which holds C still while the tooth is away: no stop.
# B's circumference is relieved either side of the tooth where C's corners swing through, and the lips of
# C's notches are eased where the tooth enters; both reliefs are generated from the ideal motion.
# Generator: opencode-runs/batch8/gen068.py.
number: 68
slug: single-tooth-locking-wheel
name: Intermittent motion by a single tooth, the driver locking
brown: "The single tooth, A, of the driving-wheel, B, acts in the notches of the wheel, C, and turns the latter the distance of one notch in every revolution of C. No stop is necessary in this movement, as the driving-wheel, B, serves as a lock by fitting into the hollows cut in the circumference of the wheel, C, between its notches."
units: cm
sim:
  timestep: 0.0002
  integrator: implicitfast
  iterations: 100
  solver: PGS
  multiccd: false
  duration_s: 24
  floor: false
bodies:
  - id: wheel_b
    shape: part
    pos: [-6.0, 0, 0]
    friction: 0.1
    color: "#e8dec6"
    pieces:
      - {kind: disc, center: [-6.0, 0], radius: 6.0, y: [-0.5, 0.5]}   # B, inside its circumference
      # its circumference, relieved about the tooth
      - {kind: poly, points: [[-9.5099, -4.7424], [-10.1163, -5.5617], [-10.0754, -5.6288], [-9.9433, -5.7221], [-9.8091, -5.8123], [-9.6729, -5.8994], [-9.5953, -5.9119], [-9.0657, -5.041]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-9.1706, -4.9757], [-9.7183, -5.8353], [-9.6729, -5.8994], [-9.5346, -5.9833], [-9.3944, -6.0639], [-9.2524, -6.1412], [-9.1741, -6.1483], [-8.7065, -5.2426]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-8.8157, -5.1847], [-9.3022, -6.0805], [-9.2524, -6.1412], [-9.1086, -6.2152], [-8.9631, -6.2859], [-8.8161, -6.3531], [-8.7375, -6.3547], [-8.3343, -5.4186]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-8.4472, -5.3685], [-8.87, -6.296], [-8.8161, -6.3531], [-8.6675, -6.4169], [-8.5174, -6.4773], [-8.366, -6.5341], [-8.2876, -6.5302], [-7.9506, -5.5682]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-8.0668, -5.5262], [-8.4238, -6.4809], [-8.366, -6.5341], [-8.2134, -6.5874], [-8.0595, -6.6371], [-7.9045, -6.6832], [-7.8265, -6.6739], [-7.5574, -5.6907]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-7.6762, -5.6569], [-7.9658, -6.6342], [-7.9045, -6.6832], [-7.7485, -6.7257], [-7.5915, -6.7646], [-7.4336, -6.7998], [-7.3565, -6.785], [-7.1567, -5.7855]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-7.2776, -5.76], [-7.4983, -6.7551], [-7.4336, -6.7998], [-7.275, -6.8313], [-7.1157, -6.8591], [-6.9558, -6.8832], [-6.8799, -6.8631], [-6.7503, -5.8521]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-6.8727, -5.8351], [-7.0234, -6.8432], [-6.9558, -6.8832], [-6.7954, -6.9036], [-6.6345, -6.9203], [-6.4733, -6.9332], [-6.399, -6.9078], [-6.3402, -5.8902]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-6.4635, -5.8818], [-6.5436, -6.8979], [-6.4733, -6.9332], [-6.3119, -6.9423], [-6.1503, -6.9477], [-5.9886, -6.9493], [-5.9161, -6.9188], [-5.9285, -5.8996]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-6.0521, -5.8998], [-6.0611, -6.919], [-5.9886, -6.9493], [-5.8269, -6.9471], [-5.6653, -6.9412], [-5.5038, -6.9316], [-5.4337, -6.8961], [-5.5171, -5.8802]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-5.6404, -5.889], [-5.5783, -6.9064], [-5.5038, -6.9316], [-5.3427, -6.9181], [-5.1819, -6.901], [-5.0215, -6.8801], [-4.9541, -6.8398], [-5.1081, -5.8322]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-5.2305, -5.8496], [-5.0975, -6.8602], [-5.0215, -6.8801], [-4.8617, -6.8554], [-4.7025, -6.8271], [-4.544, -6.795], [-4.4795, -6.7502], [-4.7035, -5.7558]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-4.8243, -5.7817], [-4.6212, -6.7805], [-4.544, -6.795], [-4.3862, -6.7593], [-4.2294, -6.7199], [-4.0735, -6.6769], [-4.0123, -6.6277], [-4.3051, -5.6513]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-4.4239, -5.6856], [-4.1516, -6.6678], [-4.0735, -6.6769], [-3.9187, -6.6303], [-3.765, -6.5801], [-3.6125, -6.5263], [-3.5548, -6.4729], [-3.915, -5.5193]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-4.0311, -5.5618], [-3.6909, -6.5226], [-3.6125, -6.5263], [-3.4612, -6.469], [-3.3114, -6.4081], [-3.163, -6.3438], [-3.1093, -6.2865], [-3.5351, -5.3604]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-3.6479, -5.4109], [-3.2416, -6.3457], [-3.163, -6.3438], [-3.0162, -6.2761], [-2.8709, -6.205], [-2.7274, -6.1305], [-2.6778, -6.0696], [-3.1672, -5.1754]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-3.2762, -5.2336], [-2.8056, -6.1378], [-2.7274, -6.1305], [-2.5856, -6.0527], [-2.4457, -5.9716], [-2.3077, -5.8873], [-2.2625, -5.823], [-2.8131, -4.9652]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.9178, -5.0309], [-2.3853, -5.9], [-2.3077, -5.8873], [-2.1717, -5.7998], [-2.0378, -5.7091], [-1.9061, -5.6154], [-1.8654, -5.5481], [-2.4745, -4.7308]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.5743, -4.8036], [-1.9825, -5.6335], [-1.9061, -5.6154], [-1.7765, -5.5186], [-1.6492, -5.4188], [-1.5243, -5.3161], [-1.4885, -5.2462], [-2.1531, -4.4734]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.2476, -4.553], [-1.5993, -5.3395], [-1.5243, -5.3161], [-1.4018, -5.2105], [-1.2818, -5.1021], [-1.1644, -4.9909], [-1.1335, -4.9187], [-1.8504, -4.1941]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.9391, -4.2801], [-1.2376, -5.0195], [-1.1644, -4.9909], [-1.0496, -4.8771], [-0.9374, -4.7606], [-0.828, -4.6415], [-0.8022, -4.5673], [-1.5679, -3.8944]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.6505, -3.9864], [-0.899, -4.6751], [-0.828, -4.6415], [-0.7214, -4.5199], [-0.6177, -4.3958], [-0.5168, -4.2694], [-0.4963, -4.1936], [-1.3071, -3.5758]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.383, -3.6733], [-0.5853, -4.3079], [-0.5168, -4.2694], [-0.419, -4.1406], [-0.3241, -4.0097], [-0.2324, -3.8765], [-0.2172, -3.7994], [-1.0691, -3.2397]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.138, -3.3423], [-0.298, -3.9197], [-0.2324, -3.8765], [-0.1437, -3.7412], [-0.0583, -3.604], [0.024, -3.4647], [0.0338, -3.3868], [-0.8551, -2.8879]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.9167, -2.995], [-0.0385, -3.5124], [0.024, -3.4647], [0.103, -3.3236], [0.1787, -3.1807], [0.251, -3.0361], [0.2553, -2.9576], [-0.6662, -2.5219]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.7201, -2.6331], [0.192, -3.088], [0.251, -3.0361], [0.3199, -2.8898], [0.3855, -2.742], [0.4476, -2.5926], [0.4464, -2.5141], [-0.5032, -2.1437]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.5493, -2.2584], [0.3923, -2.6485], [0.4476, -2.5926], [0.5061, -2.4419], [0.5612, -2.2899], [0.6127, -2.1366], [0.6061, -2.0583], [-0.3671, -1.7551]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.4051, -1.8726], [0.5615, -2.1962], [0.6127, -2.1366], [0.6606, -1.9821], [0.7049, -1.8266], [0.7456, -1.6701], [0.7336, -1.5924], [-0.2584, -1.3579]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.2881, -1.4778], [0.6987, -1.7331], [0.7456, -1.6701], [0.7827, -1.5127], [0.816, -1.3544], [0.8457, -1.1955], [0.8282, -1.1189], [-0.1776, -0.954]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.1989, -1.0758], [0.8033, -1.2616], [0.8457, -1.1955], [0.8717, -1.0358], [0.8939, -0.8757], [0.9124, -0.715], [0.8896, -0.6398], [-0.1253, -0.5456]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.138, -0.6685], [0.8747, -0.784], [0.9124, -0.715], [0.9272, -0.554], [0.9382, -0.3926], [0.9455, -0.2311], [0.9175, -0.1577], [-0.1015, -0.1344]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.1056, -0.2579], [0.9127, -0.3025], [0.9455, -0.2311], [0.9489, -0.0694], [0.9487, 0.0923], [0.9447, 0.254], [0.9116, 0.3253], [-0.1065, 0.2773]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.102, 0.1539], [0.9169, 0.1804], [0.9447, 0.254], [0.9369, 0.4155], [0.9253, 0.5768], [0.91, 0.7378], [0.8721, 0.8066], [-0.1402, 0.6878]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.1271, 0.5649], [0.8875, 0.6625], [0.91, 0.7378], [0.891, 0.8984], [0.8682, 1.0585], [0.8417, 1.218], [0.7991, 1.284], [-0.2025, 1.0949]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.1808, 0.9732], [0.8245, 1.1413], [0.8417, 1.218], [0.8115, 1.3769], [0.7776, 1.535], [0.7401, 1.6923], [0.693, 1.7552], [-0.293, 1.4966]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.2629, 1.3768], [0.7283, 1.6146], [0.7401, 1.6923], [0.6989, 1.8487], [0.6541, 2.004], [0.6056, 2.1583], [0.5542, 2.2178], [-0.4113, 1.8911]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.3729, 1.7736], [0.5993, 2.08], [0.6056, 2.1583], [0.5536, 2.3115], [0.4981, 2.4633], [0.439, 2.6139], [0.3836, 2.6696], [-0.5568, 2.2763]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.5103, 2.1618], [0.4381, 2.5353], [0.439, 2.6139], [0.3764, 2.763], [0.3104, 2.9106], [0.241, 3.0567], [0.1818, 3.1084], [-0.7288, 2.6505]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.6745, 2.5395], [0.2455, 2.9782], [0.241, 3.0567], [0.1681, 3.201], [0.092, 3.3437], [-0.0307, 3.4595], [-0.0931, 3.5065], [-0.9266, 3.0117]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-0.8646, 2.9048], [-0.0175, 3.384], [-0.0307, 3.4595], [-0.1128, 3.5974], [-0.271, 3.6866], [-0.3528, 3.8226], [-0.4063, 3.8724], [-1.149, 3.3583]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.0798, 3.2559], [-0.3381, 3.7467], [-0.3528, 3.8226], [-0.427, 3.9646], [-0.5128, 4.0992], [-0.5939, 4.2381], [-0.662, 4.2757], [-1.3951, 3.6885]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.3189, 3.5912], [-0.5815, 4.1569], [-0.5939, 4.2381], [-0.6862, 4.3691], [-0.7944, 4.4872], [-0.9101, 4.5982], [-0.9909, 4.6214], [-1.6636, 4.0007]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.5808, 3.909], [-0.8772, 4.5313], [-0.9101, 4.5982], [-1.0403, 4.6947], [-1.1722, 4.7877], [-1.3195, 4.8627], [-1.405, 4.8751], [-1.9532, 4.2935]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-1.8642, 4.2078], [-1.2731, 4.8092], [-1.3195, 4.8627], [-1.4655, 4.936], [-1.5618, 5.0627], [-1.7728, 5.0547], [-1.845, 5.0754], [-2.2626, 4.5653]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.1678, 4.486], [-1.6655, 5.074], [-1.7728, 5.0547], [-1.8916, 5.1517], [-2.0125, 5.2459], [-2.1357, 5.3372], [-2.2091, 5.3529], [-2.5902, 4.8149]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.4901, 4.7424], [-2.0979, 5.2723], [-2.1357, 5.3372], [-2.2609, 5.4257], [-2.3882, 5.5112], [-2.5174, 5.5938], [-2.5325, 5.7017], [-2.9343, 5.041]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-2.8294, 4.9757], [-2.4751, 5.5317], [-2.5174, 5.5938], [-2.5756, 5.7967], [-2.7261, 5.8486], [-2.8412, 5.9645], [-2.9066, 5.9919], [-3.2935, 5.2426]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-3.1843, 5.1847], [-2.8028, 5.8871], [-2.8412, 5.9645], [-2.9585, 6.0811], [-3.088, 6.1773], [-3.2204, 6.2709], [-3.2941, 6.2813], [-3.6657, 5.4186]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-3.5528, 5.3685], [-3.1731, 6.2014], [-3.2204, 6.2709], [-3.3619, 6.3462], [-3.5079, 6.412], [-3.6612, 6.4589], [-3.7422, 6.4453], [-4.0494, 5.5682]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-3.9332, 5.5262], [-3.6042, 6.4059], [-3.6612, 6.4589], [-3.8185, 6.4926], [-3.9731, 6.5321], [-4.1311, 6.5582], [-4.2078, 6.5485], [-4.4426, 5.6907]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-4.3238, 5.6569], [-4.0671, 6.5229], [-4.1311, 6.5582], [-4.2859, 6.5935], [-4.42, 6.7159], [-4.5767, 6.7509], [-4.6525, 6.7399], [-4.8433, 5.7855]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-4.7224, 5.76], [-4.5126, 6.7063], [-4.5767, 6.7509], [-4.725, 6.8313], [-4.8843, 6.8591], [-5.0442, 6.8832], [-5.1201, 6.8631], [-5.2497, 5.8521]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-5.1273, 5.8351], [-4.9766, 6.8432], [-5.0442, 6.8832], [-5.2046, 6.9036], [-5.3655, 6.9203], [-5.5267, 6.9332], [-5.601, 6.9078], [-5.6598, 5.8902]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-5.5365, 5.8818], [-5.4564, 6.8979], [-5.5267, 6.9332], [-5.6881, 6.9423], [-5.8497, 6.9477], [-6.0114, 6.9493], [-6.0839, 6.9188], [-6.0715, 5.8996]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-5.9479, 5.8998], [-5.9389, 6.919], [-6.0114, 6.9493], [-6.1731, 6.9471], [-6.3347, 6.9412], [-6.4962, 6.9316], [-6.5663, 6.8961], [-6.4829, 5.8802]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-6.3596, 5.889], [-6.4217, 6.9064], [-6.4962, 6.9316], [-6.6573, 6.9181], [-6.8181, 6.901], [-6.9785, 6.8801], [-7.0459, 6.8398], [-6.8919, 5.8322]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-6.7695, 5.8496], [-6.9025, 6.8602], [-6.9785, 6.8801], [-7.1383, 6.8554], [-7.2975, 6.8271], [-7.456, 6.795], [-7.5205, 6.7502], [-7.2965, 5.7558]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-7.1757, 5.7817], [-7.3788, 6.7805], [-7.456, 6.795], [-7.6138, 6.7593], [-7.7706, 6.7199], [-7.9265, 6.6769], [-7.9877, 6.6277], [-7.6949, 5.6513]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-7.5761, 5.6856], [-7.8484, 6.6678], [-7.9265, 6.6769], [-8.0813, 6.6303], [-8.235, 6.5801], [-8.3875, 6.5263], [-8.4452, 6.4729], [-8.085, 5.5193]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-7.9689, 5.5618], [-8.3091, 6.5226], [-8.3875, 6.5263], [-8.5388, 6.469], [-8.6886, 6.4081], [-8.837, 6.3438], [-8.8907, 6.2865], [-8.4649, 5.3604]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-8.3521, 5.4109], [-8.7584, 6.3457], [-8.837, 6.3438], [-8.9838, 6.2761], [-9.1291, 6.205], [-9.2726, 6.1305], [-9.3222, 6.0696], [-8.8328, 5.1754]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-8.7238, 5.2336], [-9.1944, 6.1378], [-9.2726, 6.1305], [-9.4144, 6.0527], [-9.5543, 5.9716], [-9.6923, 5.8873], [-9.7375, 5.823], [-9.1869, 4.9652]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-9.0822, 5.0309], [-9.6147, 5.9], [-9.6923, 5.8873], [-9.8283, 5.7998], [-9.9622, 5.7091], [-10.0939, 5.6154], [-10.1346, 5.5481], [-9.5255, 4.7308]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-9.4257, 4.8036], [-10.0175, 5.6335], [-10.0939, 5.6154], [-10.2235, 5.5186], [-10.3508, 5.4188], [-10.4757, 5.3161], [-10.5115, 5.2462], [-9.8469, 4.4734]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-9.7524, 4.553], [-10.4007, 5.3395], [-10.4757, 5.3161], [-10.5982, 5.2105], [-10.7182, 5.1021], [-10.8356, 4.9909], [-10.8665, 4.9187], [-10.1496, 4.1941]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.0609, 4.2801], [-10.7624, 5.0195], [-10.8356, 4.9909], [-10.9504, 4.8771], [-11.0626, 4.7606], [-11.172, 4.6415], [-11.1978, 4.5673], [-10.4321, 3.8944]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.3495, 3.9864], [-11.101, 4.6751], [-11.172, 4.6415], [-11.2786, 4.5199], [-11.3823, 4.3958], [-11.4832, 4.2694], [-11.5037, 4.1936], [-10.6929, 3.5758]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.617, 3.6733], [-11.4147, 4.3079], [-11.4832, 4.2694], [-11.581, 4.1406], [-11.6759, 4.0097], [-11.7676, 3.8765], [-11.7828, 3.7994], [-10.9309, 3.2397]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.862, 3.3423], [-11.702, 3.9197], [-11.7676, 3.8765], [-11.8563, 3.7412], [-11.9417, 3.604], [-12.024, 3.4647], [-12.0338, 3.3868], [-11.1449, 2.8879]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.0833, 2.995], [-11.9615, 3.5124], [-12.024, 3.4647], [-12.103, 3.3236], [-12.1787, 3.1807], [-12.251, 3.0361], [-12.2553, 2.9576], [-11.3338, 2.5219]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.2799, 2.6331], [-12.192, 3.088], [-12.251, 3.0361], [-12.3199, 2.8898], [-12.3855, 2.742], [-12.4476, 2.5926], [-12.4464, 2.5141], [-11.4968, 2.1437]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.4507, 2.2584], [-12.3923, 2.6485], [-12.4476, 2.5926], [-12.5061, 2.4419], [-12.5612, 2.2899], [-12.6127, 2.1366], [-12.6061, 2.0583], [-11.6329, 1.7551]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.5949, 1.8726], [-12.5615, 2.1962], [-12.6127, 2.1366], [-12.6606, 1.9821], [-12.7049, 1.8266], [-12.7456, 1.6701], [-12.7336, 1.5924], [-11.7416, 1.3579]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.7119, 1.4778], [-12.6987, 1.7331], [-12.7456, 1.6701], [-12.7827, 1.5127], [-12.816, 1.3544], [-12.8457, 1.1955], [-12.8282, 1.1189], [-11.8224, 0.954]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.8011, 1.0758], [-12.8033, 1.2616], [-12.8457, 1.1955], [-12.8717, 1.0358], [-12.8939, 0.8757], [-12.9124, 0.715], [-12.8896, 0.6398], [-11.8747, 0.5456]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.862, 0.6685], [-12.8747, 0.784], [-12.9124, 0.715], [-12.9272, 0.554], [-12.9382, 0.3926], [-12.9455, 0.2311], [-12.9175, 0.1577], [-11.8985, 0.1344]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.8944, 0.2579], [-12.9127, 0.3025], [-12.9455, 0.2311], [-12.9489, 0.0694], [-12.9487, -0.0923], [-12.9447, -0.254], [-12.9116, -0.3253], [-11.8935, -0.2773]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.898, -0.1539], [-12.9169, -0.1804], [-12.9447, -0.254], [-12.9369, -0.4155], [-12.9253, -0.5768], [-12.91, -0.7378], [-12.8721, -0.8066], [-11.8598, -0.6878]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.8729, -0.5649], [-12.8875, -0.6625], [-12.91, -0.7378], [-12.891, -0.8984], [-12.8682, -1.0585], [-12.8417, -1.218], [-12.7991, -1.284], [-11.7975, -1.0949]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.8192, -0.9732], [-12.8245, -1.1413], [-12.8417, -1.218], [-12.8115, -1.3769], [-12.7776, -1.535], [-12.7401, -1.6923], [-12.693, -1.7552], [-11.707, -1.4966]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.7371, -1.3768], [-12.7283, -1.6146], [-12.7401, -1.6923], [-12.6989, -1.8487], [-12.6541, -2.004], [-12.6056, -2.1583], [-12.5542, -2.2178], [-11.5887, -1.8911]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.6271, -1.7736], [-12.5993, -2.08], [-12.6056, -2.1583], [-12.5536, -2.3115], [-12.4981, -2.4633], [-12.439, -2.6139], [-12.3836, -2.6696], [-11.4432, -2.2763]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.4897, -2.1618], [-12.4381, -2.5353], [-12.439, -2.6139], [-12.3764, -2.763], [-12.3104, -2.9106], [-12.241, -3.0567], [-12.1818, -3.1084], [-11.2712, -2.6505]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.3255, -2.5395], [-12.2455, -2.9782], [-12.241, -3.0567], [-12.1681, -3.201], [-12.092, -3.3437], [-12.0125, -3.4846], [-11.9499, -3.532], [-11.0734, -3.0117]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-11.1354, -2.9048], [-12.0226, -3.4066], [-12.0125, -3.4846], [-11.9298, -3.6235], [-11.8439, -3.7605], [-11.7548, -3.8955], [-11.689, -3.9385], [-10.851, -3.3583]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.9202, -3.2559], [-11.7703, -3.8184], [-11.7548, -3.8955], [-11.6626, -4.0283], [-11.5673, -4.159], [-11.4691, -4.2874], [-11.4005, -4.3257], [-10.6049, -3.6885]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.6811, -3.5912], [-11.4899, -4.2117], [-11.4691, -4.2874], [-11.3678, -4.4135], [-11.2637, -4.5372], [-11.1567, -4.6585], [-11.0856, -4.6919], [-10.3364, -4.0007]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.4192, -3.909], [-11.1827, -4.5844], [-11.1567, -4.6585], [-11.0469, -4.7772], [-10.9343, -4.8934], [-10.8191, -5.0068], [-10.7459, -5.0352], [-10.0468, -4.2935]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-10.1358, -4.2078], [-10.8503, -4.9347], [-10.8191, -5.0068], [-10.7013, -5.1176], [-10.581, -5.2256], [-10.4581, -5.3308], [-10.3831, -5.354], [-9.7374, -4.5653]], y: [-0.5, 0.5], collide: 1}
      - {kind: poly, points: [[-9.8322, -4.486], [-10.4942, -5.261], [-10.4581, -5.3308], [-10.3329, -5.4331], [-10.2053, -5.5325], [-10.0754, -5.6288], [-9.9989, -5.6467], [-9.4098, -4.8149]], y: [-0.5, 0.5], collide: 1}
      - {kind: rod, from: [-1.907, -0.5, 5.6531], to: [-1.907, 0.5, 5.6531], radius: 0.3, capsule: true, collide: 1, color: "#6b5a44"}   # the tooth A
      - {kind: disc, center: [-6.0, 0], radius: 1.0, y: [-1.2, -0.5], color: "#8f8a80"}   # its boss
  - id: wheel_c
    shape: part
    pos: [6.0, 0, 0]
    friction: 0.1
    color: "#e4d9bf"
    pieces:
      - {kind: disc, center: [6.0, 0], radius: 4.5707, y: [-0.5, 0.5]}   # C, to the bottoms of its notches
      # its 10 hollows, between the notches
      - {kind: poly, points: [[1.6555, 1.0547], [1.3822, 1.121], [1.3252, 1.0859], [1.2282, 1.0586], [0.8953, 1.0794], [0.9413, 0.9624], [1.6081, 0.8355]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.6265, 0.9273], [0.9242, 1.0762], [0.9114, 0.9709], [0.9187, 0.9174], [0.9256, 0.8642], [0.9679, 0.7518], [1.5784, 0.6606]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5932, 0.753], [0.9548, 0.8621], [0.9379, 0.7591], [0.9434, 0.7071], [0.9485, 0.6553], [0.9874, 0.5466], [1.5556, 0.4846]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5668, 0.5776], [0.9779, 0.6543], [0.9574, 0.5526], [0.9612, 0.5017], [0.9647, 0.4509], [1.0006, 0.3451], [1.5399, 0.3079]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5473, 0.4012], [0.9944, 0.451], [0.9705, 0.3499], [0.9729, 0.2997], [0.9748, 0.2495], [1.0077, 0.1459], [1.5312, 0.1306]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5349, 0.2242], [1.0047, 0.2508], [0.9777, 0.1496], [0.9786, 0.0997], [0.9791, 0.0498], [1.0091, -0.0523], [1.5295, -0.0468]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5295, 0.0468], [1.0091, 0.0523], [0.9791, -0.0498], [0.9786, -0.0997], [0.9777, -0.1496], [1.0047, -0.2508], [1.5349, -0.2242]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5312, -0.1306], [1.0077, -0.1459], [0.9748, -0.2495], [0.9729, -0.2997], [0.9705, -0.3499], [0.9944, -0.451], [1.5473, -0.4012]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5399, -0.3079], [1.0006, -0.3451], [0.9647, -0.4509], [0.9612, -0.5017], [0.9574, -0.5526], [0.9779, -0.6543], [1.5668, -0.5776]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5556, -0.4846], [0.9874, -0.5466], [0.9485, -0.6553], [0.9434, -0.7071], [0.9379, -0.7591], [0.9548, -0.8621], [1.5932, -0.753]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.5784, -0.6606], [0.9679, -0.7518], [0.9256, -0.8642], [0.9187, -0.9174], [0.9114, -0.9709], [0.9242, -1.0762], [1.6265, -0.9273]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.6081, -0.8355], [0.9413, -0.9624], [0.8953, -1.0794], [1.2282, -1.0586], [1.3252, -1.0859], [1.3822, -1.121], [1.6555, -1.0547]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.8653, -1.7004], [1.6052, -1.8073], [1.5797, -1.8693], [1.5173, -1.9484], [1.2357, -2.1272], [1.3418, -2.1948], [1.9557, -1.9056]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.9167, -1.8204], [1.261, -2.1128], [1.3125, -2.2055], [1.3499, -2.2445], [1.3867, -2.2835], [1.487, -2.3496], [2.0345, -2.0645]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.9922, -1.9811], [1.4116, -2.268], [1.4585, -2.3613], [1.4935, -2.4002], [1.528, -2.4391], [1.6235, -2.5041], [2.1196, -2.2203]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.0739, -2.1385], [1.5525, -2.4226], [1.5956, -2.5169], [1.6287, -2.5559], [1.6613, -2.5949], [1.7526, -2.6594], [2.2108, -2.3725]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.1619, -2.2926], [1.6853, -2.5773], [1.7254, -2.6732], [1.7568, -2.7124], [1.7879, -2.7518], [1.8754, -2.8163], [2.3079, -2.521]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.2559, -2.4431], [1.8113, -2.7333], [1.849, -2.831], [1.879, -2.8709], [1.9087, -2.9109], [1.993, -2.9759], [2.4108, -2.6655]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.3558, -2.5898], [1.9316, -2.8913], [1.9673, -2.9915], [1.9962, -3.0322], [2.0248, -3.073], [2.1061, -3.1391], [2.5194, -2.8059]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.4614, -2.7324], [2.0469, -3.0524], [2.0812, -3.1556], [2.1091, -3.1973], [2.1367, -3.2394], [2.2155, -3.3071], [2.6335, -2.9418]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.5727, -2.8706], [2.1582, -3.2178], [2.1914, -3.3245], [2.2184, -3.3676], [2.2453, -3.4111], [2.3216, -3.4812], [2.7529, -3.0731]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.6893, -3.0044], [2.266, -3.3885], [2.2984, -3.4994], [2.3247, -3.5442], [2.3509, -3.5896], [2.4251, -3.663], [2.8774, -3.1995]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.8111, -3.1334], [2.3708, -3.566], [2.4027, -3.6819], [2.4284, -3.7289], [2.454, -3.7765], [2.5262, -3.8542], [3.0068, -3.3209]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.938, -3.2575], [2.4731, -3.752], [2.5047, -3.8737], [2.7618, -3.6613], [2.8563, -3.6263], [2.9231, -3.6212], [3.1052, -3.4069]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.6544, -3.806], [3.5068, -4.0454], [3.5227, -4.1105], [3.5186, -4.2111], [3.396, -4.5213], [3.5215, -4.5137], [3.8482, -3.9188]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.7666, -3.8729], [3.4079, -4.4948], [3.5041, -4.5395], [3.5573, -4.5491], [3.61, -4.559], [3.73, -4.5535], [4.0054, -4.0011]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.922, -3.9584], [3.621, -4.5319], [3.7138, -4.5798], [3.765, -4.5906], [3.8158, -4.6018], [3.9312, -4.5983], [4.1657, -4.0771]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.0808, -4.0378], [3.8258, -4.5741], [3.9162, -4.625], [3.9658, -4.6371], [4.0152, -4.6495], [4.1269, -4.6481], [4.329, -4.1467]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.2425, -4.1108], [4.0243, -4.6212], [4.113, -4.6752], [4.1615, -4.6885], [4.2098, -4.7021], [4.3185, -4.7028], [4.4948, -4.2097]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.407, -4.1773], [4.2178, -4.6733], [4.3058, -4.7303], [4.3535, -4.7449], [4.4011, -4.7597], [4.5074, -4.7628], [4.6631, -4.2661]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.574, -4.2372], [4.408, -4.7305], [4.4958, -4.7905], [4.5431, -4.8065], [4.5903, -4.8227], [4.6949, -4.8283], [4.8334, -4.3158]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.7433, -4.2904], [4.5961, -4.793], [4.6845, -4.8563], [4.7315, -4.8737], [4.7786, -4.8915], [4.8821, -4.9], [5.0056, -4.3587]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.9145, -4.3369], [4.7833, -4.8614], [4.8728, -4.9282], [4.92, -4.9472], [4.9673, -4.9666], [5.0704, -4.9784], [5.1794, -4.3947]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.0875, -4.3766], [4.9708, -4.9361], [5.0622, -5.0068], [5.1099, -5.0276], [5.1577, -5.0489], [5.2609, -5.0647], [5.3544, -4.4238]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.2619, -4.4094], [5.16, -5.0182], [5.2539, -5.0931], [5.3023, -5.1161], [5.351, -5.1396], [5.4551, -5.16], [5.5305, -4.446]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.4374, -4.4352], [5.352, -5.1085], [5.4492, -5.1884], [5.5322, -4.8654], [5.5881, -4.7816], [5.6392, -4.7382], [5.6606, -4.4578]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.3394, -4.4578], [6.3608, -4.7382], [6.4119, -4.7816], [6.4678, -4.8654], [6.5508, -5.1884], [6.648, -5.1085], [6.5626, -4.4352]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.4695, -4.446], [6.5449, -5.16], [6.649, -5.1396], [6.6977, -5.1161], [6.7461, -5.0931], [6.84, -5.0182], [6.7381, -4.4094]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.6456, -4.4238], [6.7391, -5.0647], [6.8423, -5.0489], [6.8901, -5.0276], [6.9378, -5.0068], [7.0292, -4.9361], [6.9125, -4.3766]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.8206, -4.3947], [6.9296, -4.9784], [7.0327, -4.9666], [7.08, -4.9472], [7.1272, -4.9282], [7.2167, -4.8614], [7.0855, -4.3369]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.9944, -4.3587], [7.1179, -4.9], [7.2214, -4.8915], [7.2685, -4.8737], [7.3155, -4.8563], [7.4039, -4.793], [7.2567, -4.2904]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.1666, -4.3158], [7.3051, -4.8283], [7.4097, -4.8227], [7.4569, -4.8065], [7.5042, -4.7905], [7.592, -4.7305], [7.426, -4.2372]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.3369, -4.2661], [7.4926, -4.7628], [7.5989, -4.7597], [7.6465, -4.7449], [7.6942, -4.7303], [7.7822, -4.6733], [7.593, -4.1773]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.5052, -4.2097], [7.6815, -4.7028], [7.7902, -4.7021], [7.8385, -4.6885], [7.887, -4.6752], [7.9757, -4.6212], [7.7575, -4.1108]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.671, -4.1467], [7.8731, -4.6481], [7.9848, -4.6495], [8.0342, -4.6371], [8.0838, -4.625], [8.1742, -4.5741], [7.9192, -4.0378]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.8343, -4.0771], [8.0688, -4.5983], [8.1842, -4.6018], [8.235, -4.5906], [8.2862, -4.5798], [8.379, -4.5319], [8.078, -3.9584]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.9946, -4.0011], [8.27, -4.5535], [8.39, -4.559], [8.4427, -4.5491], [8.4959, -4.5395], [8.5921, -4.4948], [8.2334, -3.8729]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.1518, -3.9188], [8.4785, -4.5137], [8.604, -4.5213], [8.4814, -4.2111], [8.4773, -4.1105], [8.4932, -4.0454], [8.3456, -3.806]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.8948, -3.4069], [9.0769, -3.6212], [9.1437, -3.6263], [9.2382, -3.6613], [9.4953, -3.8737], [9.5269, -3.752], [9.062, -3.2575]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.9932, -3.3209], [9.4738, -3.8542], [9.546, -3.7765], [9.5716, -3.7289], [9.5973, -3.6819], [9.6292, -3.566], [9.1889, -3.1334]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.1226, -3.1995], [9.5749, -3.663], [9.6491, -3.5896], [9.6753, -3.5442], [9.7016, -3.4994], [9.734, -3.3885], [9.3107, -3.0044]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.2471, -3.0731], [9.6784, -3.4812], [9.7547, -3.4111], [9.7816, -3.3676], [9.8086, -3.3245], [9.8418, -3.2178], [9.4273, -2.8706]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.3665, -2.9418], [9.7845, -3.3071], [9.8633, -3.2394], [9.8909, -3.1973], [9.9188, -3.1556], [9.9531, -3.0524], [9.5386, -2.7324]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.4806, -2.8059], [9.8939, -3.1391], [9.9752, -3.073], [10.0038, -3.0322], [10.0327, -2.9915], [10.0684, -2.8913], [9.6442, -2.5898]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.5892, -2.6655], [10.007, -2.9759], [10.0913, -2.9109], [10.121, -2.8709], [10.151, -2.831], [10.1887, -2.7333], [9.7441, -2.4431]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.6921, -2.521], [10.1246, -2.8163], [10.2121, -2.7518], [10.2432, -2.7124], [10.2746, -2.6732], [10.3147, -2.5773], [9.8381, -2.2926]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.7892, -2.3725], [10.2474, -2.6594], [10.3387, -2.5949], [10.3713, -2.5559], [10.4044, -2.5169], [10.4475, -2.4226], [9.9261, -2.1385]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.8804, -2.2203], [10.3765, -2.5041], [10.472, -2.4391], [10.5065, -2.4002], [10.5415, -2.3613], [10.5884, -2.268], [10.0078, -1.9811]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.9655, -2.0645], [10.513, -2.3496], [10.6133, -2.2835], [10.6501, -2.2445], [10.6875, -2.2055], [10.739, -2.1128], [10.0833, -1.8204]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.0443, -1.9056], [10.6582, -2.1948], [10.7643, -2.1272], [10.4827, -1.9484], [10.4203, -1.8693], [10.3948, -1.8073], [10.1347, -1.7004]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.3445, -1.0547], [10.6178, -1.121], [10.6748, -1.0859], [10.7718, -1.0586], [11.1047, -1.0794], [11.0587, -0.9624], [10.3919, -0.8355]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.3735, -0.9273], [11.0758, -1.0762], [11.0886, -0.9709], [11.0813, -0.9174], [11.0744, -0.8642], [11.0321, -0.7518], [10.4216, -0.6606]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4068, -0.753], [11.0452, -0.8621], [11.0621, -0.7591], [11.0566, -0.7071], [11.0515, -0.6553], [11.0126, -0.5466], [10.4444, -0.4846]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4332, -0.5776], [11.0221, -0.6543], [11.0426, -0.5526], [11.0388, -0.5017], [11.0353, -0.4509], [10.9994, -0.3451], [10.4601, -0.3079]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4527, -0.4012], [11.0056, -0.451], [11.0295, -0.3499], [11.0271, -0.2997], [11.0252, -0.2495], [10.9923, -0.1459], [10.4688, -0.1306]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4651, -0.2242], [10.9953, -0.2508], [11.0223, -0.1496], [11.0214, -0.0997], [11.0209, -0.0498], [10.9909, 0.0523], [10.4705, 0.0468]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4705, -0.0468], [10.9909, -0.0523], [11.0209, 0.0498], [11.0214, 0.0997], [11.0223, 0.1496], [10.9953, 0.2508], [10.4651, 0.2242]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4688, 0.1306], [10.9923, 0.1459], [11.0252, 0.2495], [11.0271, 0.2997], [11.0295, 0.3499], [11.0056, 0.451], [10.4527, 0.4012]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4601, 0.3079], [10.9994, 0.3451], [11.0353, 0.4509], [11.0388, 0.5017], [11.0426, 0.5526], [11.0221, 0.6543], [10.4332, 0.5776]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4444, 0.4846], [11.0126, 0.5466], [11.0515, 0.6553], [11.0566, 0.7071], [11.0621, 0.7591], [11.0452, 0.8621], [10.4068, 0.753]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.4216, 0.6606], [11.0321, 0.7518], [11.0744, 0.8642], [11.0813, 0.9174], [11.0886, 0.9709], [11.0758, 1.0762], [10.3735, 0.9273]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.3919, 0.8355], [11.0587, 0.9624], [11.1047, 1.0794], [10.7718, 1.0586], [10.6748, 1.0859], [10.6178, 1.121], [10.3445, 1.0547]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.1347, 1.7004], [10.3948, 1.8073], [10.4203, 1.8693], [10.4827, 1.9484], [10.7643, 2.1272], [10.6582, 2.1948], [10.0443, 1.9056]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.0833, 1.8204], [10.739, 2.1128], [10.6875, 2.2055], [10.6501, 2.2445], [10.6133, 2.2835], [10.513, 2.3496], [9.9655, 2.0645]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[10.0078, 1.9811], [10.5884, 2.268], [10.5415, 2.3613], [10.5065, 2.4002], [10.472, 2.4391], [10.3765, 2.5041], [9.8804, 2.2203]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.9261, 2.1385], [10.4475, 2.4226], [10.4044, 2.5169], [10.3713, 2.5559], [10.3387, 2.5949], [10.2474, 2.6594], [9.7892, 2.3725]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.8381, 2.2926], [10.3147, 2.5773], [10.2746, 2.6732], [10.2432, 2.7124], [10.2121, 2.7518], [10.1246, 2.8163], [9.6921, 2.521]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.7441, 2.4431], [10.1887, 2.7333], [10.151, 2.831], [10.121, 2.8709], [10.0913, 2.9109], [10.007, 2.9759], [9.5892, 2.6655]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.6442, 2.5898], [10.0684, 2.8913], [10.0327, 2.9915], [10.0038, 3.0322], [9.9752, 3.073], [9.8939, 3.1391], [9.4806, 2.8059]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.5386, 2.7324], [9.9531, 3.0524], [9.9188, 3.1556], [9.8909, 3.1973], [9.8633, 3.2394], [9.7845, 3.3071], [9.3665, 2.9418]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.4273, 2.8706], [9.8418, 3.2178], [9.8086, 3.3245], [9.7816, 3.3676], [9.7547, 3.4111], [9.6784, 3.4812], [9.2471, 3.0731]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.3107, 3.0044], [9.734, 3.3885], [9.7016, 3.4994], [9.6753, 3.5442], [9.6491, 3.5896], [9.5749, 3.663], [9.1226, 3.1995]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.1889, 3.1334], [9.6292, 3.566], [9.5973, 3.6819], [9.5716, 3.7289], [9.546, 3.7765], [9.4738, 3.8542], [8.9932, 3.3209]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[9.062, 3.2575], [9.5269, 3.752], [9.4953, 3.8737], [9.2382, 3.6613], [9.1437, 3.6263], [9.0769, 3.6212], [8.8948, 3.4069]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.3456, 3.806], [8.4932, 4.0454], [8.4773, 4.1105], [8.4814, 4.2111], [8.604, 4.5213], [8.4785, 4.5137], [8.1518, 3.9188]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.2334, 3.8729], [8.5921, 4.4948], [8.4959, 4.5395], [8.4427, 4.5491], [8.39, 4.559], [8.27, 4.5535], [7.9946, 4.0011]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[8.078, 3.9584], [8.379, 4.5319], [8.2862, 4.5798], [8.235, 4.5906], [8.1842, 4.6018], [8.0688, 4.5983], [7.8343, 4.0771]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.9192, 4.0378], [8.1742, 4.5741], [8.0838, 4.625], [8.0342, 4.6371], [7.9848, 4.6495], [7.8731, 4.6481], [7.671, 4.1467]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.7575, 4.1108], [7.9757, 4.6212], [7.887, 4.6752], [7.8385, 4.6885], [7.7902, 4.7021], [7.6815, 4.7028], [7.5052, 4.2097]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.593, 4.1773], [7.7822, 4.6733], [7.6942, 4.7303], [7.6465, 4.7449], [7.5989, 4.7597], [7.4926, 4.7628], [7.3369, 4.2661]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.426, 4.2372], [7.592, 4.7305], [7.5042, 4.7905], [7.4569, 4.8065], [7.4097, 4.8227], [7.3051, 4.8283], [7.1666, 4.3158]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.2567, 4.2904], [7.4039, 4.793], [7.3155, 4.8563], [7.2685, 4.8737], [7.2214, 4.8915], [7.1179, 4.9], [6.9944, 4.3587]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[7.0855, 4.3369], [7.2167, 4.8614], [7.1272, 4.9282], [7.08, 4.9472], [7.0327, 4.9666], [6.9296, 4.9784], [6.8206, 4.3947]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.9125, 4.3766], [7.0292, 4.9361], [6.9378, 5.0068], [6.8901, 5.0276], [6.8423, 5.0489], [6.7391, 5.0647], [6.6456, 4.4238]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.7381, 4.4094], [6.84, 5.0182], [6.7461, 5.0931], [6.6977, 5.1161], [6.649, 5.1396], [6.5449, 5.16], [6.4695, 4.446]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[6.5626, 4.4352], [6.648, 5.1085], [6.5508, 5.1884], [6.4678, 4.8654], [6.4119, 4.7816], [6.3608, 4.7382], [6.3394, 4.4578]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.6606, 4.4578], [5.6392, 4.7382], [5.5881, 4.7816], [5.5322, 4.8654], [5.4492, 5.1884], [5.352, 5.1085], [5.4374, 4.4352]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.5305, 4.446], [5.4551, 5.16], [5.351, 5.1396], [5.3023, 5.1161], [5.2539, 5.0931], [5.16, 5.0182], [5.2619, 4.4094]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.3544, 4.4238], [5.2609, 5.0647], [5.1577, 5.0489], [5.1099, 5.0276], [5.0622, 5.0068], [4.9708, 4.9361], [5.0875, 4.3766]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.1794, 4.3947], [5.0704, 4.9784], [4.9673, 4.9666], [4.92, 4.9472], [4.8728, 4.9282], [4.7833, 4.8614], [4.9145, 4.3369]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[5.0056, 4.3587], [4.8821, 4.9], [4.7786, 4.8915], [4.7315, 4.8737], [4.6845, 4.8563], [4.5961, 4.793], [4.7433, 4.2904]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.8334, 4.3158], [4.6949, 4.8283], [4.5903, 4.8227], [4.5431, 4.8065], [4.4958, 4.7905], [4.408, 4.7305], [4.574, 4.2372]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.6631, 4.2661], [4.5074, 4.7628], [4.4011, 4.7597], [4.3535, 4.7449], [4.3058, 4.7303], [4.2178, 4.6733], [4.407, 4.1773]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.4948, 4.2097], [4.3185, 4.7028], [4.2098, 4.7021], [4.1615, 4.6885], [4.113, 4.6752], [4.0243, 4.6212], [4.2425, 4.1108]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.329, 4.1467], [4.1269, 4.6481], [4.0152, 4.6495], [3.9658, 4.6371], [3.9162, 4.625], [3.8258, 4.5741], [4.0808, 4.0378]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.1657, 4.0771], [3.9312, 4.5983], [3.8158, 4.6018], [3.765, 4.5906], [3.7138, 4.5798], [3.621, 4.5319], [3.922, 3.9584]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[4.0054, 4.0011], [3.73, 4.5535], [3.61, 4.559], [3.5573, 4.5491], [3.5041, 4.5395], [3.4079, 4.4948], [3.7666, 3.8729]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.8482, 3.9188], [3.5215, 4.5137], [3.396, 4.5213], [3.5186, 4.2111], [3.5227, 4.1105], [3.5068, 4.0454], [3.6544, 3.806]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.1052, 3.4069], [2.9231, 3.6212], [2.8563, 3.6263], [2.7618, 3.6613], [2.5047, 3.8737], [2.4731, 3.752], [2.938, 3.2575]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[3.0068, 3.3209], [2.5262, 3.8542], [2.454, 3.7765], [2.4284, 3.7289], [2.4027, 3.6819], [2.3708, 3.566], [2.8111, 3.1334]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.8774, 3.1995], [2.4251, 3.663], [2.3509, 3.5896], [2.3247, 3.5442], [2.2984, 3.4994], [2.266, 3.3885], [2.6893, 3.0044]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.7529, 3.0731], [2.3216, 3.4812], [2.2453, 3.4111], [2.2184, 3.3676], [2.1914, 3.3245], [2.1582, 3.2178], [2.5727, 2.8706]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.6335, 2.9418], [2.2155, 3.3071], [2.1367, 3.2394], [2.1091, 3.1973], [2.0812, 3.1556], [2.0469, 3.0524], [2.4614, 2.7324]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.5194, 2.8059], [2.1061, 3.1391], [2.0248, 3.073], [1.9962, 3.0322], [1.9673, 2.9915], [1.9316, 2.8913], [2.3558, 2.5898]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.4108, 2.6655], [1.993, 2.9759], [1.9087, 2.9109], [1.879, 2.8709], [1.849, 2.831], [1.8113, 2.7333], [2.2559, 2.4431]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.3079, 2.521], [1.8754, 2.8163], [1.7879, 2.7518], [1.7568, 2.7124], [1.7254, 2.6732], [1.6853, 2.5773], [2.1619, 2.2926]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.2108, 2.3725], [1.7526, 2.6594], [1.6613, 2.5949], [1.6287, 2.5559], [1.5956, 2.5169], [1.5525, 2.4226], [2.0739, 2.1385]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.1196, 2.2203], [1.6235, 2.5041], [1.528, 2.4391], [1.4935, 2.4002], [1.4585, 2.3613], [1.4116, 2.268], [1.9922, 1.9811]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[2.0345, 2.0645], [1.487, 2.3496], [1.3867, 2.2835], [1.3499, 2.2445], [1.3125, 2.2055], [1.261, 2.1128], [1.9167, 1.8204]], y: [-0.5, 0.5], collide: 2}
      - {kind: poly, points: [[1.9557, 1.9056], [1.3418, 2.1948], [1.2357, 2.1272], [1.5173, 1.9484], [1.5797, 1.8693], [1.6052, 1.8073], [1.8653, 1.7004]], y: [-0.5, 0.5], collide: 2}
      - {kind: disc, center: [6.0, 0], radius: 1.0, y: [-1.2, -0.5], color: "#8f8a80"}
  - id: frame
    shape: frame
    color: "#8f8a80"
    rods:
      - {from: [-6.0, 0.5, 0], to: [-6.0, 2.0, 0], radius: 0.6}
      - {from: [6.0, 0.5, 0], to: [6.0, 2.0, 0], radius: 0.6}
joints:
  - {id: j_b, type: hinge, body: wheel_b, axis: [0, 1, 0], damping: 0.05}
  - {id: j_c, type: hinge, body: wheel_c, axis: [0, 1, 0], damping: 0.005}
contact: {solref: [0.002, 1.0], solimp: [0.95, 0.99, 0.0005], margin: 0}
driver: {joint: j_b, kind: velocity, rpm: 12, kv: 20, max_torque: 20}
checks:
  - {type: ratio, out: j_c, in: j_b, expect: -0.1, tol: 0.006, settle_s: 1.0, window_s: 20.0}   # one notch a turn
  - {type: still, joint: j_c, max: 0.02, settle_s: 2.5, window_s: 2.5}   # held by B's circumference in a hollow
  - {type: penetration, max: 0.001, settle_s: 0.5}
camera: {target: [0, 0, 0], position: [0, -60, 6], fov: 34}
display:
  output: j_c
  labels: {j_b: "B with its tooth A (driver)", j_c: "C, the notched wheel"}
  proof: {label: "Tooth out of contact", sub: "C is never turned"}

