I wonder whether it is possible to draw the "logo" of string theory with LaTeX. I think it is doable, but not sure how to do it. Any guru wants to give it a shot?

3-D projection of a Calbi-Yau manifold

Source: https://commons.wikimedia.org/wiki/File:Calabi-Yau-alternate.png and (in better quality) https://commons.wikimedia.org/wiki/File:Calabi-Yau.png (both own work by Lunch; CC BY-SA 2.5)

  • 2
    In TeX?!! I don't believe it is possible.
    – Sigur
    Commented Nov 9, 2013 at 14:59
  • 5
    As long as you can provide us with its function to plot, PSTricks can happily do it, IMHO. Commented Nov 9, 2013 at 15:21
  • 2
    @Marienplatz, here is it: en.wikipedia.org/wiki/Calabi%E2%80%93Yau_manifold
    – Sigur
    Commented Nov 9, 2013 at 16:34
  • 3
    The problem is on the borders of TeX & Co., but it is interesting, so let our PSTricks ot TikZ/PGF specialists find a solution. I am voting for reopening. Commented Nov 9, 2013 at 18:29
  • 3
    I would second @Marienplatz : if you manage to provide a "suitable" description of the involved surface(s) along with the color information, we can think about it. "Suitable" means either a parameterized surface x(u,v), y(u,v), z(y,v) with color data C or a huge data table X Y Z C where C can be RGB or scalar color values. But a task like "do research on string theory to understand suitable representations of the object given as rendition" is unrelated to tex.sx . Unfortunately, the mentioned wikipedia link does not appear to answer that question. Commented Nov 10, 2013 at 11:55

1 Answer 1


I searched a bit on the net and found a parametrization for cross-sections of the quintic 6D Calabi-Yau, so here's the Asympote implementation:



import graph3;


int k1, k2, n = 5;
real alpha = 0.3*pi;

// cross section of the quintic 6D Calabi-Yau manifold
triple cy(pair z) {  

  pair z1, z2;

  if(z==(0,0)) {
    z1 = exp(2*pi*I*k1/n);
    z2 = 0;
  } else {
    z1 = exp(2*pi*I*k1/n)*exp(log(cos(I*z))*2/n);
    z2 = exp(2*pi*I*k2/n)*exp(log(-I*sin(I*z))*2/n);

  return (z2.x, cos(alpha)*z1.y + sin(alpha)*z2.y, z1.x);


for(k1=0; k1<n; ++k1) {
  for(k2=0; k2<n; ++k2) {
    surface s = surface(cy,(-1,0),(1,0.5*pi),20,20);



enter image description here

Don't know which one is shown in your "logo", but that's at least a Calabi-Yau manifold. If you view the resulting PDF with acroread, you can rotate the beast.

  • 1
    This is better than the original! You can also use the opacity option draw(s,red+opacity(0.6)); and modify currentlight to give part of the red/blue appearance.
    – alfC
    Commented Feb 1, 2014 at 3:56
  • I was not able to compile this latex code in Overleaf or on my Mac with a full latex installation. I don't see any errors in the log file only warnings such as: No file c3f935e53c8b4367b319754137b94ccc.aux. \openout1 = c3f935e53c8b4367b319754137b94ccc.aux'. ... Package asymptote Warning: file c3f935e53c8b4367b319754137b94ccc-1.eps' not fo und on input line 40. Any idea?
    – itart
    Commented Jan 30, 2020 at 12:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .