Remote Browser / 3D Model Manipulation

Hi Guys,

We are currently scoping options for a new XP which will showcase (among other things) an interactive 3D model of a building.

There will be 2 x XP’s - a master XP on a tablet / small touchscreen and a slave XP that will bring up content based on interactions with the master. They need to be 2 separate machines on the local network.

One challenge we have is that they do want the ability to manipulate the 3D model on the master XP (and also a web page) and at the same time open the same model (or web page) on the slave screen and for that manipulation to mirror on the slave xp in a nice fluid experience.

So my non-developer head has gone looking for options and I’ve come up with the following

Option 1 - Some kind of screen capture solution to stream a location of the master screen to a video asset in the slave screen. It would be across the local network (WIF though) so not sure about quality?? The slave screen will be 4K 98"

Option2 - For the 3d model use the native 3D IF model asset in both master and slave and send the x /y / rotation coordinates to the same model on the slave screen via network triggers. I tested something similar to this and it wasn’t a very fluid experience in that it waits for you to stop manipulating before sending the value so its not a seamless “in sync” experience. This also will not help me with wanting to do the same with a web browser

Option 3 - Do the 3d model in something like unity or unreal and use Paolo’s examples of wizardy to integrate into intuiface. Although I’m not sure about those platforms ability to do what I’m after. As above this does not help me with the requirement to mirror the browser as well.

Option 4 - look at something like this project GitHub - Pamblam/browser-mirror: mirror actions on a web page remotely with a local web-server which appears to mirror browser actions across multiple browsers on the network… although I think the Intuiface browser is closed off to web sockets which may be a problem?

Option 5 - I’ve done some googling around WEBRTC technology for screen sharing. Again the possible quality issues may be in play here?

Keen to hear if anybody else out there has any ideas and if you are interested in helping us with this implementation I’d be happy to chat with you.

I look forward to hearing from you and thanks as always for you help

Hi Ben,

Heres my take on what I would do,

Option 1 - Some kind of screen capture solution to stream a location of the master screen to a video asset in the slave screen. It would be across the local network (WIF though) so not sure about quality?? The slave screen will be 4K 98"

You could create a UDP stream using OBS and then bring it inside Intuiface with the video asset we have done this across a local network streaming it from one PC to another. Use this help article link Setup UDP stream to the second PC

Option2 - For the 3d model use the native 3D IF model asset in both master and slave and send the x /y / rotation coordinates to the same model on the slave screen via network triggers. I tested something similar to this and it wasn’t a very fluid experience in that it waits for you to stop manipulating before sending the value so its not a seamless “in sync” experience. This also will not help me with wanting to do the same with a web browser

If you are using the first option you wouldn’t need to have this functionality have your two machines on a shared excel/airtable base when the model is moved update the rows and on the slave, machine gets values from excel/airtable? Maybe worth a try?.

Option 3 - Do the 3d model in something like unity or unreal and use Paolo’s examples of wizardy to integrate into intuiface. Although I’m not sure about those platforms ability to do what I’m after. As above this does not help me with the requirement to mirror the browser as well.

What sort of 3D models are you wanting to display? is it really detailed models or just simple models? regarding the unity intergration side of things check out Mihais post from 2016 Unity Starter Package and Documentation

But for Options 4 and 5 give my suggestion about Option 1 a go and let me know how you get on?

Kind Regards

Louie

2 Likes

To add on Louie’s answer, about Option 2, using Local Network Triggers or worse Web Triggers would indeed result in a not fluid experience on the remote display.
If you want to send X/Y/Z values from 3D Model in XP A to XP B through the network, I’d recommend using either UDP or Web Sockets, which will be much faster than HTTP requests. This would require to develop your own custom interface asset, then use a binding between that IA and the 3D model to get continuous value updates and avoid relying on the trigger which indeed is raised only at the end of the manipulation.

2 Likes

Thanks Louie.

Testing option 2 now - have looked at this before but couldn’t get it working until i ready it properly!

I have it working in VLC but not in intuiface. I’ve added the same url I have in VLC udp://@192.168.1.112:8080 to pick up the stream but the video asset is not picking it up.

Thanks again

Hi Ben,

Try it with the video asset set to VLC rather than WMP on the asset properties, make sure you start streaming or recording then try it.

Kind Regards

Louie

Thanks Louie I always forget that part. Update my side.

I found it a bit tricky to find the right settings for the UDP stream. The latency and quality just wasn’t workable (particularly because the capture device is running over WIFI) There were so many options to tinker with and I can’t say video codecs are my forte. I’d be keen to know how you set your encoding settings for your solution.

A bit further in the forums mentions the NDI plugin for OBS as an option

I managed to get this working and I found the quality and latency to be much better than what I could get out of the UDP stream… and a workable solution (i think) for the client.

The trick is getting the output back to VLC inside intuiface which may likely require re-encoding inside OBS on the receiving machine as VLC cannot accept NDI as an input I think…still investigating that part.

For now I’m just launching the NDI monitor APP NDI Tools | NDI.tv fullscreen on top of intuiface which appears to be a workable solution.

Will keep you posted on the final outcome

We are going to test option 2 and 4 as well so I’ll keep you posted

Thanks as always

2 Likes