Based on experiments Tremmel (1995) suggests the following shape palettes:
tremmel_shape_pal(overlap = FALSE, alt = FALSE, n3alt = NULL)
use an empty circle instead of a solid circle when
If two symbols, then use a solid circle and plus sign.
If three symbols, then use a solid circle, empty circle, and an empty triangle. However, that set of symbols does not satisfy the requirement that each symbol should differ from the other symbols in the same feature dimension. A set of three symbols that satisfies this is a circle (curvature), plus sign (number of terminators), triangle (line orientation).
This palette supports up to three values. If more than three groups of data, then separate the groups into different plots.
Tremmel, Lothar, (1995) "The Visual Separability of Plotting Symbols in Scatterplots" Journal of Computational and Graphical Statistics, https://www.jstor.org/stable/1390760