IRL2 / nanover-imd

https://irl2.github.io/nanover-docs/#
Other
0 stars 1 forks source link

Need to be able to set the interaction force type (gaussian/spring or constant) #53

Open phuddha opened 3 months ago

phuddha commented 3 months ago

e.g. from a juypiter notebook and/or VR/python client. Having spring an issue for demos (e.g. circuits of life) especially when simulation is far away.

hjstroud commented 3 months ago

As it stands, any Python client has full control over their mode(s) of interaction, and it is only the VR client that is currently hard-coded to use a harmonic (spring) potential. This is therefore an issue for the iMD repo, and I would recommend transferring the present issue to this repo.

rhoslynroebuck commented 3 months ago

Just to add to this, I think at the moment each client (python/VR) can specify only their own interaction potential, and not the potential used by any of the other clients. @Ragzouken, can you verify this?

I see two issues here: (a) the VR client defaults to a harmonic potential, and this should probably be gaussian. (b) currently, VR clients cannot change their interaction potential. I think this used to be exposed in the handheld menu and therefore could be dynamically set. I recommend putting it back in the handheld menu and also on the on-screen menu (useful for demos).

Ragzouken commented 2 months ago

Current situation is that VR client uses a hard coded default of a spring-like potential instead of the gaussian. This was deliberate, I think, because at distance the gaussian is so weak it's not clear that force is actually working.

We can of course switch the default to gaussian. We could also look at limiting the spring force applied to more sensible values so that it caps out at a certain distance? It also wouldn't be too much work to make the client take it's default from a shared key, to allow a client to specify what should be used--actually maybe the selections themselves are already supposed to do this? I can't remember..

UI for changing interaction type is noticeably absent, but probably the most work for solving this, and maybe not necessary yet.