{"id":126,"date":"2024-03-16T02:02:06","date_gmt":"2024-03-16T02:02:06","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/?p=126"},"modified":"2024-04-07T03:47:50","modified_gmt":"2024-04-07T03:47:50","slug":"harshuls-status-report-for-3-16","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/03\/16\/harshuls-status-report-for-3-16\/","title":{"rendered":"Harshul&#8217;s status report for 3\/16"},"content":{"rendered":"<p>This week my focus was mainly directed towards understanding the 3 texturing approaches I outlined in the previous status report and experimenting with AR plane features within our project.\u00a0 Since shader programming with metal is a rather herculean task, I mainly honed in on scenekit&#8217;s material api&#8217;s. I worked on updating the initial object placement app to learn how to extract a plane from the world instead of an anchor point by using the type\u00a0ARPlaneAnchor instead of VirtualObjectAnchor.\u00a0 Using <a href=\"https:\/\/developer.apple.com\/documentation\/scenekit\/scnplane\">scenekit&#8217;s plane<\/a>\u00a0I created a plane and by read up on\u00a0<a href=\"https:\/\/developer.apple.com\/documentation\/scenekit\/scnmaterial\">SCNMaterial<\/a>\u00a0to understand how to instantiate a texture and what properties are available to us. I went with a minimal example to create a plane just in the world and then added properties to make it translucent and attempt to map it to the worldplane. The first example is not fit well and was opaque.\u00a0 I managed to improve the anchoring of the plane to get it coplanar with the floor but it&#8217;s not staying within the boundaries which is something I&#8217;m meeting Nathalie tomorrow to sync on our AR progress and brainstorm approaches to anchor the plane in the most accurate way that is concordant with the tests we outlined in our design report for plane fitting. Right now I&#8217;m using a hit-test which is returning a transform that captures position and orientation to the tapped point and I think this is overfitting the plane to the tapped point rather than recovering information about the plane the transform is encoding. One idea I plan on exploring on Sunday is having the user tap multiple times to allow a plane to be extracted from the set of world transforms.<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-127\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/IMG_3962.png\" alt=\"\" width=\"1290\" height=\"2796\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/IMG_3962.png 1290w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/IMG_3962-138x300.png 138w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/IMG_3962-768x1665.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/IMG_3962-472x1024.png 472w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-128\" src=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-16-at-10.44.00-PM.png\" alt=\"\" width=\"854\" height=\"1826\" srcset=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-16-at-10.44.00-PM.png 854w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-16-at-10.44.00-PM-140x300.png 140w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-16-at-10.44.00-PM-768x1642.png 768w, http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-content\/uploads\/sites\/285\/2024\/03\/Screenshot-2024-03-16-at-10.44.00-PM-479x1024.png 479w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>In terms of timeline I think we&#8217;re generally on track, the plane detection was earlier in our schedule but the progress we&#8217;ve made in terms of relocalisation has contributed to the camera angle memory task.<\/p>\n<p>Next steps entail trying to get the planes to fit exactly and working on erasure and then building the app&#8217;s features out for human use. Professor Kim wanted to see an example of our AR apps in action so we will also be ready to show the features that we have so far.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week my focus was mainly directed towards understanding the 3 texturing approaches I outlined in the previous status report and experimenting with AR plane features within our project.\u00a0 Since shader programming with metal is a rather herculean task, I mainly honed in on scenekit&#8217;s material api&#8217;s. I worked on updating the initial object placement &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/2024\/03\/16\/harshuls-status-report-for-3-16\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Harshul&#8217;s status report for 3\/16&#8221;<\/span><\/a><\/p>\n","protected":false},"author":852,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/126"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/users\/852"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":4,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":132,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/posts\/126\/revisions\/132"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/categories?post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s24-teamc1\/wp-json\/wp\/v2\/tags?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}