Lawson's Minimal Surface - Questions

Posted this in Asking for Tutorials thread:

Lawson’s minimal surface (or something comparable):

https://imaginary.org/hands-on/lawso…ace-of-genus-2

It appears to have non-symmetrical edges. They seem to
converge at the center and widen out the further away from
the center they get.

It also looks as though the edges thicken the further away
from center they get.

I’ve seen this described elsewhere as a sort of logarithmic
grid.

I’m no math wizard, so, I could be wrong on any/all of this.

Blender seems to do (subdivide) symmetrical, but not non or
asymmetrical (that I’ve noticed).

I could be wrong on that too, I’m no blender whiz.

I’ve looked at attempting to subdivide a plane and then roll it
up into a donut, but, with symmetrical edges and no way, that
I’m aware of to adjust the edges as shown in the above linked
example, I could just as easily use the mesh Torus Knot.

Is there a way to do this using a Math Function xyz preset?

Would this be more easily done using a python script?

Or perhaps using the Sverchok addon and a script node?

Or what?

I don’t understand the formula for Lawson’s minimal surface, even if I did,
I have no idea how to port it over to a python script or a Math Function xyz
preset or if it’s even possible.

I have used: MathMod, TopMod, K3DSurf (all of which can export to Mesh) and looked at the program referred to in the link “Surfer” (under “Programs”)but, there’s no examples on this.

Under MathMode IsoSurfaces, there is a similar example: “Wired Torus”, but it’s woven:


Thanx

do you have math formulas 3D?

we do have some addons for 3D surfaces

happy bl

I’ve got Mesh / Math Functions as well as Sverchok.

Math Functions including:

Z, XYZ Surface and Solids

Anything else (or more specific) you might recommend?

Thanx

it is interesting but can you show the math formulas
so we can test it

do you have formulas as parametric equations too ?
there is another algo that can be use to make surfaces
but have to find it first

did not find formulas on web !

thanks
happy bl

Here’s

Lawson talking about minimal surfaces (heavy math)

  • PDF

Here’s the script of the Wired Torus - if that helps - (isosurface - not parametric) from MathMod:

{
“Iso3D”: {
“Component”: [
“Wired Torus”
],
“Const”: [
“A=.2”,
“B=.2”,
“C=1”,
“D=.04”,
“E=1”,
“th=pi/A”,
“ph=pi/B”
],
“Description”: [
"Wired Torus_01 by Abderrahman Taha 26/12/2015. The mesh formula is from the PovRay team: http://www.povray.org/ "
],
“Funct”: [
“r=(x%(A*2))”,
“r=abs(if(r(x,y,z,t)<0,r(x,y,z,t)+A,r(x,y,z,t)-A))C",
"r2=(y-cos(z
ph)*D)*E”,
“temp=-sqrt(r2(x,y,z,t)*r2(x,y,z,t)+r(x,y,z,t)r(x,y,z,t))",
"r=((x-A)%(A
2))”,
“r=abs(if(r(x,y,z,t)<0,r(x,y,z,t)+A,r(x,y,z,t)-A))C",
"r2=(y+cos(z
ph)*D)*E”,
“temp=max(-sqrt(r2(x,y,z,t)*r2(x,y,z,t)+r(x,y,z,t)r(x,y,z,t)),temp(x,y,z,t))",
"r=(z%(B
2))”,
“r=abs(if(r(x,y,z,t)<0,r(x,y,z,t)+B,r(x,y,z,t)-B))C",
"r2=(y+cos(x
th)*D)*E”,
“temp=max(-sqrt(r2(x,y,z,t)*r2(x,y,z,t)+r(x,y,z,t)r(x,y,z,t)),temp(x,y,z,t))",
"r=((z-B)%(B
2))”,
“r=abs(if(r(x,y,z,t)<0,r(x,y,z,t)+B,r(x,y,z,t)-B))C",
"r2=(y-cos(x
th)D)E",
“fmesh0=(-max(-sqrt(r2(x,y,z,t)r2(x,y,z,t)+r(x,y,z,t)r(x,y,z,t)),temp(x,y,z,t)))",
"fmesh1=-fmesh0(atan2(y,x),sqrt(x
x+y
y)-1,z,t)+0.03”,
"fmesh2=fmesh1(sqrt(x
x+z
z)-2,y,atan2(z,x),t)”
],
“Fxyz”: [
“fmesh2(x,y,z,t)”
],
“Name”: [
“Wired Torus_01”
],
“Xmax”: [
“3.1”
],
“Xmin”: [
“-3.1”
],
“Ymax”: [
“1.1”
],
“Ymin”: [
“-1.1”
],
“Zmax”: [
“3.1”
],
“Zmin”: [
“-3.1”
]
}
}

Here’s a link to the MathMod scripts (downloadable: .js - Text format):

https://sourceforge.net/p/mathmod/branches/273/

Hope that helps.

Couple of Youtube Videos:

Last, here’s a site I found on minimal surfaces with some mathematica notebooks (nb)
if that helps:

http://www.indiana.edu/~minimal/archive/

what language is this ?

and is the Wired Torus the same then the Lawson surface ?

some one I know may have something that looks like this
but not certain if it follows the real surface

will look at the pdf

HAPPY BL

just read the paper and did not really find equations for this !

do you have specific equations in X Y Z then might be possible to use the
Math addons to make 3D surface
but this will work if there are no conditions to be respected
otherwise will need to make a new script

happy bl

Here’s a side by side of Blender Preset vs MathMod just to give an idea of how they layout
programmatically, if that helps:

#Blender

import bpy
op = bpy.context.active_operator

op.x_eq = ‘2*cosh(v/2)cos(u)’
op.y_eq = ‘v’
op.z_eq = '2
cosh(v/2)*sin(u)’
op.range_u_min = -3.1415927410125732
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = True
op.range_v_min = -3.1415927410125732
op.range_v_max = 3.1415927410125732
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = ‘0’
op.b_eq = ‘0’
op.c_eq = ‘0’
op.f_eq = ‘0’
op.g_eq = ‘0’
op.h_eq = ‘0’

#MathMod

MathMod - Catenoid

{
“Param3D”: {
“Component”: [
“Catenoid”
],
“Fx”: [
“2*cosh(v/2)cos(u)"
],
“Fy”: [
"2
cosh(v/2)*sin(u)”
],
“Fz”: [
“v”
],
“Name”: [
“Catenoid”
],
“Umax”: [
“pi”
],
“Umin”: [
“-pi”
],
“Vmax”: [
“pi”
],
“Vmin”: [
“-pi”
]
}
}

but this is not working in blender yet ?

not certain what this operator is !

but it looks like you got the 3 parametric equations here!
are these for the Lawson curve ?
or the torus ?

op.x_eq = ‘2*cosh(v/2)cos(u)’
op.y_eq = ‘v’
op.z_eq = '2
cosh(v/2)*sin(u)’

now from these equations you need to make a 3d surface is that the problem ?

happy bl

The equations are from the Catenoid (Blender vs Mathmod).

The (more complicated) code just above that is for the Wired Torus.

Trying to find equations for Lawson’s surface is proving either
difficult or too much information (if the Lawson PDF is anything
to go by - a good amount of heavy math info (over my head)).

Two challenges here, specific to blender are:

  1. non or asymmetrical (subdivide) edges

and

  1. conditional edge width (as seen in the
    Lawson minimal surface example)

As I said, I’m no blender whiz. There may
be simple or not so simple solutions for either
or both of those issues.

Maybe it can be done programmatically via Sverchok
or Blender Python.

I know computational design isn’t really what Blender is
designed for, but, it does have computational design components
(via Math Functions).

Formulas would help.

Not having much luck there.

On the same page as the original link to the Lawson’s minimal surface Genus 2, there is
a link to download an STL file.

That should help in understanding the surface.

if there is no formulas then no one can make a script for this !

got a friend who may have something similar so check later one

try to find some good equations for this then might be able to represent it in blender !

happy bl

Unkerjay, I’ve modeled it by hand. It has the same topological properties as Lawson’s but it is not procedural.
Is this what you’re looking for?


You can reorient quads using Decimate mod Un-subdivide=1.
And you can get a similar shape out of the always-to-be-deleted Cube of course ;). While it’s certainly not the Lawson genus 2 surface it’s kind of similar methinks…
http://www.pasteall.org/pic/show.php?id=105087

Here’s another pdf describing in (too much Greek symbols for me) detail creation of subject - http://arxiv.org/pdf/0903.4836v1.pdf , page 9.

@eppo, to get genus 2 surface I think you need to bridge two inside loops and that’s it.

Btw, how did you get this face loops on first object on the left ?
lms.blend (487 KB)


Here you go http://www.pasteall.org/blend/42716
Inset 3 faces, Bridge 2 times.

Wow. I thought after the last comment from Ricky that this was just done, stick a fork in it.

I’m interested in the process (to be learned from) as well as the end product. If you look
at the STL file from the original link, some of what you’re showing is close. Even some
images of lawson’s minimal surfaces.

It intrigues me, as I’m sure it did the author of the original post as to both it’s topology and
it’s asymmetrical edge thickness.

At first, I thought it was closer to a torus, but, upon closer inspection, it’s not.

Below are some images from the original and from an image search that, I hope, help
clarify the differences.

I might also look into K3DSurf for this as well, as I mentioned I think this is really it’s
forte’.

Might post on the Sverchok thread as well, as this might be up their alley.

It just seems like such an interesting object.

Thank you for your time and attention to this. I’m really curious as to what can be
made of this.





if you have the equations it would be a lot easier to do it in blender !
let us know if you do and show it to us!

otherwise it will always stay an rough approximation.

happy bl

“if you have the equations it would be a lot easier to do it in blender !
let us know if you do and show it to us!”

Got it.

One last post on the subject.

http://torus.math.uiuc.edu/jms/Papers/willmore.pdf

(Pgs 17, 18)

I think this comes as close as anything so far, whether poly or equation.