--- /dev/null
+box -2,-2,18,8
+A B C triangle 13,5,12
+c1 = circle(A, B, C)
+D = center(c1)
+c2 = incircle(A, B, C)
+E = center(c2)
+F = intersection(line(A.C), perpendicular(line(A.C), D))
+G = point(circle(A, B, C), arg(line(D.F)):)
+H = midpoint(F.G)
+c3 = circle(H, radius(incircle(A, B, C)))
+
+I = projection(E, line(B.C))
+J = projection(E, line(A.B))
+K = projection(E, line(A.C))
+L = intersection(line(A.B), line(K.E))
+M = projection(L, line(B.C))
+draw
+ (A.B.C)
+ c1 0: 180:
+ c2
+ c3
+ D.G dashed
+ E.I dashed
+ E.J dashed
+ K.L dashed
+ L.M dashed
+ A; B; C; D; E; F; G; H; I; J; K; L
+end
+
+label
+ A, C, B right
+ A -90:; B -90:; C 0:; D -90:; E -45:; F -30:; G 90:; H 0:; I 0:; J -90:; K 90:; L -90:; M 0:
+ E, I, B right
+ A, J, E right
+ E, K, A right
+ M, L, E right
+ B, A, C double
+ J, E, L double
+ B, L, M double
+end