Umbilic Torus Surface
Loading the math board and drawing, please wait…
This GeoGebra example constructs an Umbilic Torus using sequence and surface commands, demonstrating complex three-dimensional geometry, continuity, and rotational symmetry. It integrates concepts from coordinate geometry, parametric equations, and calculus, illustrating how step functions and combinatorial arrangements can generate intricate surface meshes. The model is suitable for advanced high school and undergraduate mathematics courses exploring spatial geometry, calculus, and parametric surfaces.
GeoGebra Commands & Parameters
Sequence((-π) + (((2 * π)) / n * k), k, 0, n) → L_1, {-3.141592653589793, -3.036872898470133, -2.9321531433504737, -2.827433388230814, -2.722713633111154, -2.6179938779914944, -2.5132741228718345, -2.408554367752175, -2.303834612632515, -2.199114857512855, -2.0943951023931957, -1.9896753472735358, -1.8849555921538759, -1.7802358370342162, -1.6755160819145565, -1.5707963267948966, -1.4660765716752369, -1.3613568165555772, -1.2566370614359172, -1.1519173063162575, -1.0471975511965979, -0.9424777960769379, -0.8377580409572785, -0.7330382858376185, -0.6283185307179586, -0.5235987755982991, -0.41887902047863923, -0.3141592653589793, -0.20943951023931984, -0.10471975511965992, 0, 0.10471975511965947, 0.2094395102393194, 0.3141592653589793, 0.4188790204786388, 0.5235987755982987, 0.6283185307179586, 0.7330382858376181, 0.837758040957278, 0.9424777960769379, 1.0471975511965974, 1.1519173063162569, 1.2566370614359172, 1.3613568165555767, 1.4660765716752362, 1.5707963267948966, 1.675516081914556, 1.7802358370342155, 1.8849555921538759, 1.9896753472735353, 2.094395102393195, 2.199114857512855, 2.3038346126325147, 2.408554367752174, 2.5132741228718345, 2.617993877991494, 2.7227136331111534, 2.827433388230814, 2.9321531433504733, 3.0368728984701328, 3.141592653589793}Sequence((-π) + (((2 * π)) / n * (k + 1)), k, 0, n) → L_2, {-3.036872898470133, -2.9321531433504737, -2.827433388230814, -2.722713633111154, -2.6179938779914944, -2.5132741228718345, -2.408554367752175, -2.303834612632515, -2.199114857512855, -2.0943951023931957, -1.9896753472735358, -1.8849555921538759, -1.7802358370342162, -1.6755160819145565, -1.5707963267948966, -1.4660765716752369, -1.3613568165555772, -1.2566370614359172, -1.1519173063162575, -1.0471975511965979, -0.9424777960769379, -0.8377580409572785, -0.7330382858376185, -0.6283185307179586, -0.5235987755982991, -0.41887902047863923, -0.3141592653589793, -0.20943951023931984, -0.10471975511965992, 0, 0.10471975511965947, 0.2094395102393194, 0.3141592653589793, 0.4188790204786388, 0.5235987755982987, 0.6283185307179586, 0.7330382858376181, 0.837758040957278, 0.9424777960769379, 1.0471975511965974, 1.1519173063162569, 1.2566370614359172, 1.3613568165555767, 1.4660765716752362, 1.5707963267948966, 1.675516081914556, 1.7802358370342155, 1.8849555921538759, 1.9896753472735353, 2.094395102393195, 2.199114857512855, 2.3038346126325147, 2.408554367752174, 2.5132741228718345, 2.617993877991494, 2.7227136331111534, 2.827433388230814, 2.9321531433504733, 3.0368728984701328, 3.141592653589793, 3.2463124087094526}Sequence(Surface[Fx(u, v), Fy(u, v), Fz(u, v), u, (-π), π, v, Element[L_1, k], Element[L_2, k]], k, 1, n) → L_3, {(((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v)))), (((sin(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), ((cos(u) * (7 + cos(u / 3 - (2 * v)) + (2 * cos(u / 3 + v))))), (sin(u / 3 - (2 * v)) + (2 * sin(u / 3 + v))))}Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, (-π), π, v, (-π), π) → aSurface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 1], Element[L_2, 1], v, (-π), π) → A1Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 2], Element[L_2, 2], v, (-π), π) → A2Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 3], Element[L_2, 3], v, (-π), π) → A3Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 4], Element[L_2, 4], v, (-π), π) → A4Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 5], Element[L_2, 5], v, (-π), π) → A5Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 6], Element[L_2, 6], v, (-π), π) → A6Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 7], Element[L_2, 7], v, (-π), π) → A7Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 8], Element[L_2, 8], v, (-π), π) → A8Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 9], Element[L_2, 9], v, (-π), π) → A9Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 10], Element[L_2, 10], v, (-π), π) → A10Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 11], Element[L_2, 11], v, (-π), π) → A11Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 12], Element[L_2, 12], v, (-π), π) → A12Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 13], Element[L_2, 13], v, (-π), π) → A13Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 14], Element[L_2, 14], v, (-π), π) → A14Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 15], Element[L_2, 15], v, (-π), π) → A15Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 16], Element[L_2, 16], v, (-π), π) → A16Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 17], Element[L_2, 17], v, (-π), π) → A17Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 18], Element[L_2, 18], v, (-π), π) → A18Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 19], Element[L_2, 19], v, (-π), π) → A19Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 20], Element[L_2, 20], v, (-π), π) → A20Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 21], Element[L_2, 21], v, (-π), π) → A21Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 22], Element[L_2, 22], v, (-π), π) → A22Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 23], Element[L_2, 23], v, (-π), π) → A23Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 24], Element[L_2, 24], v, (-π), π) → A24Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 25], Element[L_2, 25], v, (-π), π) → A25Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 26], Element[L_2, 26], v, (-π), π) → A26Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 27], Element[L_2, 27], v, (-π), π) → A27Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 28], Element[L_2, 28], v, (-π), π) → A28Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 29], Element[L_2, 29], v, (-π), π) → A29Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 30], Element[L_2, 30], v, (-π), π) → A30Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 31], Element[L_2, 31], v, (-π), π) → A31Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 32], Element[L_2, 32], v, (-π), π) → A32Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 33], Element[L_2, 33], v, (-π), π) → A33Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 34], Element[L_2, 34], v, (-π), π) → A34Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 35], Element[L_2, 35], v, (-π), π) → A35Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 36], Element[L_2, 36], v, (-π), π) → A36Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 37], Element[L_2, 37], v, (-π), π) → A37Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 38], Element[L_2, 38], v, (-π), π) → A38Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 39], Element[L_2, 39], v, (-π), π) → A39Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 40], Element[L_2, 40], v, (-π), π) → A40Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 41], Element[L_2, 41], v, (-π), π) → A41Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 42], Element[L_2, 42], v, (-π), π) → A42Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 43], Element[L_2, 43], v, (-π), π) → A43Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 44], Element[L_2, 44], v, (-π), π) → A44Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 45], Element[L_2, 45], v, (-π), π) → A45Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 46], Element[L_2, 46], v, (-π), π) → A46Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 47], Element[L_2, 47], v, (-π), π) → A47Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 48], Element[L_2, 48], v, (-π), π) → A48Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 49], Element[L_2, 49], v, (-π), π) → A49Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 50], Element[L_2, 50], v, (-π), π) → A50Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 51], Element[L_2, 51], v, (-π), π) → A51Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 52], Element[L_2, 52], v, (-π), π) → A52Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 53], Element[L_2, 53], v, (-π), π) → A53Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 54], Element[L_2, 54], v, (-π), π) → A54Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 55], Element[L_2, 55], v, (-π), π) → A55Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 56], Element[L_2, 56], v, (-π), π) → A56Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 57], Element[L_2, 57], v, (-π), π) → A57Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 58], Element[L_2, 58], v, (-π), π) → A58Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 59], Element[L_2, 59], v, (-π), π) → A59Surface(Fx(u, v), Fy(u, v), Fz(u, v), u, Element[L_1, 60], Element[L_2, 60], v, (-π), π) → A60
AI Drawing Prompt Reference
Create a 3D visualization of an “Umbilic Torus” as a parameterized surface mesh. Use two parameters: let u run from -π to π and use an evenly spaced discretization into n segments to define a sequence of u values, while v spans from -π to π. Generate the surface points by the parametric equations x = sin(u) * (7 + cos(u/3 - 2v) + 2*cos(u/3 + v)), y = cos(u) * (7 + cos(u/3 - 2v) + 2*cos(u/3 + v)), and z = sin(u/3 - 2v) + 2*sin(u/3 + v). Then split the surface into multiple adjacent surface patches using successive u intervals (for different segment choices) over the full v range, so the patches connect into a continuous, rotationally symmetric, intricate torus-like geometry.
The prompt above was compiled from the original drawing commands and is for reference only.