{"id":5,"date":"2024-11-11T01:40:08","date_gmt":"2024-11-11T01:40:08","guid":{"rendered":"https:\/\/www.visitnyc.store\/blog\/?p=5"},"modified":"2024-11-12T18:08:07","modified_gmt":"2024-11-12T18:08:07","slug":"developing-windows-feature","status":"publish","type":"post","link":"https:\/\/www.visitnyc.store\/blog\/developing-windows-feature\/","title":{"rendered":"Developing &#8220;Windows&#8221; Feature"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The idea with the new Windows feature is to have multiple &#8220;Windows&#8221; using the Window View, but then in them is a RealityView that has a Portal that is sized to be the dimensions of the Window.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-1024x576.png\" alt=\"\" class=\"wp-image-114\" srcset=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-1024x576.png 1024w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-300x169.png 300w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-768x432.png 768w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-1536x864.png 1536w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.14.15-copy-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-1024x768.png\" alt=\"\" class=\"wp-image-113\" srcset=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-1024x768.png 1024w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-300x225.png 300w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-768x576.png 768w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-1536x1151.png 1536w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-10-at-19.59.55-2048x1535.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Turns out streaming more than two videos at 200M (6k per eye) bit rate makes the Apple Vision just stop trying to play the video.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">For comparison, the videos on the Immersive page of the app go through a download process and they are not streamed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-1024x576.png\" alt=\"\" class=\"wp-image-115\" srcset=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-1024x576.png 1024w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-300x169.png 300w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-768x432.png 768w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-1536x864.png 1536w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Simulator-Screenshot-Apple-Vision-Pro-2024-11-09-at-22.16.06-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The downloaded files are 200M-250M bitrate at around 8k per eye. We have found that if the file is over 3GB, the video stops playing or goes into choppy playback. So &#8230; a convenient way to fall into an &#8220;immersive New York minute&#8221; as being a technical constraint found with playing back longer videos. Some of our videos we shot for 2 min 30 seconds each, and for the updated app version with the higher quality videos, they have had to be cut down to a little under 1 minute 30 seconds at max.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">In comparison, the streamed files are stereo 4320&#215;4320 per eye, 50-75MB bit rate at the lowest, and then a few are increased 100-150MB bit rate after rejecting the results for the 50-75MB.<\/p>\n\n\n<div class=\"align wp-block-icb-image-compare\" id='icbImageCompare-1' data-attributes='{&quot;cId&quot;:&quot;50c3726a-7&quot;,&quot;beforeImg&quot;:{&quot;id&quot;:117,&quot;url&quot;:&quot;https:\\\/\\\/www.visitnyc.store\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/edited_82_crop_50M_00001_.png&quot;,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;edited_82_crop_50M_00001_&quot;},&quot;afterImg&quot;:{&quot;id&quot;:120,&quot;url&quot;:&quot;https:\\\/\\\/www.visitnyc.store\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/edited_82_crop_100M_00001_.png&quot;,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;edited_82_crop_100M_00001_&quot;},&quot;isLabel&quot;:false,&quot;isCap&quot;:false,&quot;align&quot;:&quot;&quot;,&quot;alignment&quot;:&quot;center&quot;,&quot;theme&quot;:&quot;default&quot;,&quot;width&quot;:&quot;80%&quot;,&quot;border&quot;:[],&quot;orientation&quot;:&quot;horizontal&quot;,&quot;isSwap&quot;:false,&quot;label&quot;:{&quot;hAlign&quot;:&quot;bottom&quot;,&quot;vAlign&quot;:&quot;center&quot;,&quot;isShowHover&quot;:false},&quot;beforeLabel&quot;:&quot;&quot;,&quot;afterLabel&quot;:&quot;&quot;,&quot;labelTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:15,&quot;tablet&quot;:15,&quot;mobile&quot;:15}},&quot;labelColors&quot;:{&quot;color&quot;:&quot;#fff&quot;,&quot;bg&quot;:&quot;#00000080&quot;},&quot;labelPadding&quot;:{&quot;vertical&quot;:&quot;10px&quot;,&quot;horizontal&quot;:&quot;15px&quot;},&quot;cap&quot;:&quot;&quot;,&quot;capAlign&quot;:&quot;center&quot;,&quot;capTypo&quot;:{&quot;fontSize&quot;:{&quot;desktop&quot;:14,&quot;tablet&quot;:14,&quot;mobile&quot;:14}},&quot;capColors&quot;:{&quot;color&quot;:&quot;#333&quot;,&quot;bg&quot;:&quot;#f4f4f4&quot;},&quot;capPadding&quot;:{&quot;vertical&quot;:&quot;10px&quot;,&quot;horizontal&quot;:&quot;15px&quot;},&quot;dragg&quot;:{&quot;handleType&quot;:&quot;default&quot;,&quot;shapeType&quot;:&quot;default&quot;},&quot;styles&quot;:{&quot;container&quot;:{&quot;height&quot;:{&quot;desktop&quot;:&quot;&quot;,&quot;tablet&quot;:&quot;&quot;,&quot;mobile&quot;:&quot;&quot;}},&quot;dragg&quot;:{&quot;line&quot;:{&quot;bg&quot;:{&quot;color&quot;:&quot;#fff&quot;},&quot;size&quot;:2},&quot;icon&quot;:{&quot;color&quot;:&quot;&quot;},&quot;handler&quot;:{&quot;color&quot;:&quot;&quot;}}},&quot;options&quot;:{&quot;defaultOffset&quot;:0.5,&quot;moveMouseOver&quot;:false,&quot;isMoveClick&quot;:false,&quot;autoSlide&quot;:{&quot;isAutoSlide&quot;:false,&quot;speed&quot;:5,&quot;isHoverStop&quot;:true}},&quot;sliderOptions&quot;:{&quot;arrowType&quot;:&quot;style1&quot;,&quot;height&quot;:{&quot;desktop&quot;:&quot;400px&quot;,&quot;tablet&quot;:&quot;400px&quot;,&quot;mobile&quot;:&quot;400px&quot;},&quot;autoplay&quot;:true,&quot;dots&quot;:false,&quot;speed&quot;:500,&quot;autoplaySpeed&quot;:2500,&quot;pauseOnHover&quot;:true,&quot;infinite&quot;:true,&quot;arrows&quot;:true,&quot;slidesView&quot;:{&quot;desktop&quot;:1,&quot;tablet&quot;:1,&quot;mobile&quot;:1}},&quot;sliderStyle&quot;:{&quot;pagination&quot;:{&quot;active&quot;:&quot;#4527a4&quot;},&quot;navigation&quot;:{&quot;icon&quot;:{&quot;normal&quot;:{&quot;color&quot;:&quot;#000&quot;,&quot;size&quot;:&quot;22px&quot;},&quot;hover&quot;:{&quot;color&quot;:&quot;&quot;,&quot;size&quot;:&quot;22px&quot;}},&quot;container&quot;:{&quot;height&quot;:&quot;&quot;,&quot;width&quot;:&quot;&quot;,&quot;normal&quot;:{&quot;bg&quot;:{&quot;color&quot;:&quot;#fff&quot;},&quot;border&quot;:[],&quot;radius&quot;:{&quot;left&quot;:&quot;30px&quot;,&quot;right&quot;:&quot;30px&quot;,&quot;top&quot;:&quot;30px&quot;,&quot;bottom&quot;:&quot;30px&quot;}},&quot;hover&quot;:{&quot;bg&quot;:{&quot;color&quot;:&quot;#fff&quot;},&quot;border&quot;:[],&quot;radius&quot;:[]}}}},&quot;slider&quot;:[{&quot;beforeImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg.jpg&quot;},&quot;beforeLabel&quot;:&quot;Before Label&quot;},&quot;afterImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg2.jpg&quot;},&quot;afterLabel&quot;:&quot;After Label&quot;},&quot;caption&quot;:&quot;Before After Image Caption&quot;},{&quot;beforeImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg.jpg&quot;},&quot;beforeLabel&quot;:&quot;Before Label&quot;},&quot;afterImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg2.jpg&quot;},&quot;afterLabel&quot;:&quot;After Label&quot;},&quot;caption&quot;:&quot;Before After Image Caption&quot;},{&quot;beforeImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg.jpg&quot;},&quot;beforeLabel&quot;:&quot;Before Label&quot;},&quot;afterImg&quot;:{&quot;img&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/templates.bplugins.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/beafImg2.jpg&quot;},&quot;afterLabel&quot;:&quot;After Label&quot;},&quot;caption&quot;:&quot;Before After Image Caption&quot;}]}' data-icbchecker='false'><\/div>\n\n\n<p class=\"wp-block-paragraph\">Left is 50MB-75MB and right is 100MB-150MB. To be honest, I&#8217;m not sure I see a difference or if its in my head. It&#8217;s hard to also judge the frame output instead of the playback. I am exporting these via ffmpeg with the two MV-HEVC files that were encoded with a modified sample project.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Now with the app having high streaming rates, consistent playback requires a fast internet connection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I can&#8217;t tell if I stuck myself in a NetworkLinkConditioner setting or my Wifi needs to get upgraded, but every time I try to download files on Apple Vision through the Xcode debugger, the network tab always maxes out at 30MB. I checked through my internet connection, my iMac sees 40MB+ speeds for download and I can observe better download speeds on other devices so its not the cloud provider, so I&#8217;ve always wondered &#8230; is there a max network download speed? Or am I just maxing out my current Wi-Fi hardware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Either way, for streaming 3 videos simultaneously, you are going to need a fast connection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And then on top, if you are playing three 100-150MB videos, the Apple Vision may start to max out its video playback. Videos in some windows will stop playing all together, and new videos won&#8217;t start playing until you close other videos. On top of this, the spatial windows feature has a AVPlayerLooper so there is no break for the video to stop playing. It&#8217;s not a great experience, but also very cool to max out the AVP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For this, I&#8217;ve added this warning:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"624\" src=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-10-at-7.58.12\u202fPM.png\" alt=\"\" class=\"wp-image-123\" srcset=\"https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-10-at-7.58.12\u202fPM.png 720w, https:\/\/www.visitnyc.store\/blog\/wp-content\/uploads\/2024\/11\/Screenshot-2024-11-10-at-7.58.12\u202fPM-300x260.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">I hope users have fun with this feature. While testing this feature during development, I&#8217;ve walked around and put our videos on the wall next to each other with other applications windows running and it felt very future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The idea with the new Windows feature is to have multiple &#8220;Windows&#8221; using the Window View, but then in them is a RealityView that has a Portal that is sized to be the dimensions of the Window. Turns out streaming more than two videos at 200M (6k per eye) bit rate makes the Apple Vision [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/comments?post=5"}],"version-history":[{"count":10,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":150,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/posts\/5\/revisions\/150"}],"wp:attachment":[{"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/media?parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/categories?post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.visitnyc.store\/blog\/wp-json\/wp\/v2\/tags?post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}