{"id":1001,"date":"2022-09-15T13:38:18","date_gmt":"2022-09-15T13:38:18","guid":{"rendered":"http:\/\/summergeometry.org\/sgi2022\/?p=1001"},"modified":"2022-09-15T13:38:18","modified_gmt":"2022-09-15T13:38:18","slug":"geometric-modeling-for-isogeometric-analysis","status":"publish","type":"post","link":"https:\/\/summergeometry.org\/sgi2022\/geometric-modeling-for-isogeometric-analysis\/","title":{"rendered":"Geometric Modeling for Isogeometric Analysis"},"content":{"rendered":"\n<p class=\"has-text-align-center wp-block-paragraph\"><em>by Denisse Garnica and Tiago Fernandes<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In industry CAD (Computer-Aided Design) representation for 3D models is very used, and it is estimated that about 80% of overall analysis time is devoted to mesh generation in the automotive, aerospace and shipbuilding industries. But, the geometric approximation can lead to accuracy problems and the construction of the finite element geometry is costly, time-consuming and creates inaccuracies.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isogeometric Analysis (IGA) is a technique that integrates FEA (Finite Element Analysis) into CAD (Computer-Aided Design) models, enabling the model to be designed and tested using the same domain representation. IGA is based on NURBS (Non-Uniformal RAtional B-Splines) a standard technology employed in CAD systems. One of the benefits of using IGA is that there is no approximation error, as the model representation is exact, unlike conventional FEA approaches, which need to discretize the model to perform the simulations.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For our week 4 project we followed the pipeline described in Yuxuan Yu\u2019s paper [1], to convert conventional triangle meshes into a spline based geometry, which is ready for IGA, and we ran some simulations to test it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[1] <a href=\"https:\/\/arxiv.org\/abs\/2011.14213\">[2011.14213] HexGen and Hex2Spline: Polycube-based Hexahedral Mesh Generation and Spline Modeling for Isogeometric Analysis Applications in LS-DYNA (arxiv.org)<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>HexGen and Hex2Spline Pipeline<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The general pipeline consists of two parts: the HexGen, which transforms a CAD Model into a All-Hex Mesh, and the Hex2Spline, which transforms the All-Hex Mesh into a Volumetric Spline, ready for IGA. The code can be found here <a href=\"https:\/\/github.com\/SGI-2022\/HexDom-IGApipeline\">GitHub &#8211; SGI-2022\/HexDom-IGApipeline<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"973\" height=\"866\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image9.png\" alt=\"\" class=\"wp-image-1007\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image9.png 973w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image9-300x267.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image9-768x684.png 768w\" sizes=\"auto, (max-width: 973px) 100vw, 973px\" \/><figcaption><strong>HexGen and Hex2Spline<\/strong> pipeline<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Following the pipeline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For testing the pipeline, we reproduced the steps with our own models. LS-prepost was used to visualize and edit the 3D models. We started with two surface triangle mesh:<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"750\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/1-5.png\" alt=\"\" class=\"wp-image-1078\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/1-5.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/1-5-300x293.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption>Penrose triangle mesh<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1773\" height=\"995\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited.png\" alt=\"\" class=\"wp-image-1080\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited.png 1773w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited-300x168.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited-1024x575.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited-768x431.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited-1536x862.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image10-5-edited-1200x673.png 1200w\" sizes=\"auto, (max-width: 1773px) 100vw, 1773px\" \/><figcaption>SGI triangle mesh<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The first step of the pipeline is using a surface segmentation algorithm based on CVT (Centroidal Voronoi Tessellation), using the Segmentation.exe script. It was used to segment the triangle mesh into 6 regions, one for each of the three principal normal vectors and their opposite normals (\u00b1\ud835\udc4b, \u00b1\ud835\udc4c, \u00b1\ud835\udc4d).<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"630\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/2.png\" alt=\"\" class=\"wp-image-1039\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/2.png 660w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/2-300x286.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><figcaption>Penrose initial segmentation<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1772\" height=\"997\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited.png\" alt=\"\" class=\"wp-image-1041\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited.png 1772w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited-300x169.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited-1024x576.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited-768x432.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited-1536x864.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image3-edited-1200x675.png 1200w\" sizes=\"auto, (max-width: 1772px) 100vw, 1772px\" \/><figcaption>SGI initial segmentation<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The initial segmentation only generates 6 clusters, and for more complex shapes we need a better segmentation to later build a polycube structure. Therefore, a more detailed segmentation is done, trying to better divide the mesh into regions that can be represented by polycubes. This step is done manually.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"774\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/3.png\" alt=\"\" class=\"wp-image-1044\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/3.png 755w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/3-293x300.png 293w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><figcaption>Penrose segmentation<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1772\" height=\"997\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited.png\" alt=\"\" class=\"wp-image-1046\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited.png 1772w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited-300x169.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited-1024x576.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited-768x432.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited-1536x864.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image7-edited-1200x675.png 1200w\" sizes=\"auto, (max-width: 1772px) 100vw, 1772px\" \/><figcaption>SGI segmentation<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Now it is clearly visible which are the faces for the polycube structure. We can now apply a linearization operation on the segmentation, using the Polycube.exe script.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"877\" height=\"790\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/4.png\" alt=\"\" class=\"wp-image-1047\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/4.png 877w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/4-300x270.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/4-768x692.png 768w\" sizes=\"auto, (max-width: 877px) 100vw, 877px\" \/><figcaption>Penrose linearized segmentation<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1773\" height=\"997\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited.png\" alt=\"\" class=\"wp-image-1049\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited.png 1773w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited-300x169.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited-1024x576.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited-768x432.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited-1536x864.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image16-edited-1200x675.png 1200w\" sizes=\"auto, (max-width: 1773px) 100vw, 1773px\" \/><figcaption>SGI linearized segmentation<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">After that, we join the faces to create the cubes and finally have our polycube structure. This step is also done manually. The image in the right represents the cubes decreased in volume, for better visualization.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"742\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/5.png\" alt=\"\" class=\"wp-image-1050\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/5.png 766w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/5-300x291.png 300w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><figcaption>Penrose polycube structure<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1773\" height=\"995\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited.png\" alt=\"\" class=\"wp-image-1052\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited.png 1773w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited-300x168.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited-1024x575.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited-768x431.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited-1536x862.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image1-edited-1200x673.png 1200w\" sizes=\"auto, (max-width: 1773px) 100vw, 1773px\" \/><figcaption>SGI polycube structure<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Then we want to build a parametric mapping between polycube and CAD model, which takes as input the triangle mesh and the polycube structure, to create an all-hex mesh. For that, we use the ParametricMapping.exe script.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"761\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/6.png\" alt=\"\" class=\"wp-image-1053\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/6.png 770w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/6-300x296.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/6-768x759.png 768w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><figcaption>Penrose all-hex mesh<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1402\" height=\"787\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited.png\" alt=\"\" class=\"wp-image-1072\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited.png 1402w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited-300x168.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited-1024x575.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited-768x431.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image6-edited-1200x674.png 1200w\" sizes=\"auto, (max-width: 1402px) 100vw, 1402px\" \/><figcaption>SGI all-hex mesh<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">And in the last step, we use the Hex2Spline.exe script to generate the splines.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"706\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/7.png\" alt=\"\" class=\"wp-image-1054\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/7.png 765w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/7-300x277.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><figcaption>Penrose spline<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1773\" height=\"995\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited.png\" alt=\"\" class=\"wp-image-1075\" srcset=\"https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited.png 1773w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited-300x168.png 300w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited-1024x575.png 1024w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited-768x431.png 768w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited-1536x862.png 1536w, https:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image15-edited-1200x673.png 1200w\" sizes=\"auto, (max-width: 1773px) 100vw, 1773px\" \/><figcaption>SGI spline<\/figcaption><\/figure>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">For testing the Splines, we performed a Modal Analysis (simple eigenvalue problem) in each of them, using the LS-DYNA simulator. An example for a specific displacement can be seen below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image5-3.gif\" alt=\"\" class=\"wp-image-1062\" width=\"610\" height=\"332\"\/><figcaption>Penrose modal analysis<\/figcaption><\/figure>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1898\" height=\"1034\" src=\"http:\/\/summergeometry.org\/sgi2022\/wp-content\/uploads\/2022\/09\/image13-2.gif\" alt=\"\" class=\"wp-image-1068\"\/><figcaption>SGI modal analysis<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Improvements for the pipeline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The pipeline used still have two manual steps: the segmentation of the mesh, and building the polycube structure given the linear surface segmentation. During the week, we thought and discussed some possible approaches to automate the second step. Given the external faces of the polycube structure, we need to recover the volumetric information. We came up with a simple approach using graphs, representing the polycubes as vertices, the internal faces as edges, and using the external faces to build the connectivity between the polycubes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Although, this approach doesn&#8217;t solve all the cases, for example, when a polycube consists mostly of internal faces, and are not uniquely determined. And even if we automated this step, the manual segmentation process still is a huge bottleneck in the pipeline. One solution to the problem would be generating the polycube structure directly from the mesh, without the need of a segmentation, but it&#8217;s a hard problem to automatically build a structure that doesn&#8217;t have a big amount of polycubes and still represents well the geometry and topology of the mesh.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>by Denisse Garnica and Tiago Fernandes In industry CAD (Computer-Aided Design) representation for 3D models is very used, and it is estimated that about 80% of overall analysis time is devoted to mesh generation in the automotive, aerospace and shipbuilding industries. But, the geometric approximation can lead to accuracy problems and the construction of the [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[144,145],"class_list":["post-1001","post","type-post","status-publish","format-standard","hentry","category-research","tag-isogeometric-analysis","tag-splines"],"_links":{"self":[{"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/posts\/1001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/comments?post=1001"}],"version-history":[{"count":10,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/posts\/1001\/revisions"}],"predecessor-version":[{"id":1126,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/posts\/1001\/revisions\/1126"}],"wp:attachment":[{"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/media?parent=1001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/categories?post=1001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/summergeometry.org\/sgi2022\/wp-json\/wp\/v2\/tags?post=1001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}