Forum Replies Created
-
AuthorPosts
-
Thomas FabiniCustomer
Hi kdv,
thanks for the example and for pointing that out – i’ve tried soft body volume before, but as it seems, not with the right settings.
I gave it another try, and it works, it really seems to be the best option with the existing physics bodies.A gradual falloff for the stiffness of the softbody isn’t possible, isn’t it? (Like a weightmap which controls the stiffness).
Thomas FabiniCustomerHi Tom,
yes the process itself is more on the technical side and tedious at first until you get everything right. The manifest, all the requirements for building, all that. Then, once you got the hang of it, it’s quite straightforward.But it is a different approach. It means your clients will have to upload the apks themselves, meaning, they need to install SideQuest or other tools unless the app is released in the Oculus store – which with proprietary content isn’t what you usually want.
On the other hand having an url and a pop-up asking to install your app is much easier in most aspects. That if – regarding your actual question – oculus would support it. I have to admit i never have seen the installation prompt when testing out my PWAs. The information i found is contradictory: Oculus states it should actually work, as Alexander pointed out. Another website stated in 2022 that ‘When a user visits a site, the Oculus Browser can help them discover the app if (and only if) it is available in the Oculus Store.’ This might be a reason why they (officially) work, and same time don’t work, but it would defy the purpose of a PWA completely, from my point of view.
If i happen to find out more about app discovery for the Quest 2 / 3 i’ll try and post my findings here.
Thomas FabiniCustomerHi Tom,
that’s Nik Lever’s tutorial on building and installing a apk from a PWA. In this process you create an .apk (android package), an app which you can upload to a headset and run it there.
Building an apk is a bit a longer process of building an app which involves the Android SDK to be installed correctly along with other utilities. If i recall correctly Nik Lever uses an online service to build the apk instead.After building an apk you can upload it to the headset using SideQuest or adb tools (which requires developer mode to be enabled on the headset) using the command line, both ways work.
You can then find and run your app in the ‘Unknown sources’ section of the headsets apps, it will run in a dedicated window like downloaded apps do and will enter VR-mode, too.
For the first run it will connect to the url where it was build from, but if the offline cache was enabled it will run offline after that, at least that’s how it worked for me.Thomas FabiniCustomerYes, degrees of freedom, i suppose as421465683 refers to the description of two navigation modes in VR, with 3dof being three rotation axes, basically ‘sitting’ or ‘standing’ mode where the user can look around and 6dof with three additional translation axes as in ‘walking’ and climbing or flying, for that matter .
Regarding the question itself, hard to say, a combination of the ‘virtual reality’ demo navigation with the additions which kdv posted for 6dof. 3dof would require then locking the translation movement and adding a teleport feature, which i am unsure if it has been showcased on the forums.
About switching between these two – its a matter of personal preference, but i can’t imagine (yet) a scenario where you would like to switch between those, especially if you went all the way to implement 6dof navigation with raycast collisions or even physics collisions. Teleporting can help prevent the user from walking through walls by limiting teleport areas in a simpler way than using collisions with 6dof. (He can still walk through walls in VR if he chooses to physically walk, nothing except a physics collision system will prevent this, afaik).
Thomas FabiniCustomerI just tried incognito mode – it works, but so did the normal mode after resetting the site settings to their defaults, meaning ‘insecure content’ is set to ‘blocked’, again.
I thought i excluded any cache related problems since i’ve erased the cache several times and restarted the machine, too (to satisfy the ‘just-to-be-sure’-part of problem solving).
For now, unfortunately – or rather luckily – i am not able to reproduce that behavior anymore.
Thomas FabiniCustomerHi Yuri,
Congrats on the 4.6 release! Thanks for all the work you put into this.
Already switched to the release version and testing it right now.A note regarding the issue i described above – in Firefox it worked right away after updating the App with 4.6 release, in Chrome it still wouldn’t show the items from the init tab until i switched ‘insecure content’ in the site settings on. I assumed it was related to the non-secure protocol of the local server since webxr wouldn’t start either… So this setting seems to work for Chrome.
Thomas FabiniCustomerI’ve ran into another issue regarding the puzzles in init tab.
After updating a project to 4.6 pre2 and saving the puzzles for the first time the preloader stops working. UI elements created there are missing, too. Basically none of the elements generated in the ‘init’ tab seem to be added to the DOM anymore.
There are no visible errors, like the code from the init tab would be just ignored.
Can you reproduce this issue?
Thomas FabiniCustomerGreat news Yuri, thanks!
Thomas FabiniCustomerThere seems to be a small issue regarding the path for caching files in the PWAs service worker:
‘media\android-chrome-192×192.png’, which leads to this error:
Uncaught (in promise) TypeError: Failed to execute ‘addAll’ on ‘Cache’: Request failed v3d_pwa_cache.js:1
Shouldn’t the url use forward slash instead of the back slash?Once I modify the affected lines manually, no error is thrown anymore and caching works.
Thomas FabiniCustomerIts used in every project we do….
Oh yes, i second this. Every content which doesn’t contribute directly to the export is filtered here, unless i specifically use a cleaned up version of the project file. So… what xeon said.
Thomas FabiniCustomerHi Alexander,
thank you very much for your reply and for looking into this.
Sure thing, 4.6 first, no rush . It’s not as urgent as it is important in perspective – being able to build webxr apk’s for the oculus headsets or other platforms. I consider it a huge advantage having offline apps available to publish or sideload beside the online apps.I was looking into PWAs lately (for which you added increased support in 4.6) these seem to be well supported for apk building. There are examples with three.js scenes build into apk and running in VR on the Quest 2. Even Meta has guides for building apk’s for the Quest from PWAs.
One thing i must admit, the concept of PWAs is quite new to me, i can’t really wrap my head around about the online / offline aspect of things… does an apk still need to maintain the sync to the https hosting it was build from or is it completely offline and independent?
The process of building android apps with Cordova proved to be more difficult than the process involved building from PWAs. If they can work offline i don’t really care for the wrapper but the final result.
Good luck with the 4.6 release!
Thomas FabiniCustomerAs far as I understand, Cordova serves over https since version 10. So your answer is no.
Far as I read it’s much closer to the fact that WebXR api isn’t supported, some plugins developed, abandoned…
This feature is far too important to cast it off with a much to simple answer.
I’d like to hear the devs opinion on this.Thomas FabiniCustomerPlease correct me if i’m wrong – but since it’s the camera control object which needs to keep sync, not the camera itself, wouldn’t any VR event like ‘HMD moved’ suffice to update the control object and reset the offset which occured when the user moved?
Thomas FabiniCustomerThe trick is to perform rotation at the camera’s position point.
I almost expected some matrix math voodoo for offsetting the transformation center… glad you didn’t :)
Thank you very much for sharing this solution, i really haven’t thought about parenting the camera control object to an offset empty for the offset rotation…In my setup with the continuous rotation this could be harder to achieve since it would mean parenting and unparenting each frame / each simulation tick or maybe at least at each rotation start and end.
But i still wonder if it’s not possible to change the coding for the camera control object so that it keeps always sync with the headset position in space when walking. I mean, wouldn’t that be the expected logic?
Thomas FabiniCustomerBut it’s quite possible to make it work as needed.
https://v3d.net/qefIf i understand the problem correctly it’s basically a cyclic dependency in their relationship.
I admire the problem, the answer still eludes me.Ah nice one! That really seems to work…
Do you mind helping me out on this one?- This reply was modified 8 months, 3 weeks ago by Thomas Fabini.
-
AuthorPosts