This is a nice use of MetaPost and the figures look elegant! The shading and textures seems to be a Russian aesthetic, as it reminds me of Irodov and other Mir Publishers books from my childhood in India.<p>For those who may not know much about MetaPost, it was originally written by Donald Knuth's student John Hobby, to a great extent based (both syntax and code of the program itself) on METAFONT, written by Knuth for designing fonts, as the companion to TeX. The idea is to describe shapes—either shapes of letters (glyphs in the typeface) in case of METAFONT, or other shapes in case of MetaPost—by telling the computer how to draw them, i.e. writing a program that describes the shape. The program automatically computes intersections of lines, joins points using “most pleasing curves” (Hobby splines), etc. See for example Figure 6 in this post whose code is simply<p><pre><code> beginfig(6);
draw sphere.c(1.2cm);
draw sphere.c(2.4cm) shifted (2cm, 0);
endfig;
</code></pre>
after the author has defined the sphere.c function (macro) with shading and shadows etc (<a href="https://github.com/jemmybutton/fiziko/blob/2ccb6e1/fiziko.mp#L692-L723" rel="nofollow">https://github.com/jemmybutton/fiziko/blob/2ccb6e1/fiziko.mp...</a>).<p>It's really a fantastic way to draw for certain people, but it requires you to think about the shape to a greater level of detail (enough to write a program basically) than simply drawing it, so it's not for everyone. The syntax of other similar programs like TikZ and Asymptote has also been greatly influenced by that of METAFONT/MetaPost.<p>BTW the author of this post here (jemmybutton / Sergey Slyusarev) is also the author of [Fancy Euclid's “Elements” in TeX] that was posted here a while ago: <a href="https://news.ycombinator.com/item?id=20019616" rel="nofollow">https://news.ycombinator.com/item?id=20019616</a>