{"id":119,"date":"2023-07-15T12:05:52","date_gmt":"2023-07-15T12:05:52","guid":{"rendered":"https:\/\/summergeometry.org\/sgi2023\/?p=119"},"modified":"2023-07-15T23:02:53","modified_gmt":"2023-07-15T23:02:53","slug":"last-day-of-sgi-2023-tutorial-week","status":"publish","type":"post","link":"https:\/\/summergeometry.org\/sgi2023\/last-day-of-sgi-2023-tutorial-week\/","title":{"rendered":"Last Day of SGI 2023 Tutorial Week"},"content":{"rendered":"\n<p>After many exercises, lectures, presentations, and MATLABs abruptly closing, we reached the end of the first week of SGI 2023. It was a wild and incredible ride. And we reach the end with a course by <a href=\"https:\/\/nmwsharp.com\/\">Nicholas Sharp<\/a> on\u00a0<strong>Robustness in Geometry Processing<\/strong>. We also had a guest lecture by <a href=\"http:\/\/web.uvic.ca\/~teseo\/\">Teseo Schneider<\/a> and, finally, our release of the projects for the next week.<em>\u00a0<\/em>Having this experience while in my home city of\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Recife\" target=\"_blank\">Recife<\/a>, Brazil is incredible.<\/p>\n\n\n\n<p>In Sharp&#8217;s presentation, we learned that meshes extracted from real data are much less clean than ideal meshes. So, we must create techniques and methods to perform robust geometry processing. In the first part, we learned about floating point arithmetic. We learned that contrary to what we programmers want to think, floating point numbers are NOT real numbers and can introduce many errors during arithmetic. For example, we learned that there are better ideas than performing a strict equality comparison and that we should add a tolerance factor to account for errors.<\/p>\n\n\n\n<p>We also got an introduction to different numerical solvers and how meshes with some properties can break numerical solvers. Although these properties can result from error, sometimes they are intentional. As an example of such properties that can break processing, meshes can have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Duplicate Vertices<\/li>\n\n\n\n<li>Faces of wrong orientation<\/li>\n\n\n\n<li>Can be nonmanifolds<\/li>\n\n\n\n<li>And many more<\/li>\n<\/ul>\n\n\n\n<p>To get a feeling of how to perform different processing methods, we did some activities on how to do processing with &#8220;bad meshes&#8221; Those activities are available&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/odedstein\/sgi-introduction-course\/tree\/main\" target=\"_blank\">here<\/a>. One such example was an activity on bad meshes. For example, we were given a &#8220;bad_armadillo&#8221;, a variation of the traditional armadillo mesh that, when loaded, looked odd:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-4.png\" alt=\"\" class=\"wp-image-127\" width=\"358\" height=\"268\" srcset=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-4.png 700w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-4-300x225.png 300w\" sizes=\"auto, (max-width: 358px) 100vw, 358px\" \/><\/figure>\n<\/div>\n\n\n<p>To correct this issue, we used Meshlab. When we loaded it into Meshlab, it became clear that some normals were inverted:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-5.png\" alt=\"\" class=\"wp-image-128\" width=\"332\" height=\"326\" srcset=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-5.png 667w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-5-300x295.png 300w\" sizes=\"auto, (max-width: 332px) 100vw, 332px\" \/><\/figure>\n<\/div>\n\n\n<p>So, after orienting the meshes to the right side, we &#8220;fixed the mesh&#8221;:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-6.png\" alt=\"\" class=\"wp-image-129\" width=\"353\" height=\"375\" srcset=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-6.png 593w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-6-282x300.png 282w\" sizes=\"auto, (max-width: 353px) 100vw, 353px\" \/><\/figure>\n<\/div>\n\n\n<p>And now MATLAB can load it the proper way.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-7.png\" alt=\"\" class=\"wp-image-130\" width=\"416\" height=\"311\" srcset=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-7.png 700w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-7-300x225.png 300w\" sizes=\"auto, (max-width: 416px) 100vw, 416px\" \/><\/figure>\n<\/div>\n\n\n<p>We also got a presentation by Professor Teseo Schneider of the University of Victoria on their work on collision detection. Their technique could simulate different structures such as chains, arches, dimensional card houses, and even a cube rotating in a turntable with varying friction parameters. To end the lecture, he showed a really satisfying simulation of a stack of bricks being hit by a wrecking ball (Figure taken from his paper, available&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/ipc-sim.github.io\/rigid-ipc\/assets\/rigid_ipc_paper.pdf\" target=\"_blank\">here<\/a>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"507\" src=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-3.png\" alt=\"\" class=\"wp-image-123\" srcset=\"https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-3.png 852w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-3-300x179.png 300w, https:\/\/summergeometry.org\/sgi2023\/wp-content\/uploads\/2023\/07\/image-3-768x457.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/figure>\n\n\n\n<p>Finally, at the end of the day, we got the list of the projects we will work on next week. I was paired with many amazingly talented fellow students (one of them is also Brazilian like me!) to work on a project on\u00a0<strong>Hybrid Neural and Grid Representations,<\/strong>\u00a0mentored by <a href=\"https:\/\/peterchencyc.com\/\">Peter Chen<\/a>. I can&#8217;t wait for what SGI 2023 has in store!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After many exercises, lectures, presentations, and MATLABs abruptly closing, we reached the end of the first week of SGI 2023. It was a wild and incredible ride. And we reach the end with a course by Nicholas Sharp on\u00a0Robustness in Geometry Processing. We also had a guest lecture by Teseo Schneider and, finally, our release [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[46,47,45],"coauthors":[17],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-tutorial-week","tag-geometry-processing","tag-mesh","tag-sgi-tutorial-week"],"_links":{"self":[{"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/posts\/119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/comments?post=119"}],"version-history":[{"count":9,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/posts\/119\/revisions"}],"predecessor-version":[{"id":139,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/posts\/119\/revisions\/139"}],"wp:attachment":[{"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/media?parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/categories?post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/tags?post=119"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2023\/wp-json\/wp\/v2\/coauthors?post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}