⎕IO←0
a ← 200-↑(20 10)(10 15)(10 90)(60 130)(60 110)(60 130)(110 90)(110 15)(100 10)
b ← 200-↑(45 10)(75 10)(45 10)(75 10)(60 10)(60 80)
c ← 200-↑(60 60)(75 45)(60 30)(45 45)(60 60)(75 45)(60 30)(45 45)
b2s←{W X Y Z←⍵ ⋄ '[WXYZ]'⎕R{⍕⍎⍵.Match}⊢'<path d="M W C X, Y, Z" stroke="black" fill="transparent"/>'}
bezier←{CM←(⌽¯1↑⍨n),⍨(¯1↑⍨n),6×=/↑⍳2⍴n←2-⍨≢⍵⋄M←4 1 0[2⌊|-/↑⍳2⍴n]⋄B←(0⌷⍵)⍪(M⌹⍨CM+.×⍵)⍪⊃⌽↓⍵⋄⍵∘{(⍵⌷⍺)(3÷⍨2 1+.×a)(3÷⍨1 2+.×a←B⌷⍨⊂0 1+⍵)(⍺⌷⍨⍵+1)}¨⍳1-⍨≢⍵}
svg←'</svg>',⍨'<svg width="300" height="300">',⊃,/⊃,/b2s¨∘bezier¨a b c