tag:blogger.com,1999:blog-81767654507413080602024-03-14T05:50:21.344+01:00VaryLab - Discrete Surface OptimizationAnonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-8176765450741308060.post-11850725637763998442016-03-31T13:46:00.000+02:002016-03-31T13:46:08.298+02:00A new code signing certificateAs time goes by... Every couple of years we have to renew out code signing certificate for the java webstart version of VaryLab. This time has come again and it might come with problems for you when starting VaryLab. The caching of the webstart client seems to confuse things in some situations and may complain about signed jar files. To resolve this issue you will have to clear the application cache and remove VaryLab resources. Here is an example (in German) taken from MacOS:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="296" src="https://4.bp.blogspot.com/-WpzgEnZozzY/Vv0MTSiPHUI/AAAAAAAAAsg/-h8VA22ri40eVhbk2mHjmn5UrCrzsbWfw/s320/Java_Control_Panel_und_Blogger__VaryLab_-_Discrete_Surface_Optimization_-_Beitrag_erstellen_und_Systemeinstellungen.png" style="margin-left: auto; margin-right: auto;" width="320" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Open the Java Cache Viewer</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="192" src="https://3.bp.blogspot.com/-PwrZaVyNaPM/Vv0NiyuoP6I/AAAAAAAAAss/pK1M5RjXpwwYzmOIo8EEEjhag4cEjm8HA/s400/Java_Cache_Viewer.png" style="margin-left: auto; margin-right: auto;" width="400" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Delete the application</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-7gS7mHTfRDM/Vv0NrCqOR6I/AAAAAAAAAs0/GW4z8xm6sWoKY_M72kmkdV8JYmwZ7JOJg/s1600/Java_Cache_Viewer.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="208" src="https://2.bp.blogspot.com/-7gS7mHTfRDM/Vv0NrCqOR6I/AAAAAAAAAs0/GW4z8xm6sWoKY_M72kmkdV8JYmwZ7JOJg/s400/Java_Cache_Viewer.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Delete any resources</td></tr>
</tbody></table>
<a href="http://4.bp.blogspot.com/-WpzgEnZozzY/Vv0MTSiPHUI/AAAAAAAAAsg/-h8VA22ri40eVhbk2mHjmn5UrCrzsbWfw/s1600/Java_Control_Panel_und_Blogger__VaryLab_-_Discrete_Surface_Optimization_-_Beitrag_erstellen_und_Systemeinstellungen.png" imageanchor="1"></a><a href="http://3.bp.blogspot.com/-PwrZaVyNaPM/Vv0NiyuoP6I/AAAAAAAAAss/pK1M5RjXpwwYzmOIo8EEEjhag4cEjm8HA/s1600/Java_Cache_Viewer.png" imageanchor="1"></a><br />Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-29797973831449397522015-02-16T15:48:00.001+01:002015-02-16T15:48:35.261+01:00Optimization<div dir="ltr" style="text-align: left;" trbidi="on">
In this post, we describe the different functionals available for discrete geometry optimization in VaryLab.
<br /> <br />
<h3 style="text-align: left;">
Circular Quads</h3>
<div>
Defines an energy functional which is minimal for planar circular
quads. Since we are using an angle criterion, the convergence to
planarity is relatively slow. If the planar quads energy is added
to the optimization, the geometry converges more quickly.
</div>
<div>
<table>
<tbody>
<tr>
<td><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-i6wMWI1fuE8/VOG4W8A-ksI/AAAAAAAADSQ/egyX4arJzQU/s1600/circular_before.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-i6wMWI1fuE8/VOG4W8A-ksI/AAAAAAAADSQ/egyX4arJzQU/s1600/circular_before.png" height="186" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8000001907349px; text-align: center;">Before</td></tr>
</tbody></table>
<br /></td>
<td><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-uUcxwtZGVn8/VOG4EmqWYCI/AAAAAAAADSE/F-sxFEzHpAs/s1600/circular_after.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-uUcxwtZGVn8/VOG4EmqWYCI/AAAAAAAADSE/F-sxFEzHpAs/s1600/circular_after.png" height="181" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.8000001907349px; text-align: center;">After</td></tr>
</tbody></table>
<div>
</div>
<br /></td>
</tr>
</tbody>
</table>
</div>
<br /> <br />
<h3>
Incircle Quads</h3>
<div>
The property for a quadrilateral to possess an incircle tangent to its sides is that the two sums of opposite side lengths is equal $a+c=b+d$. Planarity is not included in this functional, so to get planar quadrilaterals with inscribed incircles you need to add planarity to the optimization.
</div>
<div>
<table>
<tbody>
<tr>
<td><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-gRgyTLGPegg/VOG70ENPJ4I/AAAAAAAADSc/ttS7syYE6Ck/s1600/incircle_before.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-gRgyTLGPegg/VOG70ENPJ4I/AAAAAAAADSc/ttS7syYE6Ck/s1600/incircle_before.png" height="168" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
<br /></td>
<td><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-PL4fK-Af0Y8/VOG70ImgoJI/AAAAAAAADSg/EOoPlTZXAR8/s1600/incircles_after.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-PL4fK-Af0Y8/VOG70ImgoJI/AAAAAAAADSg/EOoPlTZXAR8/s1600/incircles_after.png" height="175" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Optimized</td></tr>
</tbody></table>
<div>
</div>
<br /></td>
</tr>
</tbody>
</table>
</div>
<br /> <br />
<h3>
Touching Incircles</h3>
<div>
In a quad-mesh with incircles, the
incircles need not touch. So in combination with the
incircles and planarity energies it one can create a mesh
with touching incircles.
</div>
<div>
<table><tbody>
<tr><td><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-gRgyTLGPegg/VOG70ENPJ4I/AAAAAAAADSc/ttS7syYE6Ck/s1600/incircle_before.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-gRgyTLGPegg/VOG70ENPJ4I/AAAAAAAADSc/ttS7syYE6Ck/s1600/incircle_before.png" height="168" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Before</td></tr>
</tbody></table>
</td><td><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-qWRwSwbVLYk/VOG-bXMkeNI/AAAAAAAADS0/Ts7FuC0oiRc/s1600/touching_incircles_after.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-qWRwSwbVLYk/VOG-bXMkeNI/AAAAAAAADS0/Ts7FuC0oiRc/s1600/touching_incircles_after.png" height="166" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Optimized</td></tr>
</tbody></table>
</td></tr>
</tbody></table>
</div>
<br /> <br />
<h3>
Conical</h3>
<div>
This energy implements an angle criterion for conical
meshes. So in combination with planarity it optimizes a mesh
to have the property, that faces adjacent to one node are
tangent to a cone of revolution.
</div>
<br /> <br />
<h3>
Direction Field</h3>
<div>
Allows the user to specify a direction field. This can be used
with spring energy and boundary constraints to do simple form
finding.</div>
<br /> <br />
<h3>
Equal Diagonals</h3>
<div>
The lengths of the diagonals of each quad are equal in an optimized mesh.</div>
<br /> <br />
<h3>
Planar Quads</h3>
<div>
A functional that forces planarity of quad faces</div>
<br /> <br />
<h3>
Planar Vertex Stars</h3>
<div>
This energy is dual to the planar faces energy. It computes the
volume spanned by a node and its neighbors. Minimization yields
meshes such that each node lies in a plane with its
neighbors. If used together with face planarity the initial mesh
is mapped to a plane.</div>
<br /> <br />
<h3>
Reference Mesh</h3>
<div>
Given a reference mesh we compute the closest point to a node
and add a spring force between each node and its projection. The
projection point is recomputed in each step of the
optimization. If combined with other energies it keeps the
optimized mesh close to a reference mesh.
</div>
<br /> <br />
<h3>
Reference Surface</h3>
<div>
This is similar to Reference mesh but with a reference nurbs surface.
</div>
<br /> <br />
<h3>
Spring Energy</h3>
<div>
The spring energy is computed by adding springs to all the edges
of the mesh. These springs can have user specified target
lengths and strengths that can be specified by various
options.</div>
<br /> <br />
<h3>
Willmore Energy</h3>
<div>
See the article: A.I. Bobenko, A conformal energy for simplicial surfaces.</div>
<br /> <br />
<h1>
Parameterline Curvatures</h1>
<div>
There are many ways to define the curvature of a polygonal
parameter line on a quad mesh. We have implemented a few
different notions:
</div>
<br /> <br />
<h3>
Geodesic Curvature</h3>
<div>
On smooth surface, the curvature of a surface curve is
decomposed into geodesic and normal curvature, where geodesic
curvature is the curvature in direction of the tangent plane. So
we consider the projection of the parameter polyline into the
tangent plane orthogonal to the normal at a node. For the
optimized mesh, the projection is straight.
</div>
<br /> <br />
<h3>
Opposite Angles Curvature</h3>
<div>
This curvature is based on the intrinsic geometry of the
surface. Let $\alpha$, $\beta$, $\gamma$, and $\delta$ denote
the angles in the adjacent quads at a node in cyclic order. Then
the optimal mesh satisfies $\alpha+\beta = \gamma+\delta$ and
$\beta+\gamma = \delta+\alpha$, i.e. so the parameter lines are
straight from an intrinsic point of view.</div>
<br /> <br />
<h3>
Opposite Edges Curvature</h3>
<div>
This energy penalizes the deviation of a parameter polyline from
a straight line. So using this energy only, will flatten the
mesh to the plane. Used together with, e.g. a reference surface
energy, this energy smoothes the parameter lines of the
quad mesh.
</div>
<br /> <br />
<h3>
Circumcircle Curvature</h3>
<div>
The curvature is the inverse of the radius of the circle through
three consecutive points on a parameter polyline.</div>
</div>
Please leave a comment if you need you need more detailed information.Anonymoushttp://www.blogger.com/profile/00054847865262156372noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-75258224818505343012014-06-17T15:19:00.000+02:002014-06-17T15:22:38.841+02:00Creating a Surface From Scratch<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-oLDogerawUY/U6Ap41zCt_I/AAAAAAAAAnQ/JHBXwrHfGMM/s1600/VaryLab_Ultimate_+5.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-oLDogerawUY/U6Ap41zCt_I/AAAAAAAAAnQ/JHBXwrHfGMM/s1600/VaryLab_Ultimate_+5.png" height="137" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A minimal surface</td></tr>
</tbody></table>
<div style="text-align: justify;">
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.</div>
<h3>
</h3>
<h3>
</h3>
<h3>
Creating a start geometry</h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-LHN_5lOi9tI/U6Aq_dX6ORI/AAAAAAAAAnw/ZfKRqj1X33Y/s1600/Quad_Mesh.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-LHN_5lOi9tI/U6Aq_dX6ORI/AAAAAAAAAnw/ZfKRqj1X33Y/s1600/Quad_Mesh.png" height="145" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The quad mesh generator dialog</td></tr>
</tbody></table>
<div style="text-align: justify;">
We start by creating a simple square with a generator from the menu <span style="font-family: Courier New, Courier, monospace;">Generators->Quad Mesh</span>. 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 <span style="font-family: Courier New, Courier, monospace;">Shift-Mouse-Drag</span>. </div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-gdbKs8th7XY/U6Ap4T6N6XI/AAAAAAAAAnY/A9vroUtlcAY/s1600/VaryLab_Ultimate_+2.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-gdbKs8th7XY/U6Ap4T6N6XI/AAAAAAAAAnY/A9vroUtlcAY/s1600/VaryLab_Ultimate_+2.png" height="131" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Initial quad-surface</td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
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.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-b7sze7gf_sg/U6Ap4TvWYxI/AAAAAAAAAnk/ZkcKRgUrMEU/s1600/VaryLab_Ultimate_+3.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-b7sze7gf_sg/U6Ap4TvWYxI/AAAAAAAAAnk/ZkcKRgUrMEU/s1600/VaryLab_Ultimate_+3.png" height="131" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Linear subdivision surface</td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: inherit;">To obtain a finer surface resolution, we use several subdivision steps. From the menu choose </span><span style="font-family: Courier New, Courier, monospace;">Subdivision->CatmullClark</span><span style="font-family: inherit;">. Here we can adjust subdivision parameters to create a linear subdivision and fixed boundary interpolation.</span></div>
<h3>
<span style="font-family: Times, Times New Roman, serif;"></span><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-R_HrgZtN9BE/U6AsJA0qkoI/AAAAAAAAAn4/_3wylgYcJcg/s1600/Halfedge_Data_Visualitazion.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-R_HrgZtN9BE/U6AsJA0qkoI/AAAAAAAAAn4/_3wylgYcJcg/s1600/Halfedge_Data_Visualitazion.png" height="131" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Coordinates can be edited in the data visualization panel</td></tr>
</tbody></table>
<br />
<span style="font-family: Times, Times New Roman, serif;"></span></h3>
<span style="font-family: inherit;">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.</span><br />
<h3>
<span style="font-family: Times, Times New Roman, serif;"></span></h3>
<h3>
<span style="font-family: Times, 'Times New Roman', serif;"><br /></span></h3>
<h3>
<span style="font-family: Times, 'Times New Roman', serif;">Optimization</span></h3>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-5xSBArWtUis/U6AwwqsKVrI/AAAAAAAAAoE/Ezf8WiPUlMs/s1600/VaryLab_Ultimate_+6.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-5xSBArWtUis/U6AwwqsKVrI/AAAAAAAAAoE/Ezf8WiPUlMs/s1600/VaryLab_Ultimate_+6.png" height="320" width="109" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Optimization user interface</td></tr>
</tbody></table>
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 <span style="font-family: Courier New, Courier, monospace;">spring energy</span>. Activate the <span style="font-family: Courier New, Courier, monospace;">Sping Energy</span> optimizer from the <span style="font-family: Courier New, Courier, monospace;">Optimizer Plug-ins</span> panel. The spring length should be set to constantly 0. In the <span style="font-family: Courier New, Courier, monospace;">Optimization</span> 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.<br />
<br />
To start the optimization you can either choose to interactively optimize by pressing the A<span style="font-family: Courier New, Courier, monospace;">nimate</span> button. Or you can optimize the mesh for a predefined number of steps with the <span style="font-family: Courier New, Courier, monospace;">Optimize</span> button.<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyliAw-AVVyDcT1ow4Ul3mYsNVc5nG1UDQpjP8eoWjE47uBqkShCGRJoJdTwR0HiSYIeQdYIHmDRMuNSXELBw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-9986062142972863352014-06-16T15:03:00.000+02:002014-06-16T15:03:23.486+02:00Remeshing with Boundary Conditions<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-GThA3DDMLbo/U5sT2b7hlfI/AAAAAAAAAl8/JL-pDcVeD9w/s1600/VaryLab_Ultimate_+3.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-GThA3DDMLbo/U5sT2b7hlfI/AAAAAAAAAl8/JL-pDcVeD9w/s1600/VaryLab_Ultimate_+3.png" height="118" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Initial Surface</td></tr>
</tbody></table>
A boundary of a discrete surface is usually a closed polygonal curve in space. If a surface has multiple boundary components, one speaks of a multiply-connected surface. In this article we deal with surfaces that have one boundary component. We call those simply-connected or surface with disk topology.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-TfZHLzMx6wg/U57pdweCm6I/AAAAAAAAAm4/-3lVpKgoK1E/s1600/triangulation.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-TfZHLzMx6wg/U57pdweCm6I/AAAAAAAAAm4/-3lVpKgoK1E/s1600/triangulation.png" height="133" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px; text-align: center;">Source unstructured triangle mesh</td></tr>
</tbody></table>
<div style="text-align: justify;">
Starting with a discrete surface with one boundary component we want to create a mesh where the pattern of the mesh aligns with the boundary curve in a nice way. You can download the example model <a href="http://my.varylab.com/download/boundary_conditions01.obj" target="_blank">here.</a> We use a triangle pattern and demonstrate the usage of automatic as well as custom alignment of the boundary.</div>
<br />
<h3>
Boundary aligned parameterization</h3>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-gXBm2sn6qLU/U57koXBnGlI/AAAAAAAAAmU/yPT407c525M/s1600/conformal01.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-gXBm2sn6qLU/U57koXBnGlI/AAAAAAAAAmU/yPT407c525M/s1600/conformal01.png" height="177" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px; text-align: center;">Custom boundary condtions</td></tr>
</tbody></table>
<div style="text-align: justify;">
In order to create a new mesh from an existing surface, we first need to create a suitable parameterization for the input data. For general information about parameterization have a look into the <a href="http://www.varylab.com/2013/07/discrete-surface-parameterization.html" target="_blank">Discrete Surface Parameterization</a> article. In our case we want to create a parameterization that respects the geometry of a regular triangle pattern which means boundary angles of the domain of parameterization should be quantized to a multiple of 30º.</div>
<div>
<br /></div>
<div style="text-align: justify;">
For the given triangulated surface, we create a map from the surface to a rectangle. In order to specify these boundary conditions, you select the four corner vertices of the mesh and type in the desired boundary angle in the "Custom Nodes" fold-out panel inside the "Discrete Conformal Parameterization" panel. If the vertices do not appear, press the Unwrap button and select the vertices again. To create the rectangle, the four vertices must have a custom angle of 90º. The general boundary setting should be set to "Quatized Angles" for the mode, and "Straight" for quantization. These settings affect all unselected vertices. If you press the unwrap button the mapping is calculated and can be previewed using the texture display features of VaryLab.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://4.bp.blogspot.com/-_Y2zzQmAMec/U57lrAVr_SI/AAAAAAAAAmc/_odNp2naI5g/s1600/Schnappschuss+(2014-06-16+14.39.35).png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="" border="0" src="http://4.bp.blogspot.com/-_Y2zzQmAMec/U57lrAVr_SI/AAAAAAAAAmc/_odNp2naI5g/s1600/Schnappschuss+(2014-06-16+14.39.35).png" height="272" title="VaryLab main window" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px;"><div style="text-align: justify;">
The VaryLab main window during parameterization. In </div>
<div style="text-align: justify;">
the parameterization domain panel (top) you see can review the </div>
<div style="text-align: justify;">
current domain. A texture is selected from the appearance panel</div>
<div style="text-align: justify;">
to preview the mapping.</div>
</td></tr>
</tbody></table>
<h3>
Aligned Remeshing</h3>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-TyIrlkZrRbs/U57pCQcj3lI/AAAAAAAAAmo/r50qQl46130/s1600/remesh.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-TyIrlkZrRbs/U57pCQcj3lI/AAAAAAAAAmo/r50qQl46130/s1600/remesh.png" height="131" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px; text-align: center;">Remeshing with boundary aligned<br />
triangles</td></tr>
</tbody></table>
<div>
If we have a mesh with sufficiently quantized boundary angles, we can go on and create a boundary aligned mesh from this data. In our case we have four angles of 90º and at all other vertices the boundary of the domain is a straight line which corresponds to a boundary angle of 180º.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-KRqTC_giqB8/U57pCeiE-7I/AAAAAAAAAms/ITHXCcQ1sm8/s1600/remeshing_panel.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-KRqTC_giqB8/U57pCeiE-7I/AAAAAAAAAms/ITHXCcQ1sm8/s1600/remeshing_panel.png" height="66" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 12.727272033691406px; text-align: center;">The remeshing user interface</td></tr>
</tbody></table>
To perform the remeshing step select the "Boundary aligned Triangles" pattern from the "Surface Remeshing" panel and hit the "Remesh" button. You can download the result mesh <a href="http://my.varylab.com/download/boundary_conditions02.obj" target="_blank">here.</a></div>
<a href="http://2.bp.blogspot.com/-GThA3DDMLbo/U5sT2b7hlfI/AAAAAAAAAl4/nQAWI4ItPMs/s1600/VaryLab_Ultimate_+3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-60465478728729524202013-10-15T10:41:00.002+02:002013-10-15T10:41:17.564+02:00Creating A-nets<div dir="ltr" style="text-align: left;" trbidi="on">
In this little post I will explain how to use VaryLab to create an
A-net, i.e., a mesh with the property that each node and its neighbors
lie in one plane.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mWXYwPadhHE/Ulz4Uv_X8mI/AAAAAAAADDk/qzR6I_p4wf8/s1600/planarStar.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="http://2.bp.blogspot.com/-mWXYwPadhHE/Ulz4Uv_X8mI/AAAAAAAADDk/qzR6I_p4wf8/s320/planarStar.png" width="320" /></a></div>
<br />
<br />
Since
A-nets are discrete versions of parametrization along asymptotic lines
which only exist for surfaces with negative Gaussian curvature, we need
to create a mesh with negative curvature first.<br />
<br />
We start with a standard quad grid from the generators menu.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-k72JItv6EVo/Ulz58RNSp7I/AAAAAAAADDw/taWgZXqGjh0/s1600/generators.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="18" src="http://4.bp.blogspot.com/-k72JItv6EVo/Ulz58RNSp7I/AAAAAAAADDw/taWgZXqGjh0/s200/generators.png" width="200" /></a></div>
To obtain the right combinatorial structure, i.e., mesh topology, we need to un-check the "Use Diamonds" box.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-DncgC5qJ1KA/Ulz6QAjb0_I/AAAAAAAADD4/JRrZ-i4dGCM/s1600/quadMeshDialog.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-DncgC5qJ1KA/Ulz6QAjb0_I/AAAAAAAADD4/JRrZ-i4dGCM/s1600/quadMeshDialog.png" /></a></div>
<br />
After clicking "Ok" we have a nice 6x6 quad grid. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-uMJL942HMlk/Ulz6lrqRpYI/AAAAAAAADEA/0BLVJe7rGQ0/s1600/quadGrid.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="147" src="http://2.bp.blogspot.com/-uMJL942HMlk/Ulz6lrqRpYI/AAAAAAAADEA/0BLVJe7rGQ0/s320/quadGrid.png" width="320" /></a></div>
<br />
Now
we use the Vertex Coordinate Editor to move the corners of the grid up
and down respectively. To do so we hold down the Shift key and the left
mouse button and move the corners up and down.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-P0CWqF9drw4/Ulz7gLubGTI/AAAAAAAADEM/2MZ7Iu_xmLc/s1600/modifiedQuadGrid.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="http://2.bp.blogspot.com/-P0CWqF9drw4/Ulz7gLubGTI/AAAAAAAADEM/2MZ7Iu_xmLc/s320/modifiedQuadGrid.png" width="320" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-J_2RerXMI_U/Ulz9MwuH5NI/AAAAAAAADEc/2aocxodRIqo/s1600/optimizationPanel.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="http://2.bp.blogspot.com/-J_2RerXMI_U/Ulz9MwuH5NI/AAAAAAAADEc/2aocxodRIqo/s400/optimizationPanel.png" width="138" /></a></div>
<br />
<br />
<br />
We
fix the corners by selecting them with a left mouse click (the selected
nodes are shown in red). Then we turn to the Optimizer Plugins panel
and select Spring Energy. We select the const. option and set the target
length to 0. This will make the edge behave like rubber bands/spring
with 0 rest length. As optimization method I selected CG (Conjugate
gradient) and maximal number of iterations 100. Finally we fix the
selected points in the constraints panel by checking x, y, and z. Now we
press the Optimize button to proceed with the optimization. And obtain a
mesh with negative curvature.<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-thWOIdIQmTM/Ulz92cY9AOI/AAAAAAAADEk/XwdGR4rb4bw/s1600/minSpring.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="http://2.bp.blogspot.com/-thWOIdIQmTM/Ulz92cY9AOI/AAAAAAAADEk/XwdGR4rb4bw/s320/minSpring.png" width="320" /></a></div>
<br />
To
turn this mesh into an A-net we use the Planar Vertex Stars optimizer
from the Optimizer Plugin panel and optimize again. The mesh does not
change a lot, since the above mesh is already almost an A-net after the
first optimization.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-JmaOchQ39dw/Ulz_EUY_vWI/AAAAAAAADEs/KSDudpJvT9M/s1600/anet.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="317" src="http://2.bp.blogspot.com/-JmaOchQ39dw/Ulz_EUY_vWI/AAAAAAAADEs/KSDudpJvT9M/s320/anet.png" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/00054847865262156372noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-27216591671110545522013-08-28T14:30:00.000+02:002013-08-28T18:17:00.350+02:00VaryLab Grasshopper ComponentsWe started to implement a set of Grasshopper components to connect the VaryLab main program to the Rhino world. This is different to the prior approach of implementing a native Rhino 3D plug-in described in <a href="http://www.varylab.com/p/rhino-plug-in.html" target="_blank">this article</a>. Visit the <a href="http://my.varylab.com/#downloads" target="_blank">download section</a> to get the current version of the Grasshopper assembly.<br>
<br>
The idea is to have a component that takes a mesh and uses a running VaryLab application to do the optimization. The resulting mesh is then delivered back to the component and written t the output of the component. Here is an example setup using the Optimization component.<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-p7_DI2E8Em8/Uh3XGOSdjKI/AAAAAAAAAYQ/MCgyTpF9goI/s1600/setup01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="135" src="http://1.bp.blogspot.com/-p7_DI2E8Em8/Uh3XGOSdjKI/AAAAAAAAAYQ/MCgyTpF9goI/s400/setup01.png" width="400"></a></div>
A second component feeds the active geometry loaded in VaryLab into Grasshopper. This example brings the active VaryLab geometry into Grasshopper and scales it.<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Qz-f5-FObYg/Uh3sdXyLOLI/AAAAAAAAAYg/tS9GgQ8bffc/s1600/setup02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="147" src="http://1.bp.blogspot.com/-Qz-f5-FObYg/Uh3sdXyLOLI/AAAAAAAAAYg/tS9GgQ8bffc/s400/setup02.png" width="400"></a></div>
We plan to include more features. Planned are:<br>
<br>
<ul>
<li>Storage of the VaryLab configuration as a Grasshopper component state</li>
<li>Configuration of boundary conditions through Grasshopper </li><li>Expose more features like parametrization or remeshing</li>
</ul>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com1tag:blogger.com,1999:blog-8176765450741308060.post-87583178891818300822013-07-27T20:12:00.000+02:002013-07-27T20:12:03.981+02:00VaryLab Cloud Models<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-fGCTVYSba90/UfP4R8CfeEI/AAAAAAAAAXc/RCPZriqcwOc/s1600/Schnappschuss+(2013-07-27+18.37.39).png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="307" src="http://4.bp.blogspot.com/-fGCTVYSba90/UfP4R8CfeEI/AAAAAAAAAXc/RCPZriqcwOc/s320/Schnappschuss+(2013-07-27+18.37.39).png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The model manager</td></tr>
</tbody></table>
<div style="text-align: justify;">
A new feature has arrived: <span style="font-variant: small-caps;">VaryLab Cloud Models</span>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Select the <a href="http://my.varylab.com/#models" target="_blank">models section</a> from the menu bar of the members area. This brings you to the models manager. Here you can upload and manage your own models and view shared models by other users.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Your own models can be shared with other users. Enter the email address of your partner in the add share section to create a new shared model with this person.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Your models can be used in VaryLab quite naturally. Just select a model from the corresponding project to load it at startup.</div>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-BzHHlKzuupU/UfP6qIQYjJI/AAAAAAAAAXs/67xyGEA0sQU/s1600/Schnappschuss+(2013-07-27+18.51.18).png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="168" src="http://1.bp.blogspot.com/-BzHHlKzuupU/UfP6qIQYjJI/AAAAAAAAAXs/67xyGEA0sQU/s320/Schnappschuss+(2013-07-27+18.51.18).png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Model upload dialog</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-119nr9qoRIY/UfP8DLlv0MI/AAAAAAAAAX4/Uya023yjg7s/s1600/Schnappschuss+(2013-07-27+18.57.12).png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="102" src="http://4.bp.blogspot.com/-119nr9qoRIY/UfP8DLlv0MI/AAAAAAAAAX4/Uya023yjg7s/s320/Schnappschuss+(2013-07-27+18.57.12).png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Per project model selection</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com1tag:blogger.com,1999:blog-8176765450741308060.post-48205077741781162942013-07-10T22:32:00.000+02:002013-07-10T22:38:43.968+02:00Design Research Exchange 2013 - Vertical Net StructuresThe VaryLab team is involved in this years Design Research Exchange.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-YJtT6dHD5J0/Ud3DQleqyKI/AAAAAAAAAXQ/NTBGPeGP6Z4/s1600/DRXPostCard01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="http://2.bp.blogspot.com/-YJtT6dHD5J0/Ud3DQleqyKI/AAAAAAAAAXQ/NTBGPeGP6Z4/s400/DRXPostCard01.png" width="285" /></a></div>
<a href="http://4.bp.blogspot.com/-1vYCDDgu7EI/Ud3DQhpEibI/AAAAAAAAAXE/wvtRsqQwLc8/s1600/DRXPostCard02.png" imageanchor="1" style="margin-bottom: 1em; margin-left: 1em;"><img border="0" height="400" src="http://4.bp.blogspot.com/-1vYCDDgu7EI/Ud3DQhpEibI/AAAAAAAAAXE/wvtRsqQwLc8/s400/DRXPostCard02.png" width="285" /></a>
<br />
<br />
Find more information at <a href="http://www.henn.com/de/drx2013" target="_blank">http://www.henn.com/de/drx2013</a> or at <a href="https://www.facebook.com/DesignResearchExchange" target="_blank">https://www.facebook.com/DesignResearchExchange</a><br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0Berlin, Deutschland52.519171 13.40609119999999252.2099 12.760644199999991 52.828442 14.051538199999992tag:blogger.com,1999:blog-8176765450741308060.post-56498777557428214582013-07-01T00:12:00.003+02:002013-07-01T00:12:39.999+02:00Discrete Surface Parameterization<div style="text-align: justify;">
<a href="http://2.bp.blogspot.com/-Dym9C-xawtk/UdChuMNhdgI/AAAAAAAAAV8/LZH6yMwieog/s1600/Schnappschuss+(2013-06-30+23.22.05).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="164" src="http://2.bp.blogspot.com/-Dym9C-xawtk/UdChuMNhdgI/AAAAAAAAAV8/LZH6yMwieog/s200/Schnappschuss+(2013-06-30+23.22.05).png" width="200" /></a>When speaking about parameterization of a discrete surface we really mean the assignment of texture coordinates to the vertices of a mesh in VaryLab. This enables us to draw images on the surface and do processing in this image space. We can do re-meshing by introducing new vertices at some locations on the mesh guided by some pattern in texture space, e.g., a quad or triangle pattern. See <a href="http://www.varylab.com/2013/06/remeshing-with-varylab.html" target="_blank">this</a> post for a description of the re-meshing capabilities of VaryLab. </div>
<div style="text-align: justify;">
<a href="http://1.bp.blogspot.com/-vw3IILb7jtM/UdChuA-qKGI/AAAAAAAAAWA/tGp-9PsmQOo/s600/Schnappschuss+(2013-06-30+23.22.40).png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="86" src="http://1.bp.blogspot.com/-vw3IILb7jtM/UdChuA-qKGI/AAAAAAAAAWA/tGp-9PsmQOo/s200/Schnappschuss+(2013-06-30+23.22.40).png" width="200" /></a></div>
<h3>
</h3>
<h3>
</h3>
<h3>
<a href="http://1.bp.blogspot.com/-sMrJAT1Tr5Y/UdCfzZksPRI/AAAAAAAAAVs/_ERjgsee9Xw/s790/Schnappschuss+(2013-06-30+23.14.36).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://1.bp.blogspot.com/-sMrJAT1Tr5Y/UdCfzZksPRI/AAAAAAAAAVs/_ERjgsee9Xw/s320/Schnappschuss+(2013-06-30+23.14.36).png" width="108" /></a></h3>
<h3>
Default Settings</h3>
<div>
<br /></div>
<div style="text-align: justify;">
VaryLab supports a parameterization scheme called discrete conformal parameterization for triangle meshes. We implement an algorithm recently published <a href="http://dl.acm.org/citation.cfm?id=1399504.1360676&coll=DL&dl=GUIDE&CFID=344263803&CFTOKEN=81069433" target="_blank">here</a>. </div>
<div style="text-align: justify;">
To parameterize a mesh conformally in VaryLab you press the "Unwrap" button in the Discrete Conformal Parameterization panel.
There are a number of settings that define how the parameterization algorithm treats your mesh. The default settings should work well for triangle meshes that have one boundary component as in these pictures. These settings create a geometry in texture space where the edge lengths of the boundary edges are the same as in the mesh's geometry.</div>
<div style="text-align: justify;">
<br /></div>
<h3>
<a href="http://2.bp.blogspot.com/-d_M9MAthCZ8/UdCqxxjXhfI/AAAAAAAAAWk/NFOP42nDfZQ/s532/Schnappschuss+(2013-07-01+00.00.24).png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-d_M9MAthCZ8/UdCqxxjXhfI/AAAAAAAAAWk/NFOP42nDfZQ/s200/Schnappschuss+(2013-07-01+00.00.24).png" width="97" /></a>Textures In VaryLab</h3>
<div>
<br /></div>
<div style="text-align: justify;">
VaryLab supports the display of textures on meshes that are parameterized. You can select a texture from the "Content Appearance" panel. The default textures included in VaryLab are the re-meshing preview patterns quads, triangles, and hexagons. You can adjust the scale, position, orientation, and shear of the texture. These texture settings work also as preview for the re-meshing processor of VaryLab.</div>
<br />
<br />
<h3 style="text-align: justify;">
Manual Boundary Conditions </h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-UYhahlq6qEo/UdCpKB5eXJI/AAAAAAAAAWU/iYfP2o9qOno/s591/Schnappschuss+(2013-06-30+23.54.19).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="131" src="http://2.bp.blogspot.com/-UYhahlq6qEo/UdCpKB5eXJI/AAAAAAAAAWU/iYfP2o9qOno/s200/Schnappschuss+(2013-06-30+23.54.19).png" width="200" /></a></div>
<div style="text-align: justify;">
For meshes with one boundary component we can define more complex boundary conditions. For instance we could select four boundary vertices as the corners of a rectangle in texture space. For this you have to select the four boundary vertices and edit their properties in the "Custom Vertices" panel. Check the "Custom Theta" check box and set their value to 90 degree. The global boundary options in the Boundary panel should be set to Conformal and Straight. Hit the Unwrap button to create the parameterization.</div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com1Berlin, Deutschland52.519171 13.40609119999999252.2099 12.760644199999991 52.828442 14.051538199999992tag:blogger.com,1999:blog-8176765450741308060.post-78305124497938784022013-06-22T23:39:00.003+02:002013-06-22T23:39:58.449+02:00VaryLab Data VisualizationData visualization is one of most important tasks when doing surface optimization. On the basis of the analysis of data on the surface we decide what parameters go into the optimization and how the optimization core is performing. In this post we introduce the basic visualization features of <span style="font-variant: small-caps;">VaryLab</span> to you.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-QNPSGkoMKa0/UcRKJo5tYXI/AAAAAAAAAUk/h9l2YWdcsO8/s1600/Bildschirmfoto+2013-06-21+um+14.37.14.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="135" src="http://1.bp.blogspot.com/-QNPSGkoMKa0/UcRKJo5tYXI/AAAAAAAAAUk/h9l2YWdcsO8/s320/Bildschirmfoto+2013-06-21+um+14.37.14.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Visualization Panel</td></tr>
</tbody></table>
In <span style="font-variant: small-caps;">VaryLab</span> data visualization comes as a build in tool-kit, the halfedge data visualization panel. The basic idea is that data sources provide data for the nodes of a surface. So there are data providers for vertices, or edges, or faces, or all at once. These data providers deliver their data to visualizers that in turn have sockets that take data for vertices, edges, or faces and create their visualization. Select a data source from the middle of the panel. In the right box the compatible visualizers are presented long with buttons for the suitable node type. Click the node type button to activate the corresponding visualizer for this type of nodes.<br />
E.g., to show a face area visualization select the FaceArea data source and the blue face button next to the node colors visualizer. The active node colors visualizer is listed in the top-left box along with its options.<br />
<br />
There are a number of basic data visualizers contained in the module set of <span style="font-variant: small-caps;">VaryLab</span> web service.<br />
<br />
<h4 style="clear: both;">
Node Colors</h4>
<div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-4wO59uJDiw0/UcRQN7E1N1I/AAAAAAAAAU8/oelXNRT_LJ0/s1600/Bildschirmfoto+2013-06-21+um+15.03.35.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="121" src="http://3.bp.blogspot.com/-4wO59uJDiw0/UcRQN7E1N1I/AAAAAAAAAU8/oelXNRT_LJ0/s200/Bildschirmfoto+2013-06-21+um+15.03.35.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Face planarity visualization by node colors</td></tr>
</tbody></table>
Colored nodes are a very effective way to represent scalar data on nodes. The nodes are colored using a color map. We mostly use the hue and red green color maps. This visualizer should be used in conjunction with the histogram to connect the colors with the function values.</div>
<h4 style="clear: both;">
Colored Beads</h4>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-bykJBM0TVrk/UcRQODDGA6I/AAAAAAAAAU4/6mcsq5MqDVg/s1600/Bildschirmfoto+2013-06-21+um+15.05.44.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="123" src="http://4.bp.blogspot.com/-bykJBM0TVrk/UcRQODDGA6I/AAAAAAAAAU4/6mcsq5MqDVg/s200/Bildschirmfoto+2013-06-21+um+15.05.44.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Face planarity visualized by colored beads</td></tr>
</tbody></table>
<div>
Similar to the node colors this visualizer represents scalar functions on surface nodes. In addition to the color the size of the spheres indicate the value of the function. There are options to adjust the overall scale and the span of the sphere radii. As for the node colors the color map can be chosen.</div>
<h4 style="clear: both;">
Histogram</h4>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-7Bjri3bc7Z4/UcRQN0XnyoI/AAAAAAAAAU0/097Q2P5nw4E/s1600/Bildschirmfoto+2013-06-21+um+15.04.33.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="109" src="http://1.bp.blogspot.com/-7Bjri3bc7Z4/UcRQN0XnyoI/AAAAAAAAAU0/097Q2P5nw4E/s200/Bildschirmfoto+2013-06-21+um+15.04.33.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A face planarity histogram</td></tr>
</tbody></table>
<div>
The histogram shows a discrete density plot of scalar data on surface nodes. It is integrated in the visualization panel in a tab behind the configuration. The color map can be adjusted to match the colors of a colored nodes or colored beads visualizer. The number of bins that are used to create the density plot can be selected from the visualizer options.</div>
<h4 style="clear: both;">
Vector Data</h4>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-variant: small-caps;"></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-3SI4mdPARlo/UcRQOm84acI/AAAAAAAAAVA/K9fShFKmLE4/s1600/Bildschirmfoto+2013-06-21+um+15.06.57.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="116" src="http://4.bp.blogspot.com/-3SI4mdPARlo/UcRQOm84acI/AAAAAAAAAVA/K9fShFKmLE4/s200/Bildschirmfoto+2013-06-21+um+15.06.57.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Vector field visualization</td></tr>
</tbody></table>
Vector data on surface nodes can be displayed with this visualizer. In <span style="font-variant: small-caps;">VaryLab </span>this is mainly used for the visualization of principle curvature directions and their singularities.<br />
<span style="font-variant: small-caps;"></span><br />
<span style="font-variant: small-caps;"></span>
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-53813508478743718582013-06-20T23:35:00.001+02:002013-06-20T23:35:28.599+02:00Remeshing with VaryLab<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-PAnOTu7cWLc/UcAlhVTLjcI/AAAAAAAAATk/n2dbkkeiULE/s1600/Bildschirmfoto+2013-06-18+um+11.00.22.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="100" src="http://4.bp.blogspot.com/-PAnOTu7cWLc/UcAlhVTLjcI/AAAAAAAAATk/n2dbkkeiULE/s200/Bildschirmfoto+2013-06-18+um+11.00.22.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Input Surface</td></tr>
</tbody></table>
The term remeshing referes to the change of mesh connectivity while retaining the overall shape of the surface. This post should give you an impression of the remeshing features of VaryLab.<br />
<br />
We start with a geometry that is based on a square and exhibits a "smooth" triangulated surface. This geometry is the result of a form-finding process calculating node positions for certain load-bearing conditions. This geometry acts shell-like under some assumptions and we want to change its mesh to a quad based mesh and to a regular triangulation.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-yD0JPoDBfWw/UcAlh0_jUYI/AAAAAAAAATw/ffFDjWaJjwY/s1600/Bildschirmfoto+2013-06-18+um+11.02.07.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="101" src="http://4.bp.blogspot.com/-yD0JPoDBfWw/UcAlh0_jUYI/AAAAAAAAATw/ffFDjWaJjwY/s200/Bildschirmfoto+2013-06-18+um+11.02.07.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Quads Preview Texture</td></tr>
</tbody></table>
<br />
<br />
<a href="http://1.bp.blogspot.com/-3aUFUeEhkGg/UcAlhHc742I/AAAAAAAAATg/Se3yW9xU8OI/s1600/Bildschirmfoto+2013-06-18+um+10.55.32.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-3aUFUeEhkGg/UcAlhHc742I/AAAAAAAAATg/Se3yW9xU8OI/s200/Bildschirmfoto+2013-06-18+um+10.55.32.png" width="93" /></a>You can download this model from <a href="http://my.varylab.com/download/roof_quad.obj" target="_blank">here</a> if you follow this tutorial step by step. The model comes readily equipped with texture coordinates so we can apply a texture image to it. How to calculate texture coordinates is another story that can also be achieved with VaryLab. This is the topic of another post.<br />
<br />
<br />
<br />
VaryLab comes with its standard remeshing preview textures. They can be selected from the content appearance panel and are applied to all models. We use triangles, quads, and hexagons as remesh patterns. You can adjust size and rotation of the preview texture. In this example we want the new triangles, or quads to align with the boundary of the surface so we do not rotate.<br />
<br />
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-OcG7FsHFecY/UcAlhGvpw_I/AAAAAAAAATo/zs7VQp2nFC4/s1600/Bildschirmfoto+2013-06-18+um+10.54.40.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="121" src="http://2.bp.blogspot.com/-OcG7FsHFecY/UcAlhGvpw_I/AAAAAAAAATo/zs7VQp2nFC4/s200/Bildschirmfoto+2013-06-18+um+10.54.40.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Remeshing Panel</td></tr>
</tbody></table>
The next step is the actual remeshing process. In the remeshig panel select the pattern you want to apply and hit the remesh button. For this example we choose either triangles quantized or quads quantized. This means that no chopped elements will end up at the boundary.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-pWYKm0gmoCM/UcAliSAf_MI/AAAAAAAAAUA/WAXhM1rOcpo/s1600/Bildschirmfoto+2013-06-18+um+11.03.58.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="103" src="http://2.bp.blogspot.com/-pWYKm0gmoCM/UcAliSAf_MI/AAAAAAAAAUA/WAXhM1rOcpo/s200/Bildschirmfoto+2013-06-18+um+11.03.58.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Quantized Triangles Mesh</td></tr>
</tbody></table>
The result of the remeshing operation is a flat mesh with the right connectivity. Press lift/flat to bring the vertices onto the target geometry. If you press this button again you are back to a flat mesh. In this flat mode one can do intermediate editing steps that we do not need for this simple example.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-DiCnZ8PhpR0/UcAliN2ABeI/AAAAAAAAAT4/oNondlwduIc/s1600/Bildschirmfoto+2013-06-18+um+11.03.19.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="108" src="http://3.bp.blogspot.com/-DiCnZ8PhpR0/UcAliN2ABeI/AAAAAAAAAT4/oNondlwduIc/s200/Bildschirmfoto+2013-06-18+um+11.03.19.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Quantized Quads Mesh</td></tr>
</tbody></table>
It is also possible to remesh with hexagons using the triangle pattern and an extra editing step. In some cases your model contains cuts and the remesh pattern has so called singularities. VaryLab has methods to cope with these situations and we will cover these advanced methods in a different post.<br />
<a href="http://3.bp.blogspot.com/-DiCnZ8PhpR0/UcAliN2ABeI/AAAAAAAAAT4/oNondlwduIc/s1600/Bildschirmfoto+2013-06-18+um+11.03.19.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="http://1.bp.blogspot.com/-3aUFUeEhkGg/UcAlhHc742I/AAAAAAAAATg/Se3yW9xU8OI/s1600/Bildschirmfoto+2013-06-18+um+10.55.32.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>
<br />
<br />
<br />
<br />
<br />
We hope this post helps understanding the features of VaryLab a bit better. See you for the next tutorial post.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-75118725347269364322013-06-17T23:02:00.000+02:002013-06-17T23:37:06.959+02:00VaryLab Optimization Kick-Start<br />
VaryLab is all about mesh optimization, we say discrete surface optimization. That means we modify a given mesh to have minimal energy in a certain sense. The energy in question is a combination of energies that is usually defined on the vertex positions of the input mesh. This post shows you how to optimize a mesh with VaryLab. It is a very simple example that illustrates the basic steps.<br />
<br />
<h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ecygHwYJFjo/Ub9poHteotI/AAAAAAAAAQU/1qaOkBH7DEM/s1600/Bildschirmfoto+2013-06-17+um+18.08.52.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="95" src="http://4.bp.blogspot.com/-ecygHwYJFjo/Ub9poHteotI/AAAAAAAAAQU/1qaOkBH7DEM/s200/Bildschirmfoto+2013-06-17+um+18.08.52.png" width="200" /></a></div>
1. Import and Analysis</h3>
<br />
In this example we optimize a planarity measure of quadrilateral faces. We start with a quad-mesh and a maximum relative face non-planarity of 8.1%. You can download the model <a href="http://my.varylab.com/download/test01.obj" target="_blank">here</a> if you like to follow this example.<br />
<br />
<div>
<a href="http://4.bp.blogspot.com/-Yu_dYxTCHgQ/Ub9u6I2VRPI/AAAAAAAAARU/YzFXxQE3mg0/s1600/Bildschirmfoto+2013-06-17+um+22.17.12.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="86" src="http://4.bp.blogspot.com/-Yu_dYxTCHgQ/Ub9u6I2VRPI/AAAAAAAAARU/YzFXxQE3mg0/s200/Bildschirmfoto+2013-06-17+um+22.17.12.png" width="200" /></a><br />
The Halfedge Data Visualization panel contains a data source for for planarity. You can add a node color visualizer and a histogram to the list of active visualizations. Here we adjust the color map to red-green for the node colors and the histogram such that we can compare the model and the values in the data view. The histogram visualizer has a parameter for the number of bins to use, we set it to 40.</div>
<div>
<a href="http://2.bp.blogspot.com/-kFnID5tAiD0/Ub9poDzrvyI/AAAAAAAAAQY/t0YpqEp9Vks/s1600/Bildschirmfoto+2013-06-17+um+18.09.13.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="95" src="http://2.bp.blogspot.com/-kFnID5tAiD0/Ub9poDzrvyI/AAAAAAAAAQY/t0YpqEp9Vks/s200/Bildschirmfoto+2013-06-17+um+18.09.13.png" width="200" /></a><br />
The model is a bent and twisted part of cylinder with almost planar quadrilaterals on the top and non-planar quad at the boundary. We have to decide on the goals of the optimization. In this case we want to keep the structure of the mesh and modify positions of all vertices.<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<h3>
<a href="http://2.bp.blogspot.com/-w_OXqdP8FKA/Ub92EMv1FBI/AAAAAAAAARk/HAHjVCwJqnY/s1600/Bildschirmfoto+2013-06-17+um+22.47.32.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-w_OXqdP8FKA/Ub92EMv1FBI/AAAAAAAAARk/HAHjVCwJqnY/s200/Bildschirmfoto+2013-06-17+um+22.47.32.png" width="128" /></a>2. Optimization Configuration</h3>
<br />
To begin optimization of the active mesh we have to select the energies that contribute to the energy used by the optimization core. The optimizer plug-ins panel holds a list of all available energies. If you use VaryLab online service you probably have only the energies you selected before startup. In this case we select the planar quads energy and choose the volume variant from the options. This energy is the sum of the volumes of tetrahedra spanned by non-planar quadrilaterals. This sum is scaled to render the energy scale invariant.<br />
<br />
<a href="http://4.bp.blogspot.com/-Ls3EgFsILtg/Ub9po-T_GkI/AAAAAAAAAQo/W-Ttd8T51RY/s1600/Bildschirmfoto+2013-06-17+um+18.10.56.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-Ls3EgFsILtg/Ub9po-T_GkI/AAAAAAAAAQo/W-Ttd8T51RY/s200/Bildschirmfoto+2013-06-17+um+18.10.56.png" width="152" /></a>From the optimization panel we open the constraints sub-panel and uncheck all constraints especially the boundary should be variable. You can constrain the optimization to move the vertices only in the allowed coordinate directions. There are other more advanced constraints that can be enabled.<br />
A tolerance of -8 lets the optimization core optimize the energy such that the gradient norm is less than \(10^{-8}\). The number iterations stops the optimizer after the given number of optimization steps. This number depends very much on the optimization method you select in the next box. There are methods that converge slowly but achieve nicer results than other methods that minimize the energy more rapidly. In the example we choose CG as the optimization method and a number of 180 iterations to perform.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<h3>
<a href="http://3.bp.blogspot.com/-bKkpjj5gbAI/Ub97hDNJNdI/AAAAAAAAAR0/Hn86rX7bC7Q/s1600/Bildschirmfoto+2013-06-17+um+23.10.30.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="93" src="http://3.bp.blogspot.com/-bKkpjj5gbAI/Ub97hDNJNdI/AAAAAAAAAR0/Hn86rX7bC7Q/s200/Bildschirmfoto+2013-06-17+um+23.10.30.png" width="200" /></a>
3. Optimization</h3>
<div>
<a href="http://3.bp.blogspot.com/-4t0sjSL5204/Ub9ppDblUnI/AAAAAAAAAQs/P4awMMXtxkw/s1600/Bildschirmfoto+2013-06-17+um+21.49.28.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="106" src="http://3.bp.blogspot.com/-4t0sjSL5204/Ub9ppDblUnI/AAAAAAAAAQs/P4awMMXtxkw/s200/Bildschirmfoto+2013-06-17+um+21.49.28.png" width="200" /></a>To start the optimization hit the optimize button. A new optimization job is queued in the list of jobs and started if no other jobs are waiting to be executed. You can review and manage jobs in the job monitor. Here any pending and currently running optimization job can be cancelled. The progress bar of the optimization job shows the current iteration that is performed by the optimization core. It is possible to preview the shape of the model during optimization. The animate button starts a animated optimization job that updates the positions of vertices during optimization.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/--a-bE2pSZYU/Ub9ppHPKO1I/AAAAAAAAAQ0/90n1ULrfTL8/s1600/Bildschirmfoto+2013-06-17+um+21.50.27.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="114" src="http://3.bp.blogspot.com/--a-bE2pSZYU/Ub9ppHPKO1I/AAAAAAAAAQ0/90n1ULrfTL8/s200/Bildschirmfoto+2013-06-17+um+21.50.27.png" width="200" /></a></div>
<div>
During optimization you can watch the optimization core doing its work in the optimization protocol panel. This panel shows a graph for every energy that is selected for optimization. Additionally, the norm of the gradient is plotted. From this information you can decide how the optimization is performing and if parameters should be adjusted. In our example we need approimately 100 iteration for the energy to drop below \(10^{-6}\) and 80 more iterations for the optimization to converge.</div>
<div>
<br /></div>
<div>
<a href="http://1.bp.blogspot.com/-OPTV-JTOC2g/Ub9ppl1D0UI/AAAAAAAAAQ8/1m8Fr2h-d1E/s1600/Bildschirmfoto+2013-06-17+um+21.54.03.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="94" src="http://1.bp.blogspot.com/-OPTV-JTOC2g/Ub9ppl1D0UI/AAAAAAAAAQ8/1m8Fr2h-d1E/s200/Bildschirmfoto+2013-06-17+um+21.54.03.png" width="200" /></a>After optimization has finished the new model is shown in the view and data visualizers are updated to reflect new data. One can see for our model that optimization has changed the boundary shape drastically and faces are perfectly planar up to a tolerance of 0.02% for the most non-planar quad.</div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0Berlin, Deutschland52.519171 13.40609119999999252.519171 13.406091199999992 52.519171 13.406091199999992tag:blogger.com,1999:blog-8176765450741308060.post-1824222881378634842013-06-16T18:29:00.001+02:002013-06-17T17:44:31.274+02:00VaryLab Usage 101When using VaryLab for the first time the handling might seem a little unorthodox to people. I give a VaryLab usage 101 here to get you started frictionless.<br />
<div>
<br /></div>
<h3 style="clear: both;">
<a href="http://3.bp.blogspot.com/-8fA7kC2O57s/Ub4crePDdyI/AAAAAAAAAPI/d5u5HHzK0Fw/s1600/Schnappschuss+(2013-06-16+22.14.16).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="163" src="http://3.bp.blogspot.com/-8fA7kC2O57s/Ub4crePDdyI/AAAAAAAAAPI/d5u5HHzK0Fw/s200/Schnappschuss+(2013-06-16+22.14.16).png" width="200" /></a>
1. Model Import/Export</h3>
<div>
We support a variety of file formats. To be precise we use the library <a href="http://www.jreality.de/" target="_blank">jReality</a> and its file reading and writing capabilities. The most robust format we use and recommend to you is OBJ. This can also be imported and exported by Rhinoceros 3D. It can be loaded and saved from the "Halfedge jReality Inteface" via the Import and Export buttons. This panel also supports layer management of meshes and layer mesh appearance properties.</div>
<div>
<br /></div>
<h3 style="clear: right;">
2. Navigation
</h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-f-HEVnJWPLc/Ub4dwwQXXyI/AAAAAAAAAPY/mJKs2pvp_cs/s1600/Schnappschuss+(2013-06-16+22.18.57).png" imageanchor="1" style="argin-bottom: 1em; clear: both; float: right; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-f-HEVnJWPLc/Ub4dwwQXXyI/AAAAAAAAAPY/mJKs2pvp_cs/s1600/Schnappschuss+(2013-06-16+22.18.57).png" /></a></div>
<br />
<div>
The most important commands are rotate, zoom, and fit. In the main tool bar you find buttons that en/disable the corresponding tools. Some specialities apply when using those tools. </div>
<div>
<b>Rotate</b></div>
<div>
The displayed model can be rotated by dragging on the background. The rotate tool is programmed to spin the model if you let the mouse button loose while dragging the cursor. This can be interrupted by clicking the scene background again without drag. </div>
<div>
<b>Zoom</b></div>
<div>
The zoom tool in the tool bar must be enabled in order to enable mouse wheel zoom. The fit or encompass tool does not respect the current zoom factor so you can always find the default view. </div>
<div>
<b>Fit/Encompass</b></div>
<div>
Encompassing or fitting the model is one of the most frequently used commands. Hit the 'e' key to fit the model to the view. If you zoomed your view this is not included. The encompass command can also be enabled in the main tool bar. </div>
<div>
<br /></div>
<h3 style="clear: both;">
<a href="http://3.bp.blogspot.com/-Kiz2TGOWl7I/Ub4en1fogvI/AAAAAAAAAPk/vwaDlnso9lQ/s1600/Schnappschuss+(2013-06-16+22.22.42).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-Kiz2TGOWl7I/Ub4en1fogvI/AAAAAAAAAPk/vwaDlnso9lQ/s200/Schnappschuss+(2013-06-16+22.22.42).png" width="176" /></a>
3. Model Display</h3>
<div>
The display properties of your model are important, they define what features of your mode you see and how those are displayed. The appearance panel lets you edit many display parameters. A VaryLab model always consists of vertices, edges, and faces. The node visibility can also adjusted in the main tool bar.</div>
<div>
<b>Vertices</b></div>
<div>
Hide or show the vertices of your model with the '1' key. Usually we display little spheres centered at the vertex locations. You can select vertices by click on these spheres. A second click deselected the vertex. Adjust the appearance or vertices in the global appearance panel. </div>
<div>
<b>Edges</b></div>
<div>
Hit the '2' key to show or hide edges of your model. Select edges with the mouse. </div>
<div>
<b>Faces</b></div>
<div>
The key for faces is the '3' key.<br />
<br />
<h3 style="clear: both;">
<a href="http://2.bp.blogspot.com/-fE-wWCCSY3U/Ub8pD8T801I/AAAAAAAAAP0/suEyRdHMsTw/s1600/Bildschirmfoto+2013-06-17+um+17.18.07.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="143" src="http://2.bp.blogspot.com/-fE-wWCCSY3U/Ub8pD8T801I/AAAAAAAAAP0/suEyRdHMsTw/s200/Bildschirmfoto+2013-06-17+um+17.18.07.png" width="200" /></a>
4. Editing</h3>
<a href="http://4.bp.blogspot.com/-2niYcEzfGoM/Ub8sg55NQ8I/AAAAAAAAAQE/fzDVH_SKxV4/s1600/Bildschirmfoto+2013-06-17+um+17.33.06.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="116" src="http://4.bp.blogspot.com/-2niYcEzfGoM/Ub8sg55NQ8I/AAAAAAAAAQE/fzDVH_SKxV4/s200/Bildschirmfoto+2013-06-17+um+17.33.06.png" width="200" /></a>To edit a model you have to select some of its nodes. You can either click on a vertex, an edge, or a face to select, or you cn use the marquee tool to select a range of nodes from the model. Drag the mouse while holding down the Shift-Key selects vertices. With the ALT-KEY you select edges, and with the CTRL-Key faces are added to the selection. You can mix node types in the selection. To clear the selection, press CTRL-C. To delete nodes from the model just press DEL. There is a pop-up menu if right-click the view. Here you find further editing commands.</div>
<div>
<br /></div>
<div>
I hope this will be some use to VaryLab beginners. Please ask questions if there are things unclear. </div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-4031221268268240012013-06-15T23:43:00.004+02:002013-06-16T17:40:30.256+02:00Rhino 4 and 5 Plug-Ins have arrived<a href="http://3.bp.blogspot.com/-nr-93qaly3Y/UbzfJTWiojI/AAAAAAAAAOc/DFLjbRczi4A/s1600/rhino_plugin.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-nr-93qaly3Y/UbzfJTWiojI/AAAAAAAAAOc/DFLjbRczi4A/s1600/rhino_plugin.png" /></a>The VaryLab plug-ins for Rhino3D 4 and 5 are ready. Rhino 4 32 Bit and Rhino 5 32/64 Bit are supported. We prepare a <a href="http://www.varylab.com/p/rhino-plug-in.html">manual page</a> for the user interface of the plug-in. You can download the plug-in files in the user area at <a href="http://my.varylab.com/#downloads">http://my.varylab.com/#downloads</a>.<br />
<br />Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-21138965264524666332013-06-13T08:45:00.001+02:002013-06-17T17:45:06.826+02:00Spring Energy<a href="http://2.bp.blogspot.com/-cWBsYmtb5HE/Ubo1EEg1Y3I/AAAAAAAAAOM/yqNsnKMDfrE/s1600/Schnappschuss+(2013-06-13+23.02.42).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="120" src="http://2.bp.blogspot.com/-cWBsYmtb5HE/Ubo1EEg1Y3I/AAAAAAAAAOM/yqNsnKMDfrE/s200/Schnappschuss+(2013-06-13+23.02.42).png" width="200" /></a>The spring energy implemented in VaryLab comes with a few options that I want to explain here.<br />
<div>
The user interface contains controls that adjust rest length to be constant length (const. option) , the original lenght (orig option), or rest range (range option) of springs. Every edge of the discrete surface is treated as a spring during optimization. In addition to setting a fixed length or range the optimizer can calculate the mean edge length of the mesh (avg. option) and use it as rest length of the springs. This mean can be automatically updated (update check box) when optimization starts. In a quad mesh the diagonals can be treated as springs (diagonals check box). The strength value is a coefficient of the energy when used in conjunction with other energies.</div>
<div>
<br /></div>
<div>
Stefan</div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-88723942269473218732013-06-12T00:08:00.001+02:002013-06-12T00:17:38.287+02:00Module and Bundle FixesIn the latest release we have included a few module structure updates and module bundle fixes. The planarization bundle now contains corresponding visualizer plug-ins. Optimization essentials are included in the planarization bundle. Default property files are used for newly created projects. And some more improvements and bug fixes. <div><br><div>Stefan</div></div>Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-28201477068263266462013-05-25T00:43:00.001+02:002013-06-12T00:10:48.430+02:00Approaching Feature FreezeVaryLab Service is constantly evolving. We are now approaching a feature-freeze status. However for the beta phase there are some things yet to be implemented. Here is a list:<br>
<div>
<br>
<div>
- example models for each bundle</div>
<div>
- default property files for each bundle. </div>
<div>
- bundle blog pages need content. </div>
<div>
- issue tracker setup</div>
<div>
- separate project configuration pages. </div>
<div>
<br></div>
<div>
The beta version release date is the</div>
</div>
<div>
22th of Juli 2013</div>
<div>
Save the date!</div>
<div>
<br></div><div>Stefan</div>
Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0tag:blogger.com,1999:blog-8176765450741308060.post-66281654410765257392013-05-04T20:22:00.004+02:002013-05-25T00:45:05.305+02:00WelcomeWelcome to the VaryLab Service website. Anonymoushttp://www.blogger.com/profile/18150369874452791934noreply@blogger.com0