Edit and compile if you like:
\documentclass[tikz]{standalone}\usetikzlibrary{tqft,calc}\begin{document}\begin{tikzpicture}[every tqft/.append style={transform shape, rotate=90, tqft/circle x radius=7pt,tqft/boundary separation=1cm, tqft/view from=incoming}]% cobordism at upper left\pic[tqft/cylinder to prior,name=a,every incoming lower boundary component/.style={draw},every outgoing lower boundary component/.style={draw},cobordism edge/.style={draw},];\pic[tqft/cup,cobordism edge/.style={draw},at=(a-outgoing boundary),];% annotation of cobordism at upper left\coordinate (temp1) at ($(a-incoming boundary.west)!0.3!(a-outgoing boundary.west) +(0,0.08)$);\coordinate (temp2) at ($(a-incoming boundary.west)!0.7!(a-outgoing boundary.west) +(0,-0.08)$);\draw[dashed](temp1) node[below] {$\tau_1$} to[bend right=40] ++(0,0.5)(temp2) node[below] {$\tau_2$} to[bend left=40] ++(0,0.5);\draw[->] ($(a-incoming boundary.west) - (0.2,0)$) node[below] {$\sigma$} to[bend left=40] ++(0,0.5);\draw (a-outgoing boundary) ++(0.85,0) node {$+$};\draw[->] ($(a-incoming boundary.east)+(0.1,0.1)$) to[bend left=13] +(0.9,-0.2);\node[above] at ($(a-incoming boundary.east)+(0.55,0.1)$) {$\tau$};% cobordism at upper right consisting of two 'pants' and a cup\pic[tqft/pair of pants,
Click to download: closed-string-topologies.tex
Open in Overleaf: closed-string-topologies.tex
This file is available on tikz.netlify.app and on GitHub and is MIT licensed.
See more on the author page of Janosh Riebesell..