flyflix's Issues
Please document all parameters for a method
There is at least one method with more arguments than what is documented (StarfieldSpatialTemporal.__init__()
in the quinnwall/starfield
branch). Please double check that the documentation and arguments match.
flyflix.py error
Hi there,
did (aspects of) flyflix receive an update very recently? I installed and successfully ran the flyflix.py script two days ago, but now it throws this error:
$ python3 flyflix.py
Traceback (most recent call last):
File "/home/rjs/FlyFlix/flyflix.py", line 19, in
from flask_socketio import SocketIO
File "/home/rjs/.local/lib/python3.10/site-packages/flask_socketio/init.py", line 24, in
from werkzeug._reloader import run_with_reloader
File "/home/rjs/.local/lib/python3.10/site-packages/werkzeug/_reloader.py", line 391, in
import("watchdog.observers")
File "/home/rjs/.local/lib/python3.10/site-packages/watchdog/observers/init.py", line 63, in
from .inotify import InotifyObserver as Observer
File "/home/rjs/.local/lib/python3.10/site-packages/watchdog/observers/inotify.py", line 76, in
from watchdog.observers.api import (
File "/home/rjs/.local/lib/python3.10/site-packages/watchdog/observers/api.py", line 23, in
from watchdog.utils.bricks import SkipRepeatsQueue
File "/home/rjs/.local/lib/python3.10/site-packages/watchdog/utils/bricks.py", line 175, in
class OrderedSet(collections.MutableSet):
AttributeError: module 'collections' has no attribute 'MutableSet'
I looked around a bit and found a "similar" issue for another software here:
Bogdanp/dramatiq#428
But I am not sure how to go about trying their solution.
Perhaps it is a python issue?
My python version is 3.10.6
Any ideas?
-Ruud
Allow any number of meta data
If I try to add all the metadata that was previously logged to the defaultsconfig.yaml file, then I don't see the last 3 in the control-panel. I put the example on my cshl branch and I am missing the last 3 settings.
The user should not be limited in the number of metadata they can provide. In the best case, there is always 1 empty line under all the filled key/value fields.
Allow a range of stars for the starfield
Provide the size and colors of stars in the starfield as a list. For example, if I provide ['#00FF00', '#007700', '#002200']
, I would want 1/3 of the stars in bright green, 1/3 in medium green, and 1/3 in dark green. Similarly for sized: If I provide [1, 0.5, 3]
, 1/3 should be 1° stars, 1/3 should be 0.5°, and 1/3 of the stars should be huge covering 3° of the visual field.
Populate Control Panel using the Key/Value pairs
Use the key/value pairs, such as "strain"/"DL" or "sex"/"female" to populate the text inputs in the control panel. The user should have the ability to alter these values.
Maybe use a different background color for the text field to show that the value is preloaded from the YAML file?
This is what it could look like when the user opens the control panel:
Add current status to the control panel
Once the experiment is started, show the current condition and the number of conditions on the control panel. Currently this information is only available at the command line (e.g. Condition 1 of 30
).
A similar status update would be helpful.
Sync status of Control Panel and other screen(s)
If the user chooses to click the "start" button on the tablet, the control panel does not change. So there is a chance, that an experiment is running on the tablet and the user can still press "start" on the control panel. Also, I would expect that the status is shown on the control panel no matter who starts the experiment.
Is it possible to synchronize the status between the screens so that the status of the start/stop/restart button changes on both screens at the same time?
Getting started documentation
Since you just went through the process, can you write a Getting-started-with-development.md
documentation with what you learned. It is very difficult for me to guide people to all the things they need to know when they want to improve FlyFlix, but maybe you have some good ideas what to look at, what to read, and which files are most important to understand.
If it helps, you could write separate files for "What to do when you want to develop a new stimulus", or "What to do if you want implement a new protocol based on existing stimuli"?
Starfield does not work on tablet
When the protocol starfield2 is run on a tablet (Amazon Fire 8), the protocol rarely finishes, often hangs, and cannot be closed.
HTML elements overlap / are inaccessible
Depending on the screen sized, elements in the control panel are difficult to reach (key/value pairs on the bottom) or overlap each other (start button, submit button; see screenshot below). Using web technology, this can be avoided.
The code basis already contains the chota framework (used in the sitemap), maybe some of these issues can be solved with the framework?
Empty keys in the YAML file "required" fields
If the YAML file contains a "Key" but no "value", the key should be shown in the Control Panel (see #14) and the empty value field should be highlighted in a strong color.
Error in
Depending on the value inside the yaml file, the control-panel shows an error.
For example, if I set the value of "day-night-since" to "Monday", the control-panel shows that value. If I set it to "2023-07-03" (today's date in ISO standard format, which is a valid date format according to YAML (https://yaml.org/spec/1.2.2/) Example 2.22, the "/control-panel
" shows an "Internal Server Error", while other pages like the "/cshlfly22
" does not.
Change color when required field was entered
In #15 you highlighted the field of metadata which requires some user input. Can you remove the color once the use has changed the value?
Change behavior of Control panel buttons
There is no real utility in "submitting" the metadata without "starting" the experiment: The metadata only gets logged once the experiment starts.
Therefore I suggest to remove the "submit" button and have the metadata submitted when the "start" button is clicked.
Please document how the configuration is used
Add a paragraph or two to the README.md
detailing the use of the default config file and the control panel.
Document existing stimuli
Would you be able to add a markdown file that describes all the different stimuli and their parameters? Maybe you can even add images and videos for each of the stimuli?
Update status information based on button clicks
Please change the status to "stopped at condition X of Y" once the user clicks on "stop" on during an experiment.
Please reset the status information to "Once the experiment is started, status will be shown here. " once the user clicks on "restart".
Maybe this is closely related (or fixed) by #23?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.