Trën

On Monday, I had no idea what to do for my solo project so I started working on the outline of a train. This train can be found here on Google. I thought it looked interesting and would be a challenging project to do for a week, so I stuck with it. Although it was challenging, it was pretty straight-forward and I knew I could finish it if I spent my time wisely and properly. Enjoy 🙏

(defn make-arc [deg direction size]
  (repeat deg [:fwd size direction 1]))

(defn train-path-1 []
  (concat (repeat 2 [:color "white"
          :right 90 :fwd 400
          :right 90 :fwd 70])
          [:right 90 :fwd 258
          :right 210 :fwd 50
          :right 30 :fwd 6
          :right 60 :fwd 6
          :right 90 :fwd 70
          :left 30 :fwd 124.4
          :right 90 :fwd 150
          :left 90 :fwd 14
           ;;first complex hump
          :left 90 :fwd 100
          :left 90 (make-arc 180 :right 0.1)
          :left 90 (make-arc 60 :right 0.5)
           :left 60 :fwd 10
           (make-arc 90 :right 0.1)
           :left 90 :fwd 10
           :right 90 :fwd 14
           :left 90 :fwd 20
           :right 90 :fwd 10
           :right 90 :fwd 33
           :left 90 :fwd 8
           :left 90 :fwd 14
           :left 90 (make-arc 180 :right 0.06)
           :left 90 :fwd 6
           :right 90 :fwd 6
           :right 90 :fwd 6
           :left 90 (make-arc 180 :right 0.06)
           :left 90 :fwd 14
           :left 90 :fwd 6
           :right 90 :fwd 4
           :right 90 :fwd 5
           :left 90 :fwd 5
           :left 90 (make-arc 90 :right 0.5)
           :left 90 (make-arc 180 :right 0.1)
           :left 90 :fwd 35
           :left 180 :fwd 5
           (make-arc 90 :right 0.15)
           ;;long thing
           :left 90 :fwd 75
           :right 90 :fwd 10
           :right 90 :fwd 75
           :left 90 (make-arc 90 :right 0.15)
           :fwd 5
           :left 90 :fwd 50
           ;;second hump
           :left 90 :fwd 20
           :left 90 (make-arc 180 :right 0.1)
           :left 90 (make-arc 90 :right 0.6)
           :left 90 :fwd 5
           :left 90 :fwd 5
           :right 90 :fwd 5
           :right 90 :fwd 30
           :right 90 :fwd 5
           :right 90 :fwd 5
           :left 90 :fwd 5
           :left 90 (make-arc 90 :right 0.6)
           :left 90 (make-arc 180 :right 0.1)
           :left 90 :fwd 20
           :left 90 :fwd 100
           :left 80 :fwd 10
           :left 40 :fwd 12
           (make-arc 120 :right 0.3)
           :left 90 :fwd 5
           :left 90 :fwd 5
           :right 90 :fwd 15
           :right 90 :fwd 5
           :left 90 :fwd 8
           :right 90 :fwd 10
           :right 90 :fwd 8
           :left 90 :fwd 5
           :right 90 :fwd 15
           :right 90 :fwd 5
           :left 90 :fwd 5
           :left 70 (make-arc 60 :right 0.3)
           :fwd 10
           (make-arc 60 :left 0.3)
           :right 145 :fwd 22
           :left 105 :fwd 5
           :left 60 :fwd 150
           :left 95 :fwd 225
           :left 85 (make-arc 180 :right 0.1)
           :fwd 90
           (make-arc 180 :right 0.1)
           :left 85 :fwd 225
           :left 95 :fwd 50
           :left 90 (make-arc 180 :right 0.075)
           :fwd 5 (make-arc 180 :right 0.075)
           :left 90 :fwd 51
           :left 85 :fwd 20
           (make-arc 40 :left 0.5)
           :left 55 :fwd 75
           :left 90 :fwd 7
           :right 90 :fwd 2
           :left 90 :fwd 90
           (make-arc 90 :right 0.25)
           :fwd 60
           :left 90 (make-arc 180 :right 0.1)
           :left 90 :fwd 10
           (make-arc 90 :right 0.1)
           :fwd 80
           (make-arc 90 :right 0.1)
           :fwd 5
           :left 90 :fwd 5
           :right 75 :fwd 40
           :left 75 :fwd 5
           :left 90 :fwd 10
           :right 90 :fwd 25
           :left 45 :fwd 40
           :right 45 :fwd 5
           :left 90 :fwd 5
           :right 90 :fwd 5
           :left 45 :fwd 35
           :right 45 :fwd 60
           :right 45 :fwd 35
           :left 45 :fwd 5
           :right 90 :fwd 5
           :left 90 :fwd 5
           :right 45 :fwd 10
           :left 45 :fwd 10
           :left 90 (make-arc 270 :right 0.1)
           :left 100 :fwd 10
           :left 80 :fwd 40
           :right 90 :fwd 5
           :left 135 :fwd 60
           :left 130 :fwd 35
           :left 95 (make-arc 90 :right 0.15)
           :left 90 :fwd 10
           (make-arc 180 :right 0.08)
           :fwd 10 :left 90
           (make-arc 90 :right 0.15)
           :left 90 (make-arc 90 :left 0.1)
           :right 90 (make-arc 180 :right 0.15)
           :right 90 (make-arc 90 :left 0.1)
           :left 90 (make-arc 90 :right 0.15)
           :left 90 :fwd 20
           :left 90 (make-arc 270 :right 0.15)
           :left 90 :fwd 5
           :left 45 :fwd 5
           :right 45 :fwd 5
           :left 45 :fwd 5
           :right 45 :fwd 5
           :left 90 :fwd 5
           :right 60 :fwd 15
           :left 60 :fwd 40
           :right 45 :fwd 10
           :left 45 :fwd 25
           :right 90 :fwd 5
           :right 90 :fwd 10
           :left 90 :fwd 5
           :left 90 :fwd 10
           :right 90 :fwd 5
           :right 90 :fwd 10
           :left 90 :fwd 5
           :left 90 :fwd 10
           :right 90 :fwd 5
           :right 90 :fwd 25
           :left 45 :fwd 10
           :right 45 :fwd 17.5
           :right 60 :fwd 50
           :right 180 :fwd 150
           :left 60 :fwd 5
           :right 90 :fwd 20
           :right 90 :fwd 90
           :right 10 :fwd 15
           :left 10 :fwd 10
           :right 80 :fwd 18
           :left 80 :fwd 40
           :left 90 (make-arc 135 :right 1)
           :left 45 :fwd 40
           :left 90 (make-arc 180 :right 0.25)
           :left 90 :fwd 5
           :left 60 (make-arc 155 :right 0.8)
           :left 95 :fwd 20
           :right 45 :fwd 30
           :left 125 (make-arc 150 :right 1.5)
           :left 70 :fwd 10
           :left 45 :fwd 10
           :right 45 :fwd 25
           :right 45 :fwd 10
           :left 45 :fwd 10
           :left 65 (make-arc 135 :right 1.5)
           :left 70 :fwd 75
           :right 45 :fwd 15
           :left 45 :fwd 30
           :right 90 :fwd 5
           :left 90 :fwd 10
           :left 80 (make-arc 162.5 :right 1.5)
           :left 82 :fwd 100
           :right 45 :fwd 20
           :right 45 :fwd 10
           :left 90 :fwd 30
           :left 90 :fwd 20
           (make-arc 90 :right 0.1)
           :fwd 40 (make-arc 90 :right 0.1)
           :fwd 20
           :left 90 :fwd 12.5
           :right 90 :fwd 50
           :right 90 :fwd 12.5
           :left 90 :fwd 12.5
           :right 90 :fwd 50
           :left 90 :fwd 125
           :left 90 :fwd 5
           (make-arc 180 :right 0.1)
           :fwd 5
           :left 90 :fwd 200
           (make-arc 60 :left 0.2) (make-arc 30 :left 1)
           :right 90 :fwd 10
           :pen :up
           :fwd 60 :left 90 :fwd 7.5 :right 180
           :pen :down
           :fwd 400
           :pen :up
           :right 90 :fwd 10 :right 90
           :pen :down
           :fwd 400
           :pen :up
           :left 90 :fwd 10 :left 90
           :pen :down
           :fwd 400
           :pen :up
           :right 90 :fwd 3 :right 90
           :pen :down
           :fwd 400
           :pen :up
           :left 90 :fwd 3 :left 90
           :pen :down
           :fwd 400
           :pen :up
           :right 90 :fwd 10 :right 90
           :pen :down
           :fwd 399
           :pen :up
           :left 90 :fwd 25 :left 90
           :pen :down
           (repeat 40 [:left 90 :fwd 20 :right 180 :fwd 20 :left 90 :fwd 10])
           :pen :up
           :fwd 27.5 
           :pen :down
           :left 90 :fwd 68 (make-arc 90 :right 0.1) :fwd 14 (make-arc 90 :right 0.1) :fwd 68 :right 90 :fwd 25 :left 90 
           :fwd 7 (make-arc 90 :left 0.1) :fwd 14 (make-arc 90 :left 0.1) :fwd 7
           :fwd 68 (make-arc 90 :left 0.1) :right 90 :fwd 10
           :right 180 :fwd 10 :left 90 (make-arc 90 :right 0.1) :fwd 2.5 :left 90 :fwd 25
           :pen :up
           :fwd 22.5 :right 90 :fwd 33
           :pen :down
           :right 90 :fwd 50
           :pen :up
           :fwd 25
           :pen :down
           :fwd 12
           :pen :up
           :left 90 :fwd 10
           :pen :down
           :left 90 :fwd 12
           :pen :up
           :fwd 25
           :pen :down
           :fwd 50
           :pen :up
           :fwd 9 :right 90 :fwd 22.5 
           :pen :down
           :left 90 :fwd 10
           :pen :up
           :fwd 57.5 :left 90 :fwd 7 :right 90 
           :pen :down
           :fwd 89
           :pen :up
           :left 90 :fwd 11 :left 90
           :pen :down
           :fwd 89
           :pen :up
           :right 90 :fwd 41 :right 90 :fwd 35
           :pen :down
           :fwd 25
           :pen :up
           :right 90 :fwd 6.5 :right 90
           :pen :down
           :fwd 27.5
           :pen :up
           :right 180 :fwd 163
           :pen :down
           :fwd 18.5
           :pen :up
           :right 180 :fwd 4 :left 90 :fwd 10
           :pen :down
           :fwd 25 :right 90 :fwd -1 :left 90 (make-arc 540 :right 0.1) :fwd 30
           :pen :up
           :right 180 :fwd 33
           :pen :down
           :right 12 :fwd 28
           :pen :up
           :left 102 :fwd 22
           :left 102 :fwd 28
           :right 102 :fwd 140
           :left 90 :fwd 197.5
           :pen :down
           :right 90 :fwd 85
           :pen :up
           :right 90 :fwd 225
           :pen :down
           :right 90 :fwd 35
           :pen :up
           :fwd 20
           :pen :down
           :fwd 315
           :right 90 (make-arc 180 :left 0.15)
           :right 90 :fwd 230
           :pen :up
           :left 90 :fwd 5
           :pen :down
           :left 90 :fwd 230
           :left 90 :fwd 6
           :pen :up
           :fwd -6 :left 180
           :pen :down
           (make-arc 85 :left 0.15)
           :right 85 :fwd 70
           :right 90 (make-arc 15 :left 0.5)
           (make-arc 75 :left 0.1)
           (make-arc 75 :left 0.1)
           (make-arc 15 :left 0.5)
           (make-arc 15 :left 0.5)
           (make-arc 75 :left 0.1)
           (make-arc 75 :left 0.1)
           :right 75 :fwd 70
           (make-arc 30 :right 0.3)
           :right 60 :fwd 315
           (make-arc 90 :right 0.1)
           :right 10 :fwd 70
           :right 80 (make-arc 15 :left 0.5)
           (make-arc 75 :left 0.1)
           (make-arc 75 :left 0.1)
           (make-arc 15 :left 0.5)
           (make-arc 15 :left 0.5)
           (make-arc 75 :left 0.1)
           (make-arc 75 :left 0.1)
           :right 85 :fwd 70
           :right 80 (make-arc 90 :left 0.1)
           :fwd 10 (make-arc 90 :left 0.1)
           :fwd 10 (make-arc 90 :left 0.1)
           :fwd 7
           :pen :up
           :fwd -10 :left 90 :fwd 20
           :pen :down
           :fwd 25
           :pen :up
           :fwd 80 :right 90 :fwd 20
           :pen :down
           :right 90 :fwd 111
           :pen :up
           :fwd 10
           :pen :down
           :fwd 320
           :pen :up
           :fwd 8
           :pen :down
           :fwd 237
           :pen :up
           :left 90 :fwd 5
           :pen :down
           :left 90 :fwd 237
           :pen :up
           :fwd 8
           :pen :down
           :fwd 318
           :pen :up
           :fwd 10
           :pen :down
           :fwd 113
           :pen :up
           :left 90 :fwd 7
           :right 90 :fwd 5
           :fwd 62
           :left 90 :fwd 15
           :pen :down
           :right 90 (make-arc 180 :left 0.1)
           :fwd 66 (make-arc 180 :left 0.1)
           :fwd 66 (make-arc 180 :left 0.1)
           :right 90 :fwd 25
           :right 90 (make-arc 180 :left 0.1)
           :fwd 66 (make-arc 180 :left 0.1)
           :fwd 66 (make-arc 180 :left 0.1)
           :right 90 :fwd 27 (make-arc 180 :right 0.1)
           :fwd 90 (make-arc 180 :right 0.1)
           :fwd 15
           :pen :up
           :left 90 :fwd 22
           :left 90 :fwd 37
           :pen :down
           :right 90 :fwd 160
           :pen :up
           :fwd 7
           :pen :down
           :fwd 40
           :right 150 :fwd 25
           :pen :up
           :fwd 7
           :left 60 :fwd 5
           :pen :down
           :left 8 :fwd 15
           :pen :up
           :left 172 :fwd 35.5
           :pen :down
           :right 90 :fwd 40
           :right 90 (make-arc 180 :left 0.12)
           :right 90 :fwd 35
           :right 90 (make-arc 180 :left 0.12)
           :right 90 :fwd 30
           :right 90 (make-arc 60 :left 0.15)
           :fwd 12
           :pen :up
           :fwd 10
           :pen :down
           :right 45 :fwd 7
           :right 105 (make-arc 90 :left 0.08)
           :right 90 :fwd 3
           :left 90 :fwd 6
           :pen :up
           :left 10 :fwd 7
           :pen :down
           :fwd 30
           :pen :up
           :left 80 :fwd 20
           :left 90 :fwd 33
           :pen :down
           :fwd 6
           :left 90 :fwd 3           
           :right 90 (make-arc 90 :left 0.08)
           :right 90 :fwd 10
           :pen :up
           :right 60 :fwd 12
           :pen :down
           :fwd 12
           (make-arc 60 :left 0.15)
           :right 90 :fwd 27
           :right 90 (make-arc 180 :left 0.12)
           :right 90 :fwd 15
           :right 45 :fwd 23
           :pen :up
           :fwd 7
           :pen :down
           :right 23 :fwd 12
           :right 22 :fwd 5
           :pen :up
           :left 90 :fwd 90
           :pen :down
           :left 90 :fwd 7
           :right 22 :fwd 10
           :pen :up
           :right 67 :fwd 45
           :pen :down
           :right 90 :fwd 20
           :pen :up
           :left 90 :fwd 27
           :pen :down
           :left 90 :fwd 20
           :pen :up
           :fwd 41
           :right 91 :fwd 89
           :pen :down
           :left 90 (make-arc 80 :left 0.1) (make-arc 10 :left 3.95)
           (make-arc 10 :left 3.95) (make-arc 80 :left 0.1)
           :fwd 38
           :right 180 :fwd 38
           :left 90 :fwd 40
           (make-arc 90 :left 0.25) :fwd 7.5
           :right 90 :fwd 3
           :left 45 :fwd 20
           :right 180 :fwd 20
           :left 135 :fwd 72
           :pen :up
           :fwd 7
           :pen :down
           :fwd 60
           ;; :pen :up
           :fwd 10 :right 90 :fwd 120
           :left 90 :fwd 14
           :left 90 :fwd 120
           :right 90 :fwd 118.5
           :right 90 :fwd 167
           :left 90 :fwd 14
           :left 90 :fwd 167
           :right 90 :fwd 35
           :right 90 :fwd 167
           :left 90 :fwd 14
           :left 90 :fwd 167
           ;; :pen :up
           :right 90 :fwd 221
           :right 90 :fwd 237
           :left 45 :fwd 17
           :left 45 :fwd 4
           :left 90 :fwd 40
           :left 1.75 :fwd 210
           :pen :up
           :right 91.75 :fwd 28
           :right 90 :fwd 60
           :pen :down
           :fwd 120
           :left 90 :fwd 6
           :left 90 :fwd 25
           :right 60 :fwd 20
           :left 60 :fwd 7
           :left 110 :fwd 18
           :right 110 :fwd 40
           :right 100 :fwd 20
           :left 100 :fwd 6.5
           :left 70 :fwd 21
           :right 70 :fwd 30
           :pen :up
           :left 90 :fwd 19
           :left 90 :fwd 100
           :pen :down
           (make-arc 360 :left 0.1)
           :fwd 42
           :pen :up
           :left 90 :fwd 7 :left 90 :fwd 5
           :pen :down
           :fwd 32
           :pen :up
           :fwd 75 :left 90 :fwd 60
           :pen :down
           :right 90 (make-arc 90 :left 0.1)
           :right 90 (make-arc 90 :left 0.08) :fwd 20 (make-arc 90 :left 0.08)
           :left 90 :fwd 30 
           :left 90 (make-arc 90 :left 0.08)
           :right 90 (make-arc 90 :left 0.08)
           :fwd 12.5 (make-arc 90 :left 0.08)
           :right 180 (make-arc 90 :right 0.08)
           :fwd 2
           :left 90 :fwd 12
           :left 90 (make-arc 180 :right 0.08) :fwd 7 (make-arc 180 :right 0.08)
           :left 90 :fwd 12
           :pen :up
           :fwd 15 :left 90 :fwd 18
           :pen :down
           (make-arc 90 :right 0.1) :fwd 15 (make-arc 90 :right 0.1)
           :right 90 :fwd 25
           :right 180 :fwd 25
           (make-arc 90 :right 0.1) :fwd 30
           (make-arc 90 :right 0.1) :fwd 25
           (make-arc 90 :right 0.1)
           :right 180 (make-arc 90 :left 0.1) :right 90 (make-arc 90 :left 0.1)
           :fwd 15 (make-arc 90 :left 0.1)
           :right 90 (make-arc 90 :left 0.1) :fwd 10
           :right 90 :fwd 5 
           :right 90 :fwd 15 
           :left 90 :fwd 5 
           :left 90 :fwd 40 
           :left 90 :fwd 5 
           :left 90 :fwd 15 
           :right 90 :fwd 5
           :pen :up
           :fwd 20 :right 90 :fwd 4 :left 90
           :pen :down
           (make-arc 360 :left 0.15)
           :pen :up
           :right 180 :fwd 70 :right 90 :fwd 30 :left 135 :fwd 25
           :pen :down
           (make-arc 360 :left 0.1) :fwd 137 
           :pen :up
           :left 45 :fwd 37.5 :left 45 :fwd 37.5
           :pen :down
           :left 135 :fwd 55 :right 180 :fwd 10
           :left 90 :fwd 15 :right 90 (make-arc 90 :left 0.1)
           :right 90 :fwd 25 :right 90 :fwd 10 :right 90 :fwd 5 :left 90 :fwd 10
           :pen :up
           :fwd 25 :left 90 :fwd 35
           :pen :down
           :fwd 20 (make-arc 150 :right 0.1)
           :pen :up
           :left 150 :fwd 17
           :pen :down
           :left 90 :fwd 13 :right 180 :fwd 30
           :pen :up
           :fwd 88 :left 90 :fwd 30 :right 180
           :pen :down
           :fwd 118
           :right 105 :fwd 20 :right 75 :fwd 25 :right 75 :fwd 20
           :right 180 :fwd 20 :left 19 :fwd 115
           :right 124 :fwd 25 :left 85 :fwd 15 :right 85 :fwd 30 :right 60 :fwd 60
           :pen :up
           :right 120 :fwd 158
           :left 90 :fwd 80
           :pen :down
           (make-arc 360 :left 0.2)
           :pen :up
           :right 90 :fwd 5.5 :left 90
           :pen :down
           (make-arc 360 :left 0.3)
           :pen :up
           :right 90 :fwd 32 :left 90
           :pen :down
           (make-arc 360 :left 0.8)
           :pen :up
           :right 180 :fwd 117 :right 90 :fwd 130
           :pen :down
           :right 180 :fwd 75
           :right 90 :fwd 45
           :right 90 :fwd 10 
           :right 90 :fwd 5
           :left 90 :fwd 5
           :pen :up
           :right 90 :fwd 40
           :right 90 :fwd 100
           :pen :down
           :right 90 (make-arc 90 :left 0.15)
           :right 90 (make-arc 180 :left 0.1)
           :right 90 :fwd 10
           :right 90 :fwd 50 :left 90 :fwd 80 :left 90 :fwd 50 :right 90 :fwd 10
           :right 90 (make-arc 180 :left 0.1)
           :right 90 (make-arc 90 :left 0.15)
           :fwd 90
           (make-arc 90 :left 0.15)
           :right 90 (make-arc 180 :left 0.1)
           :right 90 :fwd 100
           :right 90 (make-arc 180 :left 0.1)
           :right 90 (make-arc 90 :left 0.15)
           :fwd 90
           (make-arc 90 :left 0.15)
           :left 90 :fwd 110
           :pen :up
           :right 90 :fwd 12 :right 90
           :pen :down
           :fwd 110
           :pen :up
           :left 90 :fwd 100 
           :pen :down
           :left 90 :fwd 110
           :pen :up
           :right 90 :fwd 10
           :pen :down
           :right 90 :fwd 110
           :pen :up
           :fwd 30 :right 90 :fwd 20
           :pen :down
           :fwd 80
           :right 90 :fwd 50
           :right 90 :fwd 80
           :right 90 :fwd 30
           :pen :up
           :left 90 :fwd 30
           :left 90 :fwd 60
           :pen :down
           :right 90 :fwd 90
           :right 45 :fwd 20
           :left 45 :fwd 40
           :left 85 (make-arc 10 :left 4)
           :left 85 :fwd 40
           :left 45 :fwd 20
           :right 45 :fwd 90
           :fwd -90
           :left 90 :fwd 10
           ;; :pen :up
           :fwd -5 :left 90 :fwd 21 :right 90 
           :pen :down
           (make-arc 360 :left 0.2)
           :pen :up
           :fwd 157 :left 90 
           :pen :down
           :fwd 275
           :pen :up
           :fwd 75
           :pen :down
           :fwd 385
           :pen :up
           :right 90 :fwd 12 :right 90
           :pen :down
           :fwd 385
           :pen :up
           :fwd 75
           :pen :down
           :fwd 500 (make-arc 90 :right 0.1)
           :fwd 70 :left 90 :fwd 5 :right 90 :fwd 5 :left 90 :fwd 5 :right 90 :fwd 15
           (make-arc 180 :right 0.12) :fwd 15 :right 90 :fwd 5 :left 90 :fwd 5 
           :pen :up
           :left 90 :fwd 5 :left 90 :fwd 12.5 :left 90
           :pen :down
           :fwd 15
           :pen :up
           :right 180 :fwd 15 :left 90 :fwd 6 :right 90
           :pen :down
           :fwd 5
           :left 90 :fwd 5 :left 90 :fwd 5 :fwd -5 :left 90 
           :fwd 81.5 (make-arc 90 :left 0.1) :fwd 230
           :pen :up
           :fwd 260
           :pen :down
           :left 90 :fwd 20
           :left 90 (make-arc 90 :right 0.08) :fwd 5 (make-arc 90 :right 0.08) :fwd 75
           (make-arc 90 :right 0.08) :fwd 5 (make-arc 90 :right 0.08) 
           :left 90 :fwd 20 :fwd 13 :fwd 20 
           :left 90 (make-arc 90 :right 0.08)
           :fwd 5 (make-arc 90 :right 0.08)
           :fwd 75 (make-arc 90 :right 0.08)
           :fwd 5 (make-arc 90 :right 0.08)
           :fwd 75 :fwd -75
           :left 90 :fwd 20 :fwd 13 :fwd 20 :right 90 :fwd 75 :fwd -32.5 :right 90
           :pen :up
           :fwd 66
           :pen :down
           :fwd 10 :right 90 :fwd 10 :right 90 :fwd 10 :fwd -10 
           :left 90 :fwd 32.5 (make-arc 90 :left 0.08) :fwd 5 (make-arc 90 :left 0.08)
           :right 90 :fwd 20 :fwd 13 :fwd 20
           :right 90 (make-arc 90 :left 0.08) :fwd 5 (make-arc 90 :left 0.08)
           :fwd 75 (make-arc 90 :left 0.08) :fwd 5 (make-arc 90 :left 0.08)
           :right 90 :fwd 20 :fwd 13 :fwd 20 :right 90 (make-arc 90 :left 0.08) :fwd 5 (make-arc 90 :left 0.08) :fwd 75 (make-arc 90 :left 0.08) :fwd 5 (make-arc 90 :left 0.08) :fwd 75 :right 90 :fwd 20 :fwd 13 :fwd 20 :right 90 :fwd 75
           :fwd -32.5 :left 90 :pen :up :fwd 13 :pen :down :fwd 15
           :pen :up
           :left 90 :fwd 10 
           :pen :down
           :left 90 :fwd 13
           :pen :up
           :left 90 :fwd 42.5 :right 90 :fwd 30
           :pen :down
           :left 90 :fwd 25 (make-arc 90 :right 0.4)
           :fwd 3 (make-arc 90 :left 0.4) :fwd 200 
           :left 90 :fwd 5 
           :right 90 :fwd 5 
           :left 90 :fwd 10 
           :left 100 :fwd 10 (make-arc 200 :right 0.06) :fwd 10 
           :left 30 (make-arc 60 :right 0.12) 
           :left 60 :fwd 10 (make-arc 200 :right 0.06) :fwd 10
           :left 90 :fwd 10 
           :left 90 :fwd 5 
           :right 90 :fwd 5 
           :left 90 :fwd 20 
           (make-arc 180 :right 0.1) :fwd 20
           :left 90 :fwd 5 
           :right 90 :fwd 17
           :right 90 :fwd 5 
           :left 90 :fwd 210
           (make-arc 90 :right 0.4) :fwd 5 (make-arc 90 :left 0.4) :fwd 15
           :pen :up
           :left 90 :fwd 100 :left 90 :fwd 205 :left 90 :fwd 50 :right 180
           :pen :down
           :fwd 33 :left 90 :fwd 13 :left 90 :fwd 33
           :pen :up
           :left 90 :fwd 340
           :pen :down
           :right 90 :fwd 75 
           :left 90 :fwd 320
           :left 90 :fwd 75 
           :left 90 :fwd 320
           :left 90 :fwd 75 :fwd 25
           :left 90 :fwd 320
           :left 90 :fwd 25
           :pen :up
           :right 180 :fwd 40
           :pen :down
           :fwd 60 (make-arc 90 :right 0.08) 
           :fwd 150 (make-arc 90 :right 0.08) 
           :fwd 60 (make-arc 90 :right 0.08) 
           :fwd 150 (make-arc 90 :right 0.08)
           :right 180 (make-arc 90 :left 0.08)
           :pen :up
           :fwd 180
           :pen :down
           :fwd 130 (make-arc 90 :left 0.08)
           :fwd 60 (make-arc 90 :left 0.08)
           :fwd 130 (make-arc 90 :left 0.08)
           :fwd 60 (make-arc 90 :left 0.08)
           :fwd 65 :left 90 :fwd 69
           :pen :up
           :left 90 :fwd 115
           :pen :down
           :left 180 :fwd 10
           (make-arc 90 :right 0.08)
           :fwd 60 (make-arc 90 :right 0.08)
           :pen :up
           :left 90 :fwd 350
           :left 90 :fwd 125
           :pen :down
           :left 225 (make-arc 270 :right 0.2) 
           :left 45 :fwd 170 
           :left 45 (make-arc 270 :right 0.2) 
           :left 45 :fwd 170
           :pen :up
           :fwd 55 :left 90 :fwd 5
           :pen :down
           :right 90 
           (make-arc 360 :left 0.16)
           :pen :up
           :left 90 :fwd -10
           :pen :down
           :right 90 
           (make-arc 360 :left 0.32)
           :pen :up
           :right 180 :fwd 290
           :pen :down
           (make-arc 360 :right 0.32)
           :pen :up
           :right 90 :fwd 10 
           :pen :down
           :left 90 
           (make-arc 360 :right 0.16)
           :pen :up
           :fwd 215
           :pen :down
           (make-arc 360 :right 0.16)
           :pen :up
           :left 90 :fwd 10
           :pen :down
           :right 90 (make-arc 360 :right 0.32)
           :pen :up
           :right 180 :fwd 55 
           :left 90 :fwd 17 :right 90
           :pen :down
           :left 135 (make-arc 270 :left 0.2)
           :right 45 :fwd 100
           :right 45 (make-arc 270 :left 0.2) 
           :right 45 :fwd 100
           :pen :up
           :fwd 225 
           :right 90 :fwd 52.5
           :pen :down
           :right 90 (make-arc 360 :right 0.2)
           :pen :up
           :fwd 910 
           :right 90 :fwd 130
           :pen :down
           :right 90 :fwd 100 
           :right 45 :fwd 50 
           :left 45 :fwd 500 
           :left 45 :fwd 75 
           :right 45 :fwd 158
           :pen :up
           :right 90 :fwd 112 :right 90 :fwd 23
           :pen :down
           :right 100 (make-arc 19 :left 3)
           :pen :up
           :left 81 :fwd 165 :left 90 :fwd 72 :right 180
           :pen :down
           :left 15 (make-arc 11 :right 3)
           :left 86 :fwd 50
           :left 90 (make-arc 188 :right 1.427)
           :pen :up
           :left 98 :fwd 125 
           :pen :down
           :left 90 :fwd 20
           :pen :up
           :right 90 :fwd 170 
           :right 90 :left 3
           :pen :down
           (make-arc 36 :right 1.5)
           :pen :up
           :left 33 :fwd 100 :right 90 :fwd 50 :right 90 
           :pen :down
           :fwd 50 
           :left 90 :fwd 120 
           :left 90 :fwd 75 
           :left 90 :fwd 120 
           :left 90 :fwd 75 
           :left 90 :fwd 120 
           :fwd 20 (make-arc 60 :right 0.5) 
           (make-arc 60 :left 0.5) 
           :fwd 210 (make-arc 45 :left 0.5) 
           :fwd 65 (make-arc 45 :right 0.5)
           :fwd 180
           :left 90 :fwd 13 :left 90 :fwd 190
           (make-arc 45 :left 0.5) :fwd 65
           (make-arc 45 :right 0.5) :fwd 190
           (make-arc 45 :right 0.5) :fwd 15 (make-arc 45 :left 0.5) :fwd 30
           (repeat 2 [:fwd 119 :right 90 :fwd 12 :right 90 :fwd 120 :left 90 :fwd 15 :left 90])
           :fwd 119
           ]))


(defn draw [shape scale]
  (js/browserdraw
     (into-array (flatten shape))
     scale))

(draw (train-path-1) 0.25)
(println "Done!")