ucl-vr / ubiq Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
It would be useful to have an XRIT template in the Unity project to help newcomers who are using that system, with an example of syncing an object with gravity included.
Hi,
I have an issue to play what inside UNITY into HTC Vive pro.
I cannot see the screen inside VR. Could you give some help ?
How to implement ubiq in HTC Vive pro ?
Thanks
Ihshan
Hello,
we would like to use Ubiq with the Hololens 2 instead of virtual reality hmd's to connect multiple users in AR. It seems like there currently is no Hololens support. At least nothing documented. In a first attempt to set it up, all the demo scenes don't seem to work with the MRTK . Atleast all the menus and buttons are not interactable with your own hands. I am also unsure how to set up the avatars for AR use. Is there any more information or documentation regarding using Ubiq with a Hololens 2?
Hand tracking doesn't seem to be working at all with the Quest 2.
It looks the hands at around waist level and you can't move them pretty much at all. They do seem to be changing rotation and position ever so slightly but not in a meaningful way.
I've tried messing with the floor height and various other settings but to no avail.
Hi there!
After reading through (almost) the entire docs, I got to say, I really like the idea and documentation for this! It's a great project!
I'm looking for a platform dynamic enough to host a number of user and a number of interactable shared objects.
Are there any known limitations or guesses how many VR-user we could hook together?
Thanks for creating and sharing this!
Best, Florian
Simply put running npm i
followed by npm run start
won't actually start the server.
Instead I get the following error:
H:\Repos\Uni\ubiq-dev\Node\node_modules\ts-node\dist-raw\node-internal-modules-esm-get_format.js:93
throw new ERR_UNKNOWN_FILE_EXTENSION(ext, fileURLToPath(url));
^
CustomError: ERR_UNKNOWN_FILE_EXTENSION .ts H:\Repos\Uni\ubiq-dev\Node\node_modules\ubiq\index.ts
Hint:
ts-node is configured to ignore this file.
If you want ts-node to handle this file, consider enabling the "skipIgnore" option or adjusting your "ignore" patterns.
Main issue being that we are installing the submodules as dependencies but these are never transpiled to javascript.
So we'd need to tell ts-node that it's allowed to also transpile typescript files by adding the skipIgnore
flag.
E.g ts-node-esm --skipIgnore app.ts
I'm not fully convinced that that's the best solution especially since this also requires us to add to @types
dependencies since they are required by the ubiq
-module.
Maybe I'm missing something though.
Otherwise I'd suggest that it might be a good idea to add a build step to the project that builds the various modules.
Here is the steps that I did to encouter the errors:
I also tested the release version and had same problem
The version at https://github.com/UCL-VR/ubiq.git#upm
has a number of packaging errors out of the box, which are serious enough to prevent compilation or attaching a debugger.
2023.2.0b9
This is a known bug in Unity that means the 'VisionOS' option is not available in some versions despite being released in 2022. This causes problems for the null voip asmdef
which prevents compilation of projects outside very specific versions.
2021.3.38 LTS
The latter is because Ubiq now relies on shadegraph 14, whereas <2022 versions of Unity have 12 inbuilt. Ubiq core should probably not rely on shadergraph at all.
2022.3.18 works OK.
It would be great to have access to the audio samples for the Unity WebRTC implementation similar to the .Net implementation.
Just read access would be enough.
It would also be helpful to access the local players' microphone input even when not being connected to other users.
I've been trying to create a scene with different objects placed around it. So far I've created a Ball script and Frisbee script (and their respective prefabs) with some differences regarding their Grasp and Use behaviour. My problem is that I cannot seem to get them to have different Network IDs (and thus be synchronized as different objects on different peers).
Note that this doesn't apply in the case of spawning, as spawned objects have different IDs assigned to them, while the pre-existing ones always have a series of zeroes separated by a dash. How should I assign different IDs to them?
The app.js in Node folder turns to app.ts.
However, the document is not updated in the server setup document
I've recently had problems building my Ubiq project for standalone VR use using ARM64. I've built the project before using ARMv7 with no issues, but with ARM64 the project seems to crash as soon as you enter the game, right after the "made with Unity" splash-screen.
After plenty of debugging I've seem to hit a dead end, so I tried building the Start Here sample with ARM64 to see if even the original sample has this problem, and in my case it has. Here's the steps to reproduce my scenario:
If you try and keep Vulkan as your preferred Graphics API you just get an infinite black loading screen. The build seems to crash most of the time (sometimes it loads unexplainably with no issues) and adb logcat reports a Vulkan-related problem if you use that, but if you switch to OpenGLES3 you just get a crash due to a null-pointer dereference (which I have no idea how to debug).
My biggest concern is that Meta only supports ARM64 applications on the store, but more importantly this issue prevents me from building with OpenXR, which is needed to create a build that supports the first Quest headset. I'd be very glad if you tried to reproduce this and tell me your results (even with a different Unity version, since it shouldn't make a difference?)
When using the Social Network Scene
prefab joining an existing room, leaving it and rejoining it will result in the following error:
MissingReferenceException: The object of type 'MeshRenderer' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
Ubiq.Samples.NetworkedMainMenuIndicator.SetVisibility (System.Boolean visible) (at Assets/ubiq/Unity/Assets/Samples/_Common/UI/Scripts/NetworkedMainMenuIndicator.cs:83)
Ubiq.Samples.NetworkedMainMenuIndicator.OnRecv () (at Assets/ubiq/Unity/Assets/Samples/_Common/UI/Scripts/NetworkedMainMenuIndicator.cs:134)
Ubiq.Samples.NetworkedMainMenuIndicator.ProcessMessage (Ubiq.Messaging.ReferenceCountedSceneGraphMessage message) (at Assets/ubiq/Unity/Assets/Samples/_Common/UI/Scripts/NetworkedMainMenuIndicator.cs:123)
Ubiq.Messaging.NetworkScene.ReceiveConnectionMessages () (at Assets/ubiq/Unity/Assets/Runtime/Messaging/NetworkScene.cs:270)
Ubiq.Messaging.NetworkScene.Update () (at Assets/ubiq/Unity/Assets/Runtime/Messaging/NetworkScene.cs:246)
Exact setup to reproduce:
Client 1: Creates room
Client 2: Joins room
Client 2: Uses the "Leave" button to leave the room
Client 2: Joins the same room again
Adding a null check to that part of the code fixes this but a similar issue arises at line #135/136
This was tested on the ubiq version from the 11th of November
This is the counterpart to #40, which is the less minor thing that keeps coming up.
The NetworkSpawner Catalogue is included with the Samples. I.e. its maintained upstream. However users need to add their own Prefabs to it.
The NetworkSpawner should be modified so users don't have to change any Sample files to make their project work.
One way to do this is to make the NetworkSpawner take a List of Catalogues. Users can create a Catalogue for their project, and add it to the Spawner, where that association will be saved with the Scene.
The downside of this is that they will need the same configuration between all Scenes for the indexing to work.
So, the referencing also needs to be changed so that the identity is taken from property of the Prefab that is project-wide (where possible).
Additionally, when spawning at the Room level, there should be an API that supports co-routines or callbacks, so users can reference the instance after it is created in one function.
When using Unity 2021.3.X we can run and build the project without any problems.
We do however get some errors in the editor/we also can't debug the application because of them.
E.g. :
The type 'Span<T>' exists in both 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
I wouldn't have mentioned this since ubiq still uses 2020.X but a recent commit addressed some issues in regards to other issues with 2021.X See ca6d8ea
I've had resolved these issues before by removing the plugin .dlls since things seem to work without them, but maybe I'm missing something. See ubiq-fork
So I assume it might have to do with the existing plugin libraries using a different net standard? I'm not sure though.
Below is a set of minor fixes that should be made before the start of term.
These are based on observations from last year.
Hopefully we can try and do these next week (they are very minor!)
Quest 3 microphone input for VOIP appears to be gathered or transmitted incorrectly. Audio received by other peers from the Quest 3 peer is played back on a short loop and misses samples.
As a workaround, we now fall back to the old dotnet WebRTC implementation on Android. This is the case as of 2ca2da6 (and so v1.0.0-pre.3).
@k-lara suggested it may be a sample rate issue, good place to start!
Related info:
When using the NetworkSpawnManager to despawn an object that was previously spawned with it, it only despawns locally but not on the other clients.
After some time debugging, it seems to me that the update done on the local peer never gets correctly sent to the others.
When rejoining the room the object that should've been despawned doesn't get spawned again, so everything then works as intended.
I haven't tested this with room-scope objects.
Hello, our team is planning to implement remote a rendering-based social VR application, where the rendering workload is offloaded to the server. We are wondering if it is possible to instrument the code of ubiq to implement it.
Specifically, we need to design a rendering pipeline on the server side and transmit the rendered content to the client. We want to implement our scheme based on ubiq. Do you have any suggestions about our idea?
It seems that the logcollector service isn't working anymore, most likely due to recent changes on the server side.
It can't connect to rooms anymore and after getting it to connect to a room (after some modifications) the listeners just wouldn't work either.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.