{"id":563,"date":"2025-04-04T18:00:00","date_gmt":"2025-04-04T22:00:00","guid":{"rendered":"https:\/\/projects.etc.cmu.edu\/spelunx\/?p=563"},"modified":"2025-04-29T17:11:58","modified_gmt":"2025-04-29T21:11:58","slug":"devlogs-week-11","status":"publish","type":"post","link":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/","title":{"rendered":"Week 11 (04\/04\/2025) &#8211; New Features Development &amp; Jam 2 Preparation"},"content":{"rendered":"\n<p>Playtesting ended last week. This week, we continued with all the features development for our toolkit that were halted previously to prepared for Playtesting both at South Fayette and ETC. This week, our main focus was starting on Orbbec Body Tracking integration, continuing RenderGraph, as well as wrapping up on keyboard shortcuts. In this week, we will also give an overview of all the little but crucial improvements we&#8217;ve made during the hectic testing and demoing schedules in the previous weeks in the hopes of informing a more comprehensive list of toolkit feature plan.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">New Features<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>CAVERN Preview as a Gizmo<\/strong><\/h5>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p>Because the original CAVERN Previewer is a mesh that is generated by the camera, when baking lighting details to the scene to optimize performance, errors will show up. (This happened in Alex&#8217;s Flesh Wall made during the first CAVERN jam). This is why, we migrated this previewer to a gizmo!<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_SceneMode.png\" alt=\"\" class=\"wp-image-581\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_SceneMode.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_SceneMode-300x183.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_SceneMode-768x470.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Live preview when editing the scene<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Debug Keys<\/strong><\/h5>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p class=\"is-style-default\">People have requested hotkeys so we can &#8220;toggle stereo and mono views&#8221;, &#8220;change to headtracking with a button click&#8221;, etc. And we made that happen. Now, when you press &#8220;h&#8221; during play mode, you&#8217;ll see the available debugging keys as well as frame rates and tracker statuses.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1014\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951-1024x1014.png\" alt=\"\" class=\"wp-image-709\" style=\"width:321px;height:auto\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951-1024x1014.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951-300x297.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951-150x150.png 150w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951-768x761.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163951.png 1034w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Debug keys that shows up after pressing &#8220;h&#8221; as in &#8220;help&#8221;<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Fullscreen On Play<\/strong><\/h5>\n\n\n\n<p>Fullscreen On Play is a really useful tool when you are testing on the CAVERN directly in the Unity Editor without building &#8212; it lets you see the true views of the scenes without the view being interrupted or disrupted by the Unity Editor GUI.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p>However, at the start of the semester, the asset that was used was a paid asset from Unity Store, and it continuously caused crashes when exiting play mode on the CAVERN computer.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"370\" height=\"174\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163240.png\" alt=\"\" class=\"wp-image-708\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163240.png 370w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-25-163240-300x141.png 300w\" sizes=\"auto, (max-width: 370px) 100vw, 370px\" \/><figcaption class=\"wp-element-caption\">The Fullscreen On Play option on our toolkit.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Fortunately, Ezra, our technical consultant, was able to create one for our purposes, so now we have a Fullscreen On Play feature that developers can toggle on and off during development.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"382\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-1024x382.png\" alt=\"\" class=\"wp-image-727\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-1024x382.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-300x112.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-768x287.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-1536x573.png 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-3-2048x764.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">What the screen looks like after entering fullscreen.<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>RenderGraph<\/strong><\/h5>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<p>RenderGraph is Unity&#8217;s new system for customizable render pipelines. Since we are using Unity&#8217;s default camera and bliting onto the screen via our own rendering code, we defined our own Scriptable Render Passes called <strong>Cavern Render Pass<\/strong> and specified it to be within the RenderGraph.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"654\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/rendergraph-1024x654.png\" alt=\"\" class=\"wp-image-705\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/rendergraph-1024x654.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/rendergraph-300x191.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/rendergraph-768x490.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/rendergraph.png 1327w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The Cavern Render Pass we added into the RenderGraph.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Canvas UI<\/strong><\/h5>\n\n\n\n<p>We discovered there are two ways of thinking about the CAVERN: as a screen or as a window. Depending on which view you\u2019re using, your user interface needs change. Because of this our toolkit supports three methods of creating in-game UI.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"478\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162857.png\" alt=\"\" class=\"wp-image-724\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162857.png 496w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162857-300x289.png 300w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/figure>\n<\/div>\n\n\n\n<p><strong>Flat world-space<\/strong> UI is best when treating the CAVERN as a window, since it ignores the curvature of the CAVERN. On other hand, while it can be rotated to face the center, it will always look like a flat plane.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-2 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"484\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162910.png\" alt=\"\" class=\"wp-image-725\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162910.png 498w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162910-300x292.png 300w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/figure>\n\n\n\n<p><strong>Round world space<\/strong> UI fixes this issue by wrapping a 2D plane around the CAVERN, so everything faces you. This is best when treating the CAVERN as a screen. Both of these options support object occlusion and proper stereoscopic 3D.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"490\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162928.png\" alt=\"\" class=\"wp-image-726\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162928.png 498w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-162928-300x295.png 300w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/figure>\n\n\n\n<p>Our third option, <strong>screen space<\/strong> UI, always appears on top of everything and doesn\u2019t fully support 3D, but avoids the overhead of our camera system. This is best when creating 2D experiences, or trying to display videos.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Editor UI<\/strong><\/h5>\n\n\n\n<p>What says a finished and polished toolkit better than an intuitive and beautiful UI? For achieve that, we changed to use the UI Toolkit for our editors, and this allows us to customize the design through the UI Builder, as well as through code (UXML, UXX &#8211; HTML and CSS for Unity). We are also working on icons to add that final polish feel!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"503\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-1024x503.png\" alt=\"\" class=\"wp-image-711\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-1024x503.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-300x147.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-768x377.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-1536x754.png 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/image-2-2048x1006.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Creating a more intuitive and pretty interface!<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>Orbbec Femto Bolts Body Tracking<\/strong><\/h5>\n\n\n\n<p>Finally getting to another crucial tracker built into the CAVERN systems, at the start, because many other projects at ETC also used a Femto Bolt, we couldn&#8217;t access or test with one. That is why we started with the Azure Kinect DK, a predecessor of Femto Bolt, and one that Orbbec has built their body tracking sample wrapper upon.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jam 2 Preparations<\/h2>\n\n\n\n<p>We have finalized our budget for the jam. From last time&#8217;s experience, we&#8217;ve learned that providing a meal for jammers will be both an incentive for people to join, as well as a deserved reward for everyone who will be spending time playtesting our toolkit.<\/p>\n\n\n\n<p>This time, instead of simply ETC people, with official reach to high schools and greater university community, we hope to invite jammers from a broad range of groups, not only to show more people our project, but also diversify the experience levels of our testers to provide us with more insights for different people:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ETC people who have been on a CAVERN project<\/li>\n\n\n\n<li>Main campus game developers<\/li>\n\n\n\n<li>People with no experience with CAVERN<\/li>\n<\/ul>\n\n\n\n<p>This week, we created the poster and sign up sheets, as well as reached out to people. Next week, we are ready for new jammers and new worlds. Stay tuned!<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"791\" height=\"1024\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-791x1024.png\" alt=\"\" class=\"wp-image-559\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-791x1024.png 791w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-232x300.png 232w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-768x994.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-1187x1536.png 1187w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/jam2poster-1583x2048.png 1583w\" sizes=\"auto, (max-width: 791px) 100vw, 791px\" \/><figcaption class=\"wp-element-caption\">CAVERN Jam 2.0 Poster<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"635\" height=\"1024\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733-635x1024.png\" alt=\"\" class=\"wp-image-732\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733-635x1024.png 635w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733-186x300.png 186w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733-768x1238.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733-953x1536.png 953w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-29-164733.png 960w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><figcaption class=\"wp-element-caption\">CAVERN Jam 2.0 signup sheet.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Playtesting ended last week. This week, we continued with all the features development for our toolkit that were halted previously to prepared for Playtesting both at South Fayette and ETC. This week, our main focus was starting on Orbbec Body Tracking integration, continuing RenderGraph, as well as wrapping up on keyboard shortcuts. In this week, [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":583,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-weekly-update"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx\" \/>\n<meta property=\"og:description\" content=\"Playtesting ended last week. This week, we continued with all the features development for our toolkit that were halted previously to prepared for Playtesting both at South Fayette and ETC. This week, our main focus was starting on Orbbec Body Tracking integration, continuing RenderGraph, as well as wrapping up on keyboard shortcuts. In this week, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\" \/>\n<meta property=\"og:site_name\" content=\"spelunx\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-04T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-29T21:11:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp-1024x190.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"190\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Winnie Tsai\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Winnie Tsai\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\"},\"author\":{\"name\":\"Winnie Tsai\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46\"},\"headline\":\"Week 11 (04\/04\/2025) &#8211; New Features Development &amp; Jam 2 Preparation\",\"datePublished\":\"2025-04-04T22:00:00+00:00\",\"dateModified\":\"2025-04-29T21:11:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\"},\"wordCount\":872,\"publisher\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization\"},\"image\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png\",\"articleSection\":[\"Weekly Blogs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\",\"name\":\"Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx\",\"isPartOf\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png\",\"datePublished\":\"2025-04-04T22:00:00+00:00\",\"dateModified\":\"2025-04-29T21:11:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png\",\"contentUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png\",\"width\":5400,\"height\":1000},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Week 11 (04\/04\/2025) &#8211; New Features Development &amp; Jam 2 Preparation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#website\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/\",\"name\":\"Spelunx\",\"description\":\"Spelunx is team aiming to enable future developers in creating immersive experiences.\",\"publisher\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization\",\"name\":\"Spelunx\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/spelunx_logo-small.png\",\"contentUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/spelunx_logo-small.png\",\"width\":549,\"height\":549,\"caption\":\"Spelunx\"},\"image\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46\",\"name\":\"Winnie Tsai\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31be813c2db5aa8be660453ed34fe8b3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31be813c2db5aa8be660453ed34fe8b3?s=96&d=mm&r=g\",\"caption\":\"Winnie Tsai\"},\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/author\/winniets\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/","og_locale":"en_US","og_type":"article","og_title":"Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx","og_description":"Playtesting ended last week. This week, we continued with all the features development for our toolkit that were halted previously to prepared for Playtesting both at South Fayette and ETC. This week, our main focus was starting on Orbbec Body Tracking integration, continuing RenderGraph, as well as wrapping up on keyboard shortcuts. In this week, [&hellip;]","og_url":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/","og_site_name":"spelunx","article_published_time":"2025-04-04T22:00:00+00:00","article_modified_time":"2025-04-29T21:11:58+00:00","og_image":[{"width":1024,"height":190,"url":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp-1024x190.png","type":"image\/png"}],"author":"Winnie Tsai","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Winnie Tsai","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#article","isPartOf":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/"},"author":{"name":"Winnie Tsai","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46"},"headline":"Week 11 (04\/04\/2025) &#8211; New Features Development &amp; Jam 2 Preparation","datePublished":"2025-04-04T22:00:00+00:00","dateModified":"2025-04-29T21:11:58+00:00","mainEntityOfPage":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/"},"wordCount":872,"publisher":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization"},"image":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage"},"thumbnailUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png","articleSection":["Weekly Blogs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/","name":"Week 11 (04\/04\/2025) - New Features Development &amp; Jam 2 Preparation - spelunx","isPartOf":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#website"},"primaryImageOfPage":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage"},"image":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage"},"thumbnailUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png","datePublished":"2025-04-04T22:00:00+00:00","dateModified":"2025-04-29T21:11:58+00:00","breadcrumb":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#primaryimage","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png","contentUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/SS_V2_Unwarp.png","width":5400,"height":1000},{"@type":"BreadcrumbList","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-11\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/projects.etc.cmu.edu\/spelunx\/"},{"@type":"ListItem","position":2,"name":"Week 11 (04\/04\/2025) &#8211; New Features Development &amp; Jam 2 Preparation"}]},{"@type":"WebSite","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#website","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/","name":"Spelunx","description":"Spelunx is team aiming to enable future developers in creating immersive experiences.","publisher":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/projects.etc.cmu.edu\/spelunx\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization","name":"Spelunx","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/logo\/image\/","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/spelunx_logo-small.png","contentUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/spelunx_logo-small.png","width":549,"height":549,"caption":"Spelunx"},"image":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46","name":"Winnie Tsai","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/31be813c2db5aa8be660453ed34fe8b3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31be813c2db5aa8be660453ed34fe8b3?s=96&d=mm&r=g","caption":"Winnie Tsai"},"url":"https:\/\/projects.etc.cmu.edu\/spelunx\/author\/winniets\/"}]}},"_links":{"self":[{"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts\/563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/comments?post=563"}],"version-history":[{"count":13,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts\/563\/revisions"}],"predecessor-version":[{"id":738,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts\/563\/revisions\/738"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/media\/583"}],"wp:attachment":[{"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/media?parent=563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/categories?post=563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/tags?post=563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}