
{"id":378,"date":"2020-05-11T08:51:46","date_gmt":"2020-05-11T08:51:46","guid":{"rendered":"https:\/\/conferences.eg.org\/eg2021\/?page_id=378"},"modified":"2021-06-02T11:05:04","modified_gmt":"2021-06-02T11:05:04","slug":"tutorials","status":"publish","type":"page","link":"https:\/\/conferences.eg.org\/eg2021\/program\/tutorials\/","title":{"rendered":"Tutorials"},"content":{"rendered":"<p>[vc_row][vc_column][vc_column_text]<\/p>\n<h2><\/h2>\n<h2 style=\"text-align: center\">TUTORIALS<\/h2>\n<p>[\/vc_column_text][vc_column_text]<\/p>\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-1162898cffe8e86af397dd5ad1b8c93ce1258084b9ea54af8c7e1e2eba0561fa\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-46c072c2d2652dbc9a4e061cdd4beff5fb4b21d83757a078cb396de7fcbe6fcc\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-0b3fb7d23b1c378b9c5e5885772b27134f9a57d96ff8688a969d4d43de783b8f\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-bb646b19fe9283a5a3e1b3dce8e9fc73c5f5f3c81b27825e5843fd0182316a20\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-47c5daf8042e8f5014f7696f843edb2ac045dc9475d9e087937ba2cf7bc05147\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-21fac86819f64cc04372e9cfcb728f97e1813cd1ff6463fc6a02f9eb31ceb8fa\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-211f9497992b09eaf9a41dd7e6cce71037bdb056450d0be6b5e05a170004e200\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-29c6e8928cbd66ac3e64958e2c800ed18ee009c122a993ba91424cec1d7ab505\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-4a627706df4ecf67d1786474eeab18abfd364fda4a953fb492d6ee9d010b7696\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-5924fa46f6cfa604649b39c53767d21af6179f114e3fb298aeb2c33e515eb1c2\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-47b4ec706a20cdee28751b167b974fc1cba07ae4148aca4b6fa71f7771f17d89\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-4f9ea5c8c6a1a4c5c3900f93e2d92dc5d46055bb6a25a2b3e70d4d2da8bfe84e\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-d846089df41329d17b492595621b80957cc34220b174798e31b866194f0128f1\">\n<div class=\"views-element-container contextual-region element-container-wrapper\">\n<div class=\"contextual-region view view-sessions-for-wordpress view-id-sessions_for_wordpress view-display-id-page_2 js-view-dom-id-153dc0388bfbf17ade79803505df8eef95a729d86abf0ecb0a6f1c2a283db86c\">\n<div data-contextual-id=\"entity.view.edit_form:view=sessions_for_wordpress:location=page&amp;name=sessions_for_wordpress&amp;display_id=page_2&amp;langcode=en\" data-contextual-token=\"AHX0k0I-841u5mT_y18jdeIY2trZNYmuNVi_-M8KZB4\"><\/div>\n<div class=\"view-filters\"><\/div>\n<div class=\"view-content view-rows\">\n<h3 class=\"view-title\">Monday, May 3, 2021<\/h3>\n<div class=\"views-row\">\n<div class=\"views-field views-field-field-date\">\n<div class=\"field-content\">15:00 &#8211; 18:00<\/div>\n<\/div>\n<div class=\"views-field views-field-title\"><span class=\"field-content\"><a href=\"https:\/\/diglib.eg.org\/handle\/10.2312\/egt20211034\">Tutorial 1: Inverse Computational Spectral Geometry<\/a> <a class=\"inline\" title=\"Watch the live stream\" href=\"https:\/\/youtu.be\/EBJFYxK9Vos\"><img decoding=\"async\" class=\"external-link-icon\" src=\"https:\/\/conferences.eg.org\/eg2021\/wp-content\/uploads\/sites\/14\/2020\/12\/youtube-1.jpg\" \/><\/a><\/span><\/div>\n<div class=\"views-field views-field-field-contributions\">\n<div class=\"field-content\"><\/div>\n<\/div>\n<div class=\"views-field views-field-body\">\n<div class=\"field-content\">\n<p><strong>Target audience<\/strong>: Introductory to intermediate<\/p>\n<p><strong>Outline<\/strong>:<\/p>\n<p>In the last decades, geometry processing has attracted a growing interest thanks to the wide availability of new devices and software that make 3D digital data available and manipulable to everyone. Typical issues that are faced by geometry processing algorithms include the variety of discrete representations for 3D data (point clouds, polygonal or tet-meshes and voxels), or the type of deformation this data may undergo. Powerful approaches to address these issues come from looking at the spectral decomposition of canonical differential operators, such as the Laplacian, which provides a rich, informative, robust, and invariant representation of the 3D objects. Reasoning about spectral quantities is at the core of spectral geometry, which has enabled unprecedented performance in many tasks of computer graphics (e.g., shape matching with functional maps, shape retrieval, compression, and texture transfer), as well as contributing in opening new directions of research. The focus of this tutorial is on inverse computational spectral geometry. We will offer a different perspective on spectral geometric techniques, supported by recent successful methods in the graphics and 3D vision communities, as well as older, but notoriously overlooked results. Here, the interest shifts from studying the \u201cforward\u201d path typical of spectral geometry pipelines (e.g., computing Laplacian eigenvalues and eigenvectors of a given shape) to studying the inverse path (e.g., recovering a shape from given Laplacian eigenvalues, like in the classical \u201chearing the shape of the drum\u201d problem). As is emblematic of inverse problems, the ill-posed nature of the reverse direction requires additional effort, but the benefits can be quite considerable as showcased on several challenging tasks in graphics and geometry processing. The purpose of the tutorial is to overview the foundations and the current state of the art on inverse computational spectral geometry, to highlight the main benefits of inverse spectral pipelines, as well as their current limitations and future developments in the context of computer graphics. The tutorial is aimed at a wide audience with a basic understanding of geometry processing, and will be accessible and interesting to students, researchers and practitioners from both the academia and the industry.<\/p>\n<p><strong>Syllabus<\/strong>:<\/p>\n<ul>\n<li>Introduction: Motivation and historical overview<\/li>\n<li>Problem foundations: Shape-from-spectrum as a classical problem in mathematical physics, inverse eigenvalue problems in matrix calculus, shape-from-metric and shape-from-intrinsic operators<\/li>\n<li>Background: The forward direction of classical spectral geometry processing<\/li>\n<li>Inverse spectral geometry in CG: Motivations, applications, and examples in graphics<\/li>\n<li>Computational techniques: Existing approaches based on formulating an optimization problem, numerical methods and machine learning-based techniques<\/li>\n<li>Applications: Inverse spectral geometric pipelines addressing practical problems in graphics<\/li>\n<li>Open problems and future directions: Main limitations of current approaches, next steps and open problems<\/li>\n<li>Conclusions and Q&amp;A<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"views-field views-field-field-authors\">\n<div class=\"field-content\">Emanuele Rodol\u00e0, Simone Melzi, Luca Cosmo, Michael Bronstein, Maks Ovsjanikov<\/div>\n<\/div>\n<\/div>\n<div class=\"views-row\">\n<div class=\"views-field views-field-field-date\">\n<div class=\"field-content\">15:00 &#8211; 18:00<\/div>\n<\/div>\n<div class=\"views-field views-field-title\"><span class=\"field-content\"><a href=\"https:\/\/diglib.eg.org\/handle\/10.2312\/egt20211035\">Tutorial 2: Volumetric Video<\/a> <a class=\"inline\" title=\"Watch the live stream\" href=\"https:\/\/youtu.be\/ks7xz9RXSPo\"><img decoding=\"async\" class=\"external-link-icon\" src=\"https:\/\/conferences.eg.org\/eg2021\/wp-content\/uploads\/sites\/14\/2020\/12\/youtube-1.jpg\" \/><\/a><\/span><\/div>\n<div class=\"views-field views-field-field-contributions\">\n<div class=\"field-content\"><\/div>\n<\/div>\n<div class=\"views-field views-field-body\">\n<div class=\"field-content\">\n<p><strong>Target audience<\/strong>: Intermediate<\/p>\n<p><strong>Outline<\/strong>:<\/p>\n<p>Volumetric video, free-viewpoint video or 4D reconstruction refer to the process of reconstructing 3D content over time using a multi-view setup. This method is constantly gaining popularity both in research and industry. In fact, volumetric video is more and more considered to acquire dynamic photorealistic content instead of relying on traditional 3D content creation pipelines. The aim of the tutorial is to provide an overview of the entire volumetric video pipeline. Furthermore, it presents existing projects that may serve as a starting point to this topic at the intersection of computer vision and graphics.<\/p>\n<p>The first part of the tutorial will focus on the process of computing 3D models from captured videos. Topics will include content acquisition with affordable hardware, photogrammetry, and surface reconstruction from point clouds. A remarkable contribution of the presenters to the graphics community is that they will not only provide an overview of their topic but have in addition open sourced their implementations. Topics of the second part will focus on usage and distribution of volumetric video, including data compression, streaming or post-processing like pose-modification or seamless blending. The tutorial will conclude with an overview of perceptual studies focusing on quality assessment of 3D and 4D content.<\/p>\n<p><strong>Syllabus<\/strong>: Introduction (5min)<\/p>\n<p><em>Part I &#8211; Capturing Volumetric Video with Open-Source Tools<\/em><\/p>\n<p>Meshroom, an open source photogrammetry pipeline (Fabien Castan and Simone Gasparini \u2013 25 min)<br \/>\nLow-cost volumetric video with consumer grade sensors (Dimitris Zarpalas and Nikolaos Zioulis &#8211; 25 min)<br \/>\nPoisson surface reconstruction (Misha Kazhdan &#8211; 25 min)<\/p>\n<p><em>Part II &#8211; Beyond Capturing<\/em><\/p>\n<p>Perceptual aspects on volumetric video quality (Eduard Zell &#8211; 20 min)<br \/>\nInteractive volumetric videos (Anna Hilsmann &#8211; 30 min)<br \/>\n4D compression and streaming (Andrea Tagliasacchi &#8211; 20 min)<\/p>\n<p>Conclusion (10 min)<\/p>\n<\/div>\n<\/div>\n<div class=\"views-field views-field-field-authors\">\n<div class=\"field-content\">Eduard Zell, Fabien Castan, Simone Gasparini, Anna Hilsmann, Misha Kazhdan, Andrea Tagliasacchi, Dimitris Zarpalas, Nick Zioulis<\/div>\n<\/div>\n<\/div>\n<h3 class=\"view-title\">Tuesday, May 4, 2021<\/h3>\n<div class=\"views-row\">\n<div class=\"views-field views-field-field-date\">\n<div class=\"field-content\">10:00 &#8211; 13:00<\/div>\n<\/div>\n<div class=\"views-field views-field-title\"><span class=\"field-content\"><a href=\"https:\/\/diglib.eg.org\/handle\/10.2312\/egt20211036\">Tutorial 3: Visualization and Graphics in Mixed Reality<\/a> <a class=\"inline\" title=\"Watch the live stream\" href=\"https:\/\/youtu.be\/RIr28JDuveA\"><img decoding=\"async\" class=\"external-link-icon\" src=\"https:\/\/conferences.eg.org\/eg2021\/wp-content\/uploads\/sites\/14\/2020\/12\/youtube-1.jpg\" \/><\/a><\/span><\/div>\n<div class=\"views-field views-field-field-contributions\">\n<div class=\"field-content\"><\/div>\n<\/div>\n<div class=\"views-field views-field-body\">\n<div class=\"field-content\">\n<p><strong>Target audience<\/strong>: Introductory to intermediate<\/p>\n<p><strong>Outline<\/strong>:<\/p>\n<p>This tutorial will present the challenges and unique aspects of mixed reality visualization applications such as organization of data for visualization, real-world data sources for visualization, real time photo-realistic rendering techniques, diminished reality rendering techniques and cognitive and perceptual issues. We are also interested in ways that the existing body of research in the graphics and visualization community can be applied in this research area. We expect the tutorial to be a working event with both presentation of state-of- the-art\u00a0and challenges in this research area. Our tutorial is open both for academia and industry, and expected to be a community hub for both areas that are interested in an introduction to the unique challenges of mixed reality visualization. We welcome a diverse audience consisting of students, researchers and developers that have a basic understanding of computer graphics and computer vision.<\/p>\n<p><strong>Part I \u2013 Visually <\/strong><strong>Coherent <\/strong><strong>Mixed <\/strong><strong>Reality<\/strong><\/p>\n<p>\u2022\u00a0Light Estimation and Camera Simulation (David Mandl)<\/p>\n<p>\u2022\u00a0Material Estimation (Kasper Ladefoged)<\/p>\n<p>\u2022\u00a0Diminished Reality (Shohei\u00a0 Mori)<\/p>\n<p><strong>Part II \u2013 <\/strong><strong>Dynamic Mixed Reality<\/strong><\/p>\n<p>\u2022\u00a0Perceptual Issues in Mixed Reality (Markus Tatzgern)<\/p>\n<p>\u2022\u00a0Displaying Mixed Reality Environments (Christoph Ebner)<\/p>\n<p>\u2022\u00a0Authoring Dynamic MR Environments (Peter Mohr)<\/p>\n<\/div>\n<\/div>\n<div class=\"views-field views-field-field-authors\">\n<div class=\"field-content\">Denis Kalkofen, Shohei Mori, Markus Tatzgern<\/div>\n<\/div>\n<\/div>\n<h3 class=\"view-title\">Wednesday, May 5, 2021<\/h3>\n<div class=\"views-row\">\n<div class=\"views-field views-field-field-date\">\n<div class=\"field-content\">10:00 &#8211; 13:00<\/div>\n<\/div>\n<div class=\"views-field views-field-title\"><span class=\"field-content\"><a href=\"https:\/\/diglib.eg.org\/handle\/10.2312\/egt20211037\">Tutorial 4(1): CUDA and Application to Task-Based Programming (part 1)<\/a> <a class=\"inline\" title=\"Watch the live stream\" href=\"https:\/\/youtu.be\/6kT7vVHCZIc\"><img decoding=\"async\" class=\"external-link-icon\" src=\"https:\/\/conferences.eg.org\/eg2021\/wp-content\/uploads\/sites\/14\/2020\/12\/youtube-1.jpg\" \/><\/a><\/span><\/div>\n<div class=\"views-field views-field-field-contributions\">\n<div class=\"field-content\"><\/div>\n<\/div>\n<div class=\"views-field views-field-body\">\n<div class=\"field-content\">\n<p><strong>Target audience<\/strong>: Introductory to intermediate<\/p>\n<p><strong>Outline<\/strong>: since its inception, the CUDA programming model has been continuously evolving. Because the CUDA toolkit aims to consistently expose cutting-edge capabilities for general purpose compute jobs to its users, the added features in each new version reflect the rapid changes that we observe in GPU architectures. Over the years, the changes in hardware, a growing scope of built-in functions and libraries, as well as an advancing C++ standard compliance have expanded the design choices when coding for CUDA, and significantly altered the directives to achieve peak performance. In this tutorial, we give a thorough introduction to the CUDA toolkit, demonstrate how a contemporary application can benefit from recently introduced features and how they can be applied to task-based GPU scheduling in particular.<\/p>\n<p>To provide a profound understanding of how CUDA applications can achieve peak performance, Part 1 of this tutorial outlines the modern CUDA architecture. Following a basic introduction, we expose how language features are linked to &#8211; and constrained by &#8211; the underlying physical hardware components. Furthermore, we describe common applications for massively parallel programming, offer a detailed breakdown of potential issues and list ways to mitigate performance impacts. An exemplary analysis of PTX and SASS snippets illustrates how code patterns in CUDA are mapped to actual hardware instructions.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Course Notes and Code samples:<\/strong> Please find them on\u00a0<a href=\"https:\/\/cuda-tutorial.github.io\/\">https:\/\/cuda-tutorial.github.io\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Syllabus<\/strong>:<\/p>\n<ul>\n<li>Fundamentals of CUDA\n<ul>\n<li>History of the GPU<\/li>\n<li>The CUDA execution model<\/li>\n<li>Kernels, grids, blocks and warps<\/li>\n<li>Building CUDA applications<\/li>\n<li>Debugging and Profiling<\/li>\n<li>Common CUDA libraries<\/li>\n<\/ul>\n<\/li>\n<li>Understanding the GPU hardware\n<ul>\n<li>The CUDA memory model<\/li>\n<li>Warp scheduling and latency hiding<\/li>\n<li>Independent thread scheduling<\/li>\n<li>Performance metrics and optimization<\/li>\n<li>Basics of PTX and SASS<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<div class=\"views-field views-field-field-authors\">\n<div class=\"field-content\">Michael Kenzel, Bernhard Kerbl, Martin Winter, Markus Steinberger<\/div>\n<\/div>\n<\/div>\n<h3 class=\"view-title\">Thursday, May 6, 2021<\/h3>\n<div class=\"views-row\">\n<div class=\"views-field views-field-field-date\">\n<div class=\"field-content\">10:00 &#8211; 13:00<\/div>\n<\/div>\n<div class=\"views-field views-field-title\"><span class=\"field-content\"><a href=\"https:\/\/diglib.eg.org\/handle\/10.2312\/egt20211037\">Tutorial 4(2): CUDA and Application to Task-Based Programming (part 2)<\/a> <a class=\"inline\" title=\"Watch the live stream\" href=\"https:\/\/youtu.be\/mrDWmnXC5Ck\"><img decoding=\"async\" class=\"external-link-icon\" src=\"https:\/\/conferences.eg.org\/eg2021\/wp-content\/uploads\/sites\/14\/2020\/12\/youtube-1.jpg\" \/><\/a><\/span><\/div>\n<div class=\"views-field views-field-field-contributions\">\n<div class=\"field-content\"><\/div>\n<\/div>\n<div class=\"views-field views-field-body\">\n<div class=\"field-content\">\n<p><strong>Target audience<\/strong>: Introductory to intermediate<\/p>\n<p><strong>Outline:\u00a0<\/strong>In Part 2, we will focus on novel features that were enabled by the arrival of CUDA 10+ toolkits and the Volta+ architectures, such as ITS, tensor cores and the graph API. In addition to basic use case demonstrations, we outline our own experiences with these capabilities and their potential performance benefits. We also discuss how long-standing best practices are affected by these changes and describe common caveats for dealing with legacy code on recent GPU models. We show how these considerations can be implemented in practice by presenting state-of-the-art research into task-based GPU scheduling, and how the dynamic adjustment of thread roles and group configurations can significantly increase performance.<\/p>\n<p><strong>Course Notes and Code samples:<\/strong>\u00a0Please find them on\u00a0<a href=\"https:\/\/cuda-tutorial.github.io\/\">https:\/\/cuda-tutorial.github.io\/<\/a><\/p>\n<p><strong>Syllabus<\/strong>:<\/p>\n<ul>\n<li>Recent CUDA features and trends\n<ul>\n<li>Synchronization with independent thread scheduling<\/li>\n<li>Graph API<\/li>\n<li>Arrival-wait barriers<\/li>\n<li>Tensor cores<\/li>\n<li>Set-aside L2 cache<\/li>\n<li>libcu++: a standard library for CUDA<\/li>\n<li>Global memory vs.\u00a0texture memory<\/li>\n<li>Shared memory vs.\u00a0the L1 cache<\/li>\n<\/ul>\n<\/li>\n<li>Task-based CUDA programming\n<ul>\n<li>Programming on different levels of the GPU hierarchy<\/li>\n<li>Persistent threads and megakernels<\/li>\n<li>Dynamic parallelism and task-queues<\/li>\n<li>GPU queues<\/li>\n<li>Dynamic memory management<\/li>\n<li>Mixed-parallelism usage scenarios: image processing, software rasterization, mesh subdivision, building spatial acceleration structures and more<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"views-field views-field-field-authors\">\n<div class=\"field-content\">Michael Kenzel, Bernhard Kerbl, Martin Winter, Markus Steinberger<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text] TUTORIALS [\/vc_column_text][vc_column_text] Monday, May 3, 2021 15:00 &#8211; 18:00 Tutorial 1: Inverse Computational Spectral Geometry Target audience: Introductory to&#8230;<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":259,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/pages\/378"}],"collection":[{"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/comments?post=378"}],"version-history":[{"count":24,"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/pages\/378\/revisions"}],"predecessor-version":[{"id":1541,"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/pages\/378\/revisions\/1541"}],"up":[{"embeddable":true,"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/pages\/259"}],"wp:attachment":[{"href":"https:\/\/conferences.eg.org\/eg2021\/wp-json\/wp\/v2\/media?parent=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}