Nice...
just for a bit of trivia, if you want a correctly profiled tooth, the shape can be obtained by wrapping string around the shaft, and tracing a point on the tight string as it's unwound.
For a rack, the diameter is effectively infinite, so the tooth profile is straight, not curved.
Means that you can machine a "rack" then use it to cut the teeth on any sized gear, and they will mesh.