Creating a Surface From Scratch

A minimal surface
In this post, we describe how VaryLab can be used to create a minimal surface from scratch. We use the build-in primitives of VaryLab to create a start geometry and modify this using interactive editing as well as tabular data input. Subdivision steps are used to obtain finer resolutions and to create the final mesh. This mesh is then optimized to have the shortest edge lengths possible with certain boundary conditions. This gives a coarse approximation of the shape of a minimal surface with the given boundary.

Creating a start geometry

The quad mesh generator dialog
We start by creating a simple square with a generator from the menu Generators->Quad Mesh. Set the u and v resolution to 2 and uncheck the "Use Dimonds" box. This creates our start geometry, a quadrilateral. You can move the vertices in space by selecting and Shift-Mouse-Drag
Initial quad-surface

An alternative way of coordinate input is the data table in the data visualization panel. You can activate the coordinate table by selecting the VPosition data channel and choose a table visualization for vertices. The table shows the coordinates of either all or just the selected vertices.

Linear subdivision surface
To obtain a finer surface resolution, we use several subdivision steps. From the menu choose Subdivision->CatmullClark. Here we can adjust subdivision parameters to create a linear subdivision and fixed boundary interpolation.

Coordinates can be edited in the data visualization panel

Adjust the position of vertices that should remain in a fixed location and keep them selected. The optimization can fix selected vertices in all or just some dimensions.


Optimization user interface
The optimization core of VaryLab can be used to shorten the edge lengths of the mesh and keep certain vertices at fixed positions. The corresponding energy is the spring energy. Activate the Sping Energy optimizer from the Optimizer Plug-ins panel. The spring length should be set to constantly 0. In the Optimization panel you can select constraints. We fix all selected vertices. All other boundary vertices can move along the z-direction. To achieve this effect, check all boxes of the selection constraints and the x and the y check boxes of the boundary constraints.

To start the optimization you can either choose to interactively optimize by pressing the Animate button. Or you can optimize the mesh for a predefined number of steps with the Optimize button.

No comments:

Post a Comment