{"id":104,"date":"2025-01-24T18:00:23","date_gmt":"2025-01-24T23:00:23","guid":{"rendered":"https:\/\/projects.etc.cmu.edu\/spelunx\/?p=104"},"modified":"2025-03-15T18:49:01","modified_gmt":"2025-03-15T22:49:01","slug":"devlogs-week-2","status":"publish","type":"post","link":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/","title":{"rendered":"Week 2 (01\/24\/2025) &#8211; Learning the Tools and Gold Spike"},"content":{"rendered":"\n<p>Welcome back to our Week 2 blog post! This week, our focus was on learning and experimenting with the tools needed for CAVERN, laying the foundation for development moving forward. Since many of the features we aim to implement require a deep understanding of existing systems, this week was all about researching, testing, and iterating on our ideas before committing to long-term solutions. In addition, we set up our GitHub repository for our package, and onboarded everyone (including artists) to use git commands.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Rendering \u2013 Understanding CAVERN\u2019s Projection System<\/h2>\n\n\n\n<p>Rendering in CAVERN presents a unique challenge due to its curved display system, requiring a fundamentally different approach from traditional game rendering. Terri dedicated much of this week to learning Unity\u2019s ShaderLab and HLSL, as well as understanding the updates to URP in Unity 6. With major changes introduced in this version, existing documentation is limited, making reverse engineering and experimentation essential in finding a viable solution.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Notes on rendering solutions on the original API<\/strong><\/summary>\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"is-style-default\">Previously, the old camera system relies on a multi-camera system, using over 30 cameras per eye, aligned in a circle, and combined the output from the cameras into a final texture which is projected onto the screen.<\/p>\n\n\n\n<p>While it did work, it had many drawbacks.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Firstly, it was a complicated system, which a relied on complex hierarchy of GameObjects and cameras to function, making working with the system difficult.<\/li>\n\n\n\n<li>Secondly, the camera could not be rotated in the Unity editor, and required transformations to be done via code.<\/li>\n\n\n\n<li>Lastly, having so many separate cameras meant that the render pipeline has to be run through many times, once for each camera. Finally, the output from each camera had to be stitched together to form the final output. This resulted in heavy rendering performance penalty and severely limited the densities of objects developers could place in their scene.<\/li>\n<\/ol>\n\n\n\n<p>While there was a single-camera version in the old system, it was still a work in progress and incomplete, and was using Unity&#8217;s deprecated Built-In Rendering Pipeline (BIRP), which is deprecated in Unity 6.<\/p>\n<\/div>\n<\/details>\n\n\n\n<p>Alongside this research, Terri began working on reverse engineering the old single-camera. This process was initially broken down into two steps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Render the world view into a cubemap and convert it into an equirectangular texture.<\/li>\n\n\n\n<li>Sample from the equirectangler using a custom texture and project it onto the CAVERN display.<\/li>\n<\/ul>\n\n\n\n<p>However, as the old single-camera system was a work in progress, the projection of the world onto the CAVERN display still resulted in cropping errors and warping.<\/p>\n\n\n\n<p>Taking inspiration from part of the old single-camera, rather than to convert the cubemap into a equirectangular texture, the approach was to directly sample from the cubemap. This proved to be a viable option, as it was relatively trivial to calculate the direction of a point on the physical screen from the centre of the CAVERN.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"848\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183519-1024x848.png\" alt=\"\" class=\"wp-image-216\" style=\"width:400px\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183519-1024x848.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183519-300x248.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183519-768x636.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183519.png 1056w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">This diagram explains how the cubemap is sampled.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183546-1024x572.png\" alt=\"\" class=\"wp-image-217\" style=\"width:600px\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183546-1024x572.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183546-300x168.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183546-768x429.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-183546.png 1242w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The photo shows a monoscopic view of a flat floor projected in the CAVERN using the new camera. Despite the curved screen, the floor is projected correctly as a flat plane.<\/figcaption><\/figure>\n\n\n\n<p>With this new approach, not only was the system simplified from over 30 cameras to just 1, it also improved rendering performance significantly, as we now only need to sample the output from a single camera rendering into a cubemap. From our tests, the performance increase ranged from 100% to 200%, depending on the output resolution.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Input \u2013 Exploring Vive Tracker Integration<\/h2>\n\n\n\n<p>Being a non-traditional immersive platform, creators making experiences for the CAVERN tend to gravitate towards non-traditional, immersive controls. In the past, teams have used the Orbbec Femto Bolt body trackers and the HTC Vive position trackers. These both allow creators to get information about where people and objects are located within the CAVERN. The existing CAVERN API had no built-in input functionality, so each team in the past had to figure it out on their own. <\/p>\n\n\n\n<p>Our first goal is to integrate Vive Trackers, as its use cases seemed to come into mind most naturally. Previously, teams ran into many issues with the trackers not working or crashing, and they had to hardcode the device IDs into their code, making it difficult to switch to a different Vive tracker if one stopped working. Our initial goal was to simplify this process.<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Difficulties<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Originally designed to be used with a virtual reality headset (head mounted display, or HMD), using Vive Trackers in the CAVERN emerged as our main challenge. This usage of Vive Trackers was unsupported, undocumented, and relatively unknown, so research and lots of debugging was required. It seems the current best practice that other people have found to work is to use SteamVR installed on the PC with a &#8220;null driver&#8221; which pretends to be a headset.<\/li>\n\n\n\n<li>Getting the position, rotation, and pin input data into Unity. While past teams used OpenXR + OpenVR + SteamVR to solve this, because SteamVR contains a lot of VR specific code irrelevant to CAVERN, crashes often, and causes issues with Unity6, we decided to use another package on GitHub called unity-openvr-tracking instead. <\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Editor Tools \u2013 Prototyping a User-Friendly Unity Workflow<\/h2>\n\n\n\n<p>Beyond the core technology, we also need to ensure that our toolkit is user-friendly and accessible. This week, Yingjie focused on prototyping a custom Unity Editor panel that will eventually house our CAVERN development tools.<\/p>\n\n\n\n<p>As a proof of concept, she developed an early prototype that allows users to click a button and change an object\u2019s color to green\u2014a simple but crucial first step toward a fully functional toolkit UI. This work provided insights into how we can integrate CAVERN-specific settings into Unity\u2019s Editor workflow, making it easier for developers to set up and modify their projects without extensive manual adjustments. Additionally, Yingjie explored Unity\u2019s package system, which will be important when we distribute the toolkit for future use.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"566\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-1024x566.png\" alt=\"\" class=\"wp-image-221\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-1024x566.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-300x166.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-768x425.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-1536x850.png 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-195611-2048x1133.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Initial toolkit structure that was showcased in quarters in the following week.<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Art &amp; Scene Experimentation \u2013 Understanding How CAVERN Renders Visuals<\/h2>\n\n\n\n<p>Visual design for CAVERN is unique, given its curved projection and stereoscopic rendering. Ling &amp; Mia spent the week experimenting with how different types of assets look when rendered inside CAVERN.<\/p>\n\n\n\n<p>To understand how models behave in CAVERN, Ling tested with a swing asset to be used in our sample scene, discovering that because of the rendering resolution of CAVERN, diagonal visuals will be pixelated. Additionally, lower-poly models appear smoother, as crucial details of high fidelity models tend to disappear, making the visuals harder to identify and therefore not as high as a priority when making assets in the CAVERN. These findings will help optimize future models or textures, and inform how rendering technology can possibly be improved.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-768x1024.jpg\" alt=\"\" class=\"wp-image-222\" style=\"width:400px\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-768x1024.jpg 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-225x300.jpg 225w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-1152x1536.jpg 1152w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-1536x2048.jpg 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/IMG_1455-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p>Meanwhile, Mia focused on particle effects, exploring how they behave in a projection-based environment. She also worked on the initial logo concepts, creating four draft versions that will be refined in the coming weeks.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Audio \u2013 Researching Spatial &amp; Directional Sound Solutions<\/h2>\n\n\n\n<p>Sound is a crucial part of immersion but is often overlooked until late in development. With CAVERN\u2019s 4.1 speaker setup (front left, front right, rear left, rear right, and a subwoofer), Winnie focused this week on optimizing its use to create directional audio cues. Unlike traditional VR audio, which relies on headphones, CAVERN\u2019s physical speakers require a different approach to spatialization.<\/p>\n\n\n\n<p>She categorized three key types of spatial sound:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Surround Sound \u2013 Uses speaker placement for horizontal positioning.<\/li>\n\n\n\n<li>Spatial Audio \u2013 Software-driven 3D soundscapes, common in VR and headphones.<\/li>\n\n\n\n<li>Directional Audio \u2013 Achieved with beam-forming speakers, allowing sound to be heard only in specific locations.<\/li>\n<\/ul>\n\n\n\n<p>Currently, CAVERN supports standard surround sound, with its middle speaker virtualized by balancing front left and right channels at half volume. Winnie tested Unity\u2019s 5.1 surround sound settings, finding them to be the most natural spatialization option so far. She also explored how the previous API handled moving sound sources, discovering that objects placed in the scene automatically rendered to the correct speaker. Additionally, while investigating the API, she and other team members identified an issue where the camera was flipped, causing opposite sound rendering, which has now been corrected.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"495\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224357.png\" alt=\"\" class=\"wp-image-144\" style=\"object-fit:cover;width:415px;height:auto\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224357.png 527w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224357-300x282.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><figcaption class=\"wp-element-caption\">General diagram of how the speakers are set up in CAVERN, with the center being virtualized.<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">User Research &amp; Transformational Framework<\/h2>\n\n\n\n<p>While most of our research focused on technical aspects, we also explored how our toolkit can inspire and empower users. As part of this effort, we sent out a questionnaire to past CAVERN teams to gather insights on their experiences, challenges, and best practices. While we are still awaiting responses, we plan to follow up individually to ensure we collect useful data.<\/p>\n\n\n\n<p>Additionally, Josh &amp; Winnie attended a Transformational Framework workshop, which focused on designing experiences that create a lasting impact on users. While we are not making a traditional game, we want to empower users to build meaningful experiences in CAVERN. This workshop taught us how to define and evaluate good design and intuitive tools.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"544\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-1024x544.png\" alt=\"\" class=\"wp-image-145\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-1024x544.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-300x159.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-768x408.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-1536x816.png 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-12-224801-2048x1087.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Transformational Framework<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Preparing for Quarters &amp; Website Setup<\/h2>\n\n\n\n<p>With Quarters coming up soon, we also began structuring our first formal presentation of the semester. Our goal is to clearly communicate our research, challenges, and early implementations while gathering feedback from faculty and industry experts. Additionally, we started setting up the website structure, which will serve as our central hub for documentation, blog posts, and toolkit resources.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Next Steps<\/h2>\n\n\n\n<p>Week 2 was all about exploration, research, and laying the groundwork for the next phase of development. We now have a stronger understanding of rendering, input, audio, and UI workflows, which will guide us as we move into implementation and refinement. Next week, we will begin building out our first set of tools and interactions, refining our prototypes, and preparing for our first user tests.<\/p>\n\n\n\n<p>Stay tuned for more updates in Week 3!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Gallery<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-1024x572.png\" alt=\"\" class=\"wp-image-147\" srcset=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-1024x572.png 1024w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-300x168.png 300w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-768x429.png 768w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-1536x858.png 1536w, https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517-2048x1144.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Our GitHub Repository that was setup this week.<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Welcome back to our Week 2 blog post! This week, our focus was on learning and experimenting with the tools needed for CAVERN, laying the foundation for development moving forward. Since many of the features we aim to implement require a deep understanding of existing systems, this week was all about researching, testing, and iterating [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":147,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-104","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 2 (01\/24\/2025) - Learning the Tools and Gold Spike - 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-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Week 2 (01\/24\/2025) - Learning the Tools and Gold Spike - spelunx\" \/>\n<meta property=\"og:description\" content=\"Welcome back to our Week 2 blog post! This week, our focus was on learning and experimenting with the tools needed for CAVERN, laying the foundation for development moving forward. Since many of the features we aim to implement require a deep understanding of existing systems, this week was all about researching, testing, and iterating [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\" \/>\n<meta property=\"og:site_name\" content=\"spelunx\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-24T23:00:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-15T22:49:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2355\" \/>\n\t<meta property=\"og:image:height\" content=\"1315\" \/>\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=\"8 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-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\"},\"author\":{\"name\":\"Winnie Tsai\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46\"},\"headline\":\"Week 2 (01\/24\/2025) &#8211; Learning the Tools and Gold Spike\",\"datePublished\":\"2025-01-24T23:00:23+00:00\",\"dateModified\":\"2025-03-15T22:49:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\"},\"wordCount\":1635,\"publisher\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization\"},\"image\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png\",\"articleSection\":[\"Weekly Blogs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\",\"name\":\"Week 2 (01\/24\/2025) - Learning the Tools and Gold Spike - spelunx\",\"isPartOf\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png\",\"datePublished\":\"2025-01-24T23:00:23+00:00\",\"dateModified\":\"2025-03-15T22:49:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage\",\"url\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png\",\"contentUrl\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png\",\"width\":2355,\"height\":1315,\"caption\":\"Github repository\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/projects.etc.cmu.edu\/spelunx\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Week 2 (01\/24\/2025) &#8211; Learning the Tools and Gold Spike\"}]},{\"@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 2 (01\/24\/2025) - Learning the Tools and Gold Spike - 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-2\/","og_locale":"en_US","og_type":"article","og_title":"Week 2 (01\/24\/2025) - Learning the Tools and Gold Spike - spelunx","og_description":"Welcome back to our Week 2 blog post! This week, our focus was on learning and experimenting with the tools needed for CAVERN, laying the foundation for development moving forward. Since many of the features we aim to implement require a deep understanding of existing systems, this week was all about researching, testing, and iterating [&hellip;]","og_url":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/","og_site_name":"spelunx","article_published_time":"2025-01-24T23:00:23+00:00","article_modified_time":"2025-03-15T22:49:01+00:00","og_image":[{"width":2355,"height":1315,"url":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png","type":"image\/png"}],"author":"Winnie Tsai","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Winnie Tsai","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#article","isPartOf":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/"},"author":{"name":"Winnie Tsai","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#\/schema\/person\/8cc5b0fd21429f2aa1cdec592097cc46"},"headline":"Week 2 (01\/24\/2025) &#8211; Learning the Tools and Gold Spike","datePublished":"2025-01-24T23:00:23+00:00","dateModified":"2025-03-15T22:49:01+00:00","mainEntityOfPage":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/"},"wordCount":1635,"publisher":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#organization"},"image":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage"},"thumbnailUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png","articleSection":["Weekly Blogs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/","name":"Week 2 (01\/24\/2025) - Learning the Tools and Gold Spike - spelunx","isPartOf":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/#website"},"primaryImageOfPage":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage"},"image":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage"},"thumbnailUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png","datePublished":"2025-01-24T23:00:23+00:00","dateModified":"2025-03-15T22:49:01+00:00","breadcrumb":{"@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#primaryimage","url":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png","contentUrl":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-content\/uploads\/2025\/01\/Screenshot-2025-02-13-000517.png","width":2355,"height":1315,"caption":"Github repository"},{"@type":"BreadcrumbList","@id":"https:\/\/projects.etc.cmu.edu\/spelunx\/devlogs-week-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/projects.etc.cmu.edu\/spelunx\/"},{"@type":"ListItem","position":2,"name":"Week 2 (01\/24\/2025) &#8211; Learning the Tools and Gold Spike"}]},{"@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\/104","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=104"}],"version-history":[{"count":16,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"predecessor-version":[{"id":523,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/posts\/104\/revisions\/523"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/media\/147"}],"wp:attachment":[{"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/projects.etc.cmu.edu\/spelunx\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}