Jahnke—Emde Style Plots

diagram from a book

A famous volume by E. Jahnke and F. Emde featured a collection of plots of bivariate functions of unparalleled quality and detail, all drawn by hand. The graphs plotted by computer software do not come even close to these century-old graphs. The goal of this project is to try to fill the gap between mesh-based graphs and these hand-drawn graphs including details such as level curves, gradient ascent and descent lines, saddle points and more.

Report

We have successfully developed and implemented the three basic components of the Jahnke—Emde style plotting:

  1. Constructing the smooth level curves with a variation of the marching squares algorithm, components separation and interpolation.
  2. Efficient search of critical points with Hessian-based gradient descent, their clustering and classification by type.
  3. Building the gradient lines in computationally- and data-efficient manner.

Each of these steps presented a challenge in optimization, and striking a balance between computational efficiency and precision required a careful analysis and testing.

All of components have been combined in a working prototype using Plotly engine, and deliver a very decent result, accompanied with some extra decorations (pole caps, domain boundary scrirt, etc.).

The results are available on GitHub repository.

diagram of the components

All projects