# No. 99 (Brown 1868): "Spiral guide attached to the face of a disk; used for the feed-motion of a drilling machine."
#
# Model (cm): a disk (8 turns a minute, the one driven joint) carries a spiral groove on its face (1.06 cm wide, its centre line
# starting 3 cm out and opening 0.5 cm to the radian, 1.56 turns). The drill-spindle slide's pin works in the groove by real
# contact, so each turn of the disk feeds the drill 3.14 cm forward, steadily, into the work. Generator: opencode-runs/batch9/gen099.py.
number: 99
slug: spiral-guide-drill-feed
name: A spiral guide on a disk, feeding a drill
brown: "Spiral guide attached to the face of a disk; used for the feed-motion of a drilling machine."
units: cm
sim:
  timestep: 0.0005
  integrator: implicitfast
  iterations: 50
  solver: PGS
  duration_s: 11
  floor: false
bodies:
  - id: disk
    shape: part
    pos: [0, 0, 0]
    mass: 1.0
    friction: 0.05
    color: "#d9cfb6"
    pieces:
      - {kind: rod, from: [0, 0.8, 0], to: [0, 3.0, 0], radius: 0.7, color: "#8f8a80"}   # the disk's shaft
      - {kind: disc, center: [0, 0], radius: 9.53, y: [0.4, 0.8]}   # the disk the spiral is cut in
      - {kind: poly, points: [[2.8255, -1.6516], [3.0038, -1.4089], [3.42, -1.686], [3.2143, -1.966]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.0038, -1.4089], [3.161, -1.1474], [3.6009, -1.385], [3.42, -1.686]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.161, -1.1474], [3.2951, -0.8691], [3.755, -1.0651], [3.6009, -1.385]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.2951, -0.8691], [3.4044, -0.5759], [3.8804, -0.7288], [3.755, -1.0651]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.4044, -0.5759], [3.4872, -0.2701], [3.9753, -0.3786], [3.8804, -0.7288]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.4872, -0.2701], [3.5423, 0.0458], [4.0383, -0.0174], [3.9753, -0.3786]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.5423, 0.0458], [3.5685, 0.3694], [4.0682, 0.352], [4.0383, -0.0174]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.5685, 0.3694], [3.5648, 0.698], [4.064, 0.7265], [4.0682, 0.352]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.5648, 0.698], [3.5306, 1.0287], [4.0251, 1.1028], [4.064, 0.7265]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.5306, 1.0287], [3.4655, 1.3587], [3.9511, 1.4779], [4.0251, 1.1028]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.4655, 1.3587], [3.3693, 1.6852], [3.842, 1.8483], [3.9511, 1.4779]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.3693, 1.6852], [3.2422, 2.0052], [3.698, 2.2108], [3.842, 1.8483]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.2422, 2.0052], [3.0846, 2.3157], [3.5197, 2.5621], [3.698, 2.2108]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.0846, 2.3157], [2.8972, 2.6138], [3.3079, 2.899], [3.5197, 2.5621]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.8972, 2.6138], [2.6809, 2.8967], [3.0639, 3.2182], [3.3079, 2.899]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.6809, 2.8967], [2.4371, 3.1615], [2.789, 3.5166], [3.0639, 3.2182]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.4371, 3.1615], [2.1671, 3.4057], [2.4852, 3.7914], [2.789, 3.5166]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.1671, 3.4057], [1.8728, 3.6265], [2.1545, 4.0397], [2.4852, 3.7914]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.8728, 3.6265], [1.5563, 3.8217], [1.7991, 4.2588], [2.1545, 4.0397]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.5563, 3.8217], [1.2198, 3.989], [1.4217, 4.4464], [1.7991, 4.2588]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.2198, 3.989], [0.8657, 4.1264], [1.0252, 4.6003], [1.4217, 4.4464]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.8657, 4.1264], [0.4968, 4.232], [0.6125, 4.7185], [1.0252, 4.6003]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.4968, 4.232], [0.116, 4.3044], [0.1869, 4.7994], [0.6125, 4.7185]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.116, 4.3044], [-0.2738, 4.3422], [-0.2482, 4.8416], [0.1869, 4.7994]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.2738, 4.3422], [-0.6694, 4.3444], [-0.6893, 4.8441], [-0.2482, 4.8416]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.6694, 4.3444], [-1.0675, 4.3104], [-1.1327, 4.8061], [-0.6893, 4.8441]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.0675, 4.3104], [-1.4648, 4.2395], [-1.5748, 4.7273], [-1.1327, 4.8061]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.4648, 4.2395], [-1.8577, 4.1319], [-2.0116, 4.6076], [-1.5748, 4.7273]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.8577, 4.1319], [-2.2431, 3.9876], [-2.4395, 4.4474], [-2.0116, 4.6076]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.2431, 3.9876], [-2.6172, 3.8072], [-2.8546, 4.2473], [-2.4395, 4.4474]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.6172, 3.8072], [-2.9769, 3.5915], [-3.2532, 4.0082], [-2.8546, 4.2473]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.9769, 3.5915], [-3.3187, 3.3418], [-3.6317, 3.7317], [-3.2532, 4.0082]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.3187, 3.3418], [-3.6395, 3.0595], [-3.9865, 3.4194], [-3.6317, 3.7317]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.6395, 3.0595], [-3.936, 2.7463], [-4.3142, 3.0733], [-3.9865, 3.4194]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.936, 2.7463], [-4.2054, 2.4045], [-4.6117, 2.6959], [-4.3142, 3.0733]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.2054, 2.4045], [-4.4449, 2.0363], [-4.8759, 2.2897], [-4.6117, 2.6959]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.4449, 2.0363], [-4.6518, 1.6444], [-5.1041, 1.8577], [-4.8759, 2.2897]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.6518, 1.6444], [-4.824, 1.2318], [-5.2937, 1.4032], [-5.1041, 1.8577]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.824, 1.2318], [-4.9593, 0.8014], [-5.4426, 0.9296], [-5.2937, 1.4032]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.9593, 0.8014], [-5.0559, 0.3567], [-5.5488, 0.4406], [-5.4426, 0.9296]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.0559, 0.3567], [-5.1123, -0.0989], [-5.6108, -0.06], [-5.5488, 0.4406]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.1123, -0.0989], [-5.1274, -0.5617], [-5.6274, -0.568], [-5.6108, -0.06]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.1274, -0.5617], [-5.1004, -1.028], [-5.5977, -1.0795], [-5.6274, -0.568]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.1004, -1.028], [-5.0307, -1.4938], [-5.5213, -1.59], [-5.5977, -1.0795]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.0307, -1.4938], [-4.9182, -1.9552], [-5.3981, -2.0955], [-5.5213, -1.59]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.9182, -1.9552], [-4.7632, -2.4084], [-5.2285, -2.5915], [-5.3981, -2.0955]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.7632, -2.4084], [-4.5662, -2.8493], [-5.013, -3.0737], [-5.2285, -2.5915]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.5662, -2.8493], [-4.3282, -3.2741], [-4.7529, -3.538], [-5.013, -3.0737]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.3282, -3.2741], [-4.0506, -3.679], [-4.4497, -3.9801], [-4.7529, -3.538]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.0506, -3.679], [-3.735, -4.0601], [-4.1053, -4.3961], [-4.4497, -3.9801]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.735, -4.0601], [-3.3834, -4.414], [-3.7218, -4.7821], [-4.1053, -4.3961]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.3834, -4.414], [-2.9982, -4.7373], [-3.3021, -5.1344], [-3.7218, -4.7821]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.9982, -4.7373], [-2.5822, -5.0268], [-2.849, -5.4497], [-3.3021, -5.1344]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.5822, -5.0268], [-2.1383, -5.2794], [-2.3658, -5.7247], [-2.849, -5.4497]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.1383, -5.2794], [-1.6697, -5.4927], [-1.8561, -5.9566], [-2.3658, -5.7247]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.6697, -5.4927], [-1.1801, -5.664], [-1.3238, -6.1429], [-1.8561, -5.9566]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.1801, -5.664], [-0.6731, -5.7915], [-0.773, -6.2814], [-1.3238, -6.1429]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.6731, -5.7915], [-0.1528, -5.8733], [-0.2081, -6.3702], [-0.773, -6.2814]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.1528, -5.8733], [0.3768, -5.9081], [0.3666, -6.408], [-0.2081, -6.3702]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.3768, -5.9081], [0.9114, -5.8949], [0.9462, -6.3937], [0.3666, -6.408]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.9114, -5.8949], [1.4465, -5.8331], [1.5262, -6.3267], [0.9462, -6.3937]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.4465, -5.8331], [1.9778, -5.7224], [2.1017, -6.2068], [1.5262, -6.3267]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.9778, -5.7224], [2.5007, -5.5631], [2.6678, -6.0344], [2.1017, -6.2068]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.5007, -5.5631], [3.0109, -5.3559], [3.2198, -5.8102], [2.6678, -6.0344]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.0109, -5.3559], [3.5038, -5.1016], [3.7528, -5.5352], [3.2198, -5.8102]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.5038, -5.1016], [3.9752, -4.8019], [4.2623, -5.2113], [3.7528, -5.5352]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.9752, -4.8019], [4.4208, -4.4584], [4.7436, -4.8402], [4.2623, -5.2113]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.4208, -4.4584], [4.8366, -4.0734], [5.1925, -4.4247], [4.7436, -4.8402]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.8366, -4.0734], [5.2187, -3.6496], [5.6047, -3.9674], [5.1925, -4.4247]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.2187, -3.6496], [5.5634, -3.1899], [5.9765, -3.4716], [5.6047, -3.9674]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.5634, -3.1899], [5.8674, -2.6977], [6.3042, -2.941], [5.9765, -3.4716]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.8674, -2.6977], [6.1276, -2.1764], [6.5846, -2.3794], [6.3042, -2.941]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.1276, -2.1764], [6.3413, -1.6302], [6.8146, -1.7912], [6.5846, -2.3794]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.3413, -1.6302], [6.506, -1.0631], [6.9919, -1.1808], [6.8146, -1.7912]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.506, -1.0631], [6.6197, -0.4795], [7.1143, -0.553], [6.9919, -1.1808]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.6197, -0.4795], [6.6809, 0.1159], [7.18, 0.0873], [7.1143, -0.553]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.6809, 0.1159], [6.6882, 0.7184], [7.1879, 0.7348], [7.18, 0.0873]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.6882, 0.7184], [6.641, 1.3231], [7.1372, 1.3844], [7.1879, 0.7348]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.641, 1.3231], [6.5388, 1.925], [7.0275, 2.0307], [7.1372, 1.3844]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.5388, 1.925], [6.3819, 2.5191], [6.8591, 2.6684], [7.0275, 2.0307]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.3819, 2.5191], [6.1708, 3.1005], [6.6326, 3.2921], [6.8591, 2.6684]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[6.1708, 3.1005], [5.9065, 3.6641], [6.3492, 3.8965], [6.6326, 3.2921]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.9065, 3.6641], [5.5906, 4.2051], [6.0106, 4.4764], [6.3492, 3.8965]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.5906, 4.2051], [5.2249, 4.7187], [5.6188, 5.0267], [6.0106, 4.4764]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.2249, 4.7187], [4.812, 5.2004], [5.1765, 5.5425], [5.6188, 5.0267]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.812, 5.2004], [4.3545, 5.6457], [4.6868, 6.0193], [5.1765, 5.5425]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.3545, 5.6457], [3.8557, 6.0506], [4.153, 6.4526], [4.6868, 6.0193]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.8557, 6.0506], [3.3192, 6.4113], [3.5792, 6.8384], [4.153, 6.4526]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.3192, 6.4113], [2.7489, 6.7241], [2.9694, 7.1729], [3.5792, 6.8384]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.7489, 6.7241], [2.1491, 6.986], [2.3284, 7.4528], [2.9694, 7.1729]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.1491, 6.986], [1.5245, 7.1942], [1.661, 7.6751], [2.3284, 7.4528]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.5245, 7.1942], [0.8797, 7.3462], [0.9725, 7.8375], [1.661, 7.6751]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.8797, 7.3462], [0.2199, 7.4403], [0.2682, 7.9379], [0.9725, 7.8375]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.2199, 7.4403], [-0.4496, 7.4748], [-0.4463, 7.9748], [0.2682, 7.9379]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.4496, 7.4748], [-1.1235, 7.4488], [-1.1652, 7.9471], [-0.4463, 7.9748]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.1235, 7.4488], [-1.7964, 7.3619], [-1.8827, 7.8544], [-1.1652, 7.9471]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.7964, 7.3619], [-2.4625, 7.214], [-2.5928, 7.6967], [-1.8827, 7.8544]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.4625, 7.214], [-3.1166, 7.0055], [-3.2896, 7.4746], [-2.5928, 7.6967]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.1166, 7.0055], [-3.7529, 6.7376], [-3.9674, 7.1892], [-3.2896, 7.4746]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.7529, 6.7376], [-4.366, 6.4117], [-4.6203, 6.8422], [-3.9674, 7.1892]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.366, 6.4117], [-4.9508, 6.0298], [-5.2427, 6.4358], [-4.6203, 6.8422]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.9508, 6.0298], [-5.502, 5.5945], [-5.8292, 5.9725], [-5.2427, 6.4358]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.502, 5.5945], [-6.0148, 5.1086], [-6.3747, 5.4557], [-5.8292, 5.9725]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.0148, 5.1086], [-6.4845, 4.5756], [-6.8741, 4.889], [-6.3747, 5.4557]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.4845, 4.5756], [-6.9067, 3.9994], [-7.3229, 4.2765], [-6.8741, 4.889]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.9067, 3.9994], [-7.2775, 3.3841], [-7.7169, 3.6227], [-7.3229, 4.2765]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.2775, 3.3841], [-7.5933, 2.7344], [-8.0524, 2.9325], [-7.7169, 3.6227]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.5933, 2.7344], [-7.8509, 2.0552], [-8.3259, 2.2113], [-8.0524, 2.9325]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.8509, 2.0552], [-8.0475, 1.3517], [-8.5346, 1.4646], [-8.3259, 2.2113]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.0475, 1.3517], [-8.1809, 0.6295], [-8.6761, 0.6982], [-8.5346, 1.4646]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.1809, 0.6295], [-8.2492, -0.1057], [-8.7486, -0.0818], [-8.6761, 0.6982]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.2492, -0.1057], [-8.2512, -0.8481], [-8.7507, -0.8692], [-8.7486, -0.0818]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.2512, -0.8481], [-8.1861, -1.5916], [-8.6818, -1.6575], [-8.7507, -0.8692]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.1861, -1.5916], [-8.0539, -2.3302], [-8.5416, -2.4404], [-8.6818, -1.6575]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-8.0539, -2.3302], [-7.8548, -3.0579], [-8.3306, -3.2114], [-8.5416, -2.4404]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.0012, -0.9852], [2.1215, -0.8214], [1.7054, -0.5443], [1.6124, -0.6709]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.1215, -0.8214], [2.2283, -0.6437], [1.7884, -0.4061], [1.7054, -0.5443]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.2283, -0.6437], [2.32, -0.4534], [1.86, -0.2573], [1.7884, -0.4061]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.32, -0.4534], [2.3952, -0.2517], [1.9191, -0.0988], [1.86, -0.2573]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.3952, -0.2517], [2.4525, -0.0401], [1.9644, 0.0684], [1.9191, -0.0988]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.4525, -0.0401], [2.4908, 0.1798], [1.9948, 0.2431], [1.9644, 0.0684]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.4908, 0.1798], [2.5091, 0.4063], [2.0094, 0.4238], [1.9948, 0.2431]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.5091, 0.4063], [2.5065, 0.6376], [2.0074, 0.6091], [2.0094, 0.4238]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.5065, 0.6376], [2.4823, 0.8715], [1.9879, 0.7974], [2.0074, 0.6091]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.4823, 0.8715], [2.436, 1.1062], [1.9504, 0.9871], [1.9879, 0.7974]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.436, 1.1062], [2.3673, 1.3395], [1.8946, 1.1764], [1.9504, 0.9871]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.3673, 1.3395], [2.276, 1.5692], [1.8203, 1.3636], [1.8946, 1.1764]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.276, 1.5692], [2.1623, 1.7932], [1.7273, 1.5468], [1.8203, 1.3636]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.1623, 1.7932], [2.0265, 2.0092], [1.6158, 1.7241], [1.7273, 1.5468]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.0265, 2.0092], [1.8691, 2.2151], [1.4861, 1.8936], [1.6158, 1.7241]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.8691, 2.2151], [1.6908, 2.4087], [1.3388, 2.0536], [1.4861, 1.8936]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.6908, 2.4087], [1.4927, 2.5879], [1.1745, 2.2022], [1.3388, 2.0536]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.4927, 2.5879], [1.2758, 2.7507], [0.9942, 2.3375], [1.1745, 2.2022]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.2758, 2.7507], [1.0416, 2.8951], [0.7988, 2.458], [0.9942, 2.3375]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.0416, 2.8951], [0.7916, 3.0193], [0.5897, 2.5619], [0.7988, 2.458]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.7916, 3.0193], [0.5277, 3.1217], [0.3682, 2.6479], [0.5897, 2.5619]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.5277, 3.1217], [0.2516, 3.2008], [0.136, 2.7144], [0.3682, 2.6479]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.2516, 3.2008], [-0.0344, 3.2551], [-0.1053, 2.7602], [0.136, 2.7144]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.0344, 3.2551], [-0.3281, 3.2836], [-0.3537, 2.7843], [-0.1053, 2.7602]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.3281, 3.2836], [-0.6272, 3.2853], [-0.6073, 2.7857], [-0.3537, 2.7843]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.6272, 3.2853], [-0.9292, 3.2594], [-0.864, 2.7637], [-0.6073, 2.7857]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.9292, 3.2594], [-1.2315, 3.2055], [-1.1215, 2.7178], [-0.864, 2.7637]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.2315, 3.2055], [-1.5316, 3.1233], [-1.3777, 2.6476], [-1.1215, 2.7178]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.5316, 3.1233], [-1.8266, 3.0128], [-1.6302, 2.553], [-1.3777, 2.6476]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.8266, 3.0128], [-2.1141, 2.8742], [-1.8767, 2.4341], [-1.6302, 2.553]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.1141, 2.8742], [-2.3911, 2.7081], [-2.1148, 2.2914], [-1.8767, 2.4341]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.3911, 2.7081], [-2.6552, 2.5151], [-2.3423, 2.1252], [-2.1148, 2.2914]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.6552, 2.5151], [-2.9037, 2.2964], [-2.5567, 1.9364], [-2.3423, 2.1252]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.9037, 2.2964], [-3.1341, 2.0531], [-2.7559, 1.7261], [-2.5567, 1.9364]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.1341, 2.0531], [-3.344, 1.7868], [-2.9377, 1.4954], [-2.7559, 1.7261]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.344, 1.7868], [-3.531, 1.4992], [-3.1, 1.2458], [-2.9377, 1.4954]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.531, 1.4992], [-3.6931, 1.1923], [-3.2409, 0.979], [-3.1, 1.2458]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.6931, 1.1923], [-3.8283, 0.8683], [-3.3586, 0.6969], [-3.2409, 0.979]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.8283, 0.8683], [-3.9347, 0.5296], [-3.4514, 0.4014], [-3.3586, 0.6969]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.9347, 0.5296], [-4.0109, 0.1788], [-3.518, 0.0948], [-3.4514, 0.4014]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.0109, 0.1788], [-4.0556, -0.1815], [-3.5571, -0.2205], [-3.518, 0.0948]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.0556, -0.1815], [-4.0675, -0.5484], [-3.5676, -0.5421], [-3.5571, -0.2205]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.0675, -0.5484], [-4.046, -0.9188], [-3.5487, -0.8673], [-3.5676, -0.5421]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.046, -0.9188], [-3.9905, -1.2897], [-3.4999, -1.1934], [-3.5487, -0.8673]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.9905, -1.2897], [-3.9008, -1.6579], [-3.4208, -1.5177], [-3.4999, -1.1934]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.9008, -1.6579], [-3.7768, -2.0203], [-3.3115, -1.8373], [-3.4208, -1.5177]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.7768, -2.0203], [-3.6189, -2.3737], [-3.1721, -2.1493], [-3.3115, -1.8373]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.6189, -2.3737], [-3.4278, -2.7148], [-3.0031, -2.451], [-3.1721, -2.1493]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.4278, -2.7148], [-3.2044, -3.0406], [-2.8052, -2.7394], [-3.0031, -2.451]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.2044, -3.0406], [-2.9499, -3.3479], [-2.5796, -3.0119], [-2.8052, -2.7394]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.9499, -3.3479], [-2.6659, -3.6338], [-2.3274, -3.2658], [-2.5796, -3.0119]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.6659, -3.6338], [-2.3541, -3.8955], [-2.0503, -3.4984], [-2.3274, -3.2658]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.3541, -3.8955], [-2.0167, -4.1302], [-1.75, -3.7073], [-2.0503, -3.4984]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.0167, -4.1302], [-1.656, -4.3355], [-1.4286, -3.8902], [-1.75, -3.7073]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.656, -4.3355], [-1.2747, -4.509], [-1.0883, -4.0451], [-1.4286, -3.8902]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.2747, -4.509], [-0.8754, -4.6488], [-0.7317, -4.1699], [-1.0883, -4.0451]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.8754, -4.6488], [-0.4613, -4.7529], [-0.3614, -4.263], [-0.7317, -4.1699]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.4613, -4.7529], [-0.0355, -4.8198], [0.0198, -4.3229], [-0.3614, -4.263]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.0355, -4.8198], [0.3985, -4.8483], [0.4088, -4.3484], [0.0198, -4.3229]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.3985, -4.8483], [0.8374, -4.8375], [0.8025, -4.3387], [0.4088, -4.3484]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.8374, -4.8375], [1.2775, -4.7866], [1.1978, -4.293], [0.8025, -4.3387]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.2775, -4.7866], [1.7151, -4.6955], [1.5912, -4.2111], [1.1978, -4.293]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.7151, -4.6955], [2.1465, -4.5641], [1.9794, -4.0928], [1.5912, -4.2111]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.1465, -4.5641], [2.5681, -4.3928], [2.3592, -3.9385], [1.9794, -4.0928]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.5681, -4.3928], [2.976, -4.1824], [2.727, -3.7488], [2.3592, -3.9385]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.976, -4.1824], [3.3667, -3.934], [3.0796, -3.5246], [2.727, -3.7488]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.3667, -3.934], [3.7365, -3.6488], [3.4138, -3.267], [3.0796, -3.5246]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.7365, -3.6488], [4.0821, -3.3289], [3.7263, -2.9776], [3.4138, -3.267]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.0821, -3.3289], [4.4002, -2.9761], [4.0141, -2.6583], [3.7263, -2.9776]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.4002, -2.9761], [4.6876, -2.5928], [4.2744, -2.3112], [4.0141, -2.6583]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.6876, -2.5928], [4.9413, -2.1819], [4.5045, -1.9386], [4.2744, -2.3112]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.9413, -2.1819], [5.1589, -1.7462], [4.7019, -1.5432], [4.5045, -1.9386]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.1589, -1.7462], [5.3377, -1.2889], [4.8643, -1.1279], [4.7019, -1.5432]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.3377, -1.2889], [5.4758, -0.8135], [4.9898, -0.6958], [4.8643, -1.1279]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.4758, -0.8135], [5.5712, -0.3238], [5.0767, -0.2503], [4.9898, -0.6958]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.5712, -0.3238], [5.6226, 0.1766], [5.1234, 0.2053], [5.0767, -0.2503]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.6226, 0.1766], [5.6288, 0.6836], [5.1291, 0.6672], [5.1234, 0.2053]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.6288, 0.6836], [5.589, 1.193], [5.0928, 1.1317], [5.1291, 0.6672]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.589, 1.193], [5.5028, 1.7008], [5.0141, 1.595], [5.0928, 1.1317]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.5028, 1.7008], [5.3703, 2.2026], [4.8931, 2.0533], [5.0141, 1.595]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.3703, 2.2026], [5.1917, 2.6942], [4.7299, 2.5025], [4.8931, 2.0533]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[5.1917, 2.6942], [4.968, 3.1713], [4.5253, 2.9389], [4.7299, 2.5025]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.968, 3.1713], [4.7002, 3.6299], [4.2802, 3.3586], [4.5253, 2.9389]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.7002, 3.6299], [4.3899, 4.0657], [3.9961, 3.7577], [4.2802, 3.3586]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.3899, 4.0657], [4.0391, 4.4749], [3.6745, 4.1327], [3.9961, 3.7577]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[4.0391, 4.4749], [3.65, 4.8537], [3.3177, 4.4801], [3.6745, 4.1327]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.65, 4.8537], [3.2253, 5.1984], [2.9279, 4.7965], [3.3177, 4.4801]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[3.2253, 5.1984], [2.768, 5.5058], [2.508, 5.0788], [2.9279, 4.7965]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.768, 5.5058], [2.2814, 5.7728], [2.0608, 5.324], [2.508, 5.0788]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[2.2814, 5.7728], [1.7691, 5.9965], [1.5898, 5.5297], [2.0608, 5.324]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.7691, 5.9965], [1.2349, 6.1745], [1.0983, 5.6935], [1.5898, 5.5297]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[1.2349, 6.1745], [0.683, 6.3046], [0.5902, 5.8133], [1.0983, 5.6935]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.683, 6.3046], [0.1177, 6.3852], [0.0695, 5.8875], [0.5902, 5.8133]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[0.1177, 6.3852], [-0.4566, 6.4148], [-0.4599, 5.9148], [0.0695, 5.8875]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-0.4566, 6.4148], [-1.0352, 6.3925], [-0.9935, 5.8943], [-0.4599, 5.9148]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.0352, 6.3925], [-1.6134, 6.3178], [-1.5271, 5.8253], [-0.9935, 5.8943]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-1.6134, 6.3178], [-2.1865, 6.1905], [-2.0563, 5.7078], [-1.5271, 5.8253]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.1865, 6.1905], [-2.7496, 6.0111], [-2.5765, 5.542], [-2.0563, 5.7078]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-2.7496, 6.0111], [-3.298, 5.7802], [-3.0835, 5.3285], [-2.5765, 5.542]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.298, 5.7802], [-3.827, 5.499], [-3.5727, 5.0685], [-3.0835, 5.3285]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-3.827, 5.499], [-4.3319, 5.1693], [-4.04, 4.7633], [-3.5727, 5.0685]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.3319, 5.1693], [-4.8083, 4.793], [-4.4811, 4.4149], [-4.04, 4.7633]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-4.8083, 4.793], [-5.2519, 4.3727], [-4.892, 4.0256], [-4.4811, 4.4149]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.2519, 4.3727], [-5.6585, 3.9112], [-5.2689, 3.5979], [-4.892, 4.0256]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-5.6585, 3.9112], [-6.0244, 3.4119], [-5.6082, 3.1348], [-5.2689, 3.5979]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.0244, 3.4119], [-6.346, 2.8782], [-5.9066, 2.6396], [-5.6082, 3.1348]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.346, 2.8782], [-6.6201, 2.3143], [-6.1611, 2.1161], [-5.9066, 2.6396]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.6201, 2.3143], [-6.8439, 1.7242], [-6.3689, 1.5681], [-6.1611, 2.1161]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-6.8439, 1.7242], [-7.0148, 1.1126], [-6.5277, 0.9997], [-6.3689, 1.5681]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.0148, 1.1126], [-7.1309, 0.4841], [-6.6356, 0.4155], [-6.5277, 0.9997]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.1309, 0.4841], [-7.1904, -0.1562], [-6.6909, -0.1801], [-6.6356, 0.4155]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.1904, -0.1562], [-7.1921, -0.8033], [-6.6926, -0.7822], [-6.6909, -0.1801]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.1921, -0.8033], [-7.1354, -1.4519], [-6.6397, -1.386], [-6.6926, -0.7822]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.1354, -1.4519], [-7.0199, -2.0968], [-6.5322, -1.9866], [-6.6397, -1.386]], y: [-0.4, 0.4], collide: 1}
      - {kind: poly, points: [[-7.0199, -2.0968], [-6.846, -2.7325], [-6.3701, -2.579], [-6.5322, -1.9866]], y: [-0.4, 0.4], collide: 1}
  - id: drill
    shape: part
    pos: [3.0, 0, 0]
    mass: 0.2
    friction: 0.05
    color: "#b8ad97"
    pieces:
      - {kind: rod, from: [3.0, -0.3, 0], to: [3.0, 0.3, 0], radius: 0.5, collide: 2, capsule: true, color: "#8f8a80"}   # the pin
      - {kind: poly, points: [[3.5, -0.5], [19.0, -0.5], [19.0, 0.5], [3.5, 0.5]], y: [-0.4, 0.4]}   # the spindle slide
      - {kind: poly, points: [[19.0, -0.35], [22.0, -0.35], [22.0, 0.35], [19.0, 0.35]], y: [-0.3, 0.3], color: "#8f8a80"}   # the drill
  - id: frame
    shape: part
    pos: [0, 0, 0]
    fixed: true
    color: "#cfc6b4"
    pieces:
      - {kind: poly, points: [[-1.4, -13], [1.4, -13], [1.0, 0], [-1.0, 0]], y: [1.8, 2.8]}   # the disk's standard, behind
      - {kind: poly, points: [[8.0, -1.6], [20.0, -1.6], [20.0, -0.7], [8.0, -0.7]], y: [-0.8, 1.2]}   # the slide's lower guide
      - {kind: poly, points: [[8.0, 0.7], [20.0, 0.7], [20.0, 1.6], [8.0, 1.6]], y: [-0.8, 1.2]}   # the upper guide
      - {kind: poly, points: [[8.0, -1.6], [20.0, -1.6], [20.0, 1.6], [8.0, 1.6]], y: [1.2, 2.2]}   # their back plate
      - {kind: poly, points: [[16.0, -13], [18.0, -13], [18.0, -1.6], [16.0, -1.6]], y: [1.2, 2.2]}   # their post
      - {kind: poly, points: [[27.4, 0.8], [34.4, 0.8], [34.4, 4.5], [27.4, 4.5]], y: [-0.8, 1.2], color: "#b9b09c"}   # the work, above the hole
      - {kind: poly, points: [[27.4, -4.5], [34.4, -4.5], [34.4, -0.8], [27.4, -0.8]], y: [-0.8, 1.2], color: "#b9b09c"}   # and below
      - {kind: poly, points: [[32.4, -4.5], [34.4, -4.5], [34.4, 4.5], [32.4, 4.5]], y: [-0.8, 1.2], color: "#b9b09c"}   # the hole's bottom
      - {kind: poly, points: [[28.4, -13], [33.4, -13], [33.4, -4.5], [28.4, -4.5]], y: [-0.8, 1.2]}   # the work's stand
      - {kind: poly, points: [[-12, -14], [38.4, -14], [38.4, -13], [-12, -13]], y: [-3, 3], color: "#b9b09c"}
joints:
  - {id: j_c, type: hinge, body: disk, axis: [0, 1, 0], damping: 0.002}   # the one driven joint; + : clockwise
  - {id: j_x, type: slide, body: drill, axis: [1, 0, 0], range: [-1.0, 5.9], damping: 1.0}   # the drill slide in its guides, fed by the spiral; + : on, into the work
driver: {joint: j_c, kind: velocity, rpm: 8.0, kv: 20.0, max_torque: 20}
checks:
  - {type: follow, out: j_x, in: j_c, expect: 0.005, tol: 0.00015, min_r2: 0.999, settle_s: 1.0, window_s: 4.0}   # feed: K a radian, first half
  - {type: follow, out: j_x, in: j_c, expect: 0.005, tol: 0.00015, min_r2: 0.999, settle_s: 5.5, window_s: 4.5}   # and the second
  - {type: position, joint: j_x, min: -0.05, max: 4.95, settle_s: 0.5, window_s: 10}
camera: {target: [13.2, 0, -2.5], position: [13.2, -95, 0], fov: 34}
display:
  output: j_x
  labels: {j_c: "Spiral disk (driver)", j_x: "Drill slide"}
  proof: {label: "Spiral walls out of contact", sub: "the disk turns but the drill stands"}

