neuromore / studio

neuromore Studio is your all-in-one biofeedback suite
https://neuromore.com
122 stars 39 forks source link

Save/Load Designs to/from Local Filesystem #175

Open stellarpower opened 2 years ago

stellarpower commented 2 years ago

I feel this is a big one, expressed by a number of others via comments I read online, and for my own use probably too. The cloud-backed storage is nice, I can see many ways it simplifies things and integrates well with professional licencing, which I appreciate is what pays for something to be available FOSS too. However, I think one thing I cna imagine would really slow down uptake in the community is the ability to share protocols or other design files easily, and in some central manner (I.e. a forum, repo, or similar could appear, where people can upload their designs to share). If I see someone else's design online that has worked well for a particular scenario, presumably the only way I can replicate this in Studio as it stands is to drag-and-drop each node one-by-one, and visually try to ensure that I recreate the same setup in my personal folder. It goes without saying that that will take ages and introduce all sorts of issues if I don't do it perfectly. I also think the editor could do with some improvements, but, if I can play with the protocols in a text editor to fill in this gap, then this makes the software a lot more powerful whilst UI improvements make their way into the code over time. Neuromore has a lot going for it, and it seems it's one of only three viable non-proprietary (and orrendously expensive) packages for feedback (BrainBay and OpenVibe being the other two), and with things like Unity integration out the box, it seems to be leaps and bounds ahead of the other two in many ways. I think a couple more usability improvements like this would make a big difference to how viable it is as an application to be used in real situations by many in the community at large, and can iron out any other feature gaps that may be improved in due course, as sharing and collaborating on protocols seems to me to be necessary if it's to be adopted. I would more than happily upload my own as I make them, if I could get my hands on the files themselves.

JuliusCosmoRomeo commented 1 year ago

Hi @stellarpower, thanks for your incredibly valuable feedback! I really see your point that the file browser could be improved to make usability a lot better. Actually it's already possible to copy files (e.g. from the examples folder) into your home directory if you right-click the file. I must admit that this might not be the most obvious action and wonder how we could improve it. Do you have any idea? Is there maybe an application that does it really well?

Also good point that a project library would be very helpful to also upload your own files. We can maybe extend the experience selection and turn it into a library where you can search and filter experiences that others created and create new experiences as new projects. Then it could become a bit like the project setup wizard of e.g. Unity image

stellarpower commented 1 year ago

I will probably need to implement a (scrappy) version of this when my FreeEEG32 finally arrives - I'm hoping I can edit protocols more easily just playing with the JSON, then version control in pijul and load back in to monitor what I'm doing and make them more configurable.

So more than happy to upload a branch with whatever I have and can go from there if that works it probably won't be until the new year until I get time, but I have a container build set up in Earthly that I've tested, so should be easy to hack on the relevant functions.

Cheers

stellarpower commented 1 year ago

I see as of 1.7.1 I have an option if I right-click to copy JSON and to save to local disc. Am remote right now, so don't have an old version to hand - not sure if I missed this somehow or if it's new!! But great in either case, my protocols are getting a bit large and unwieldly. I will have a go with making the other points mentioned more intuitive when I have time :D

JuliusCosmoRomeo commented 1 year ago

Not bad, well noticed. ;) Yep, that's the new way to copy/paste files and work with different revisions. And I get the struggle with having to maintain super large and slightly entangled classifiers. Glad you're sharing the enthusiasm about the new feature. :D

JuliusCosmoRomeo commented 1 year ago

Also thanks for the Brainflow upgrade! 🎉 Clint will take a look at the PR during the next couple of days. If it works this would be a pretty significant game-changer that should enable a bunch of new devices. :)

stellarpower commented 1 year ago

No worries! I have some thoughts on how devices are managed too, for now my priority is still getting a full pipeline working so that I can train on myself, but if and when I start to feel the effects then hopefully that means more dev time so I'm still keeping an informal "wishlist" and will begin opening bugs and hopefully submitting some patches too. I've not properly pored through the sources yet, but I've dipped in here and there and I think a couple of refactors that I have on the list, as well as possibly upgrading the build system as mentioned on the thread for that PR, might help make future changes faster to perform. Being able to export the JSON or download past versions from the API endpoints has at least meant I can version-control my classifier properly, so it's meant I've been able to make much faster changes to this safe in the knowledge I can track what it is I am changing and go back and re-include things if needed. And I can also then share these or upload them publicly as someone from the FreeEEG32 project I know is also looking to start using Neuromore for training folks with these devices soon.