Git Product home page Git Product logo

nest-desktop / nest-desktop Goto Github PK

View Code? Open in Web Editor NEW
16.0 16.0 9.0 56.51 MB

NEST Desktop is a web-based GUI application for NEST Simulator.

Home Page: https://nest-desktop.readthedocs.io

License: MIT License

JavaScript 0.04% Shell 0.54% Python 0.08% HTML 0.06% Vue 30.23% TypeScript 64.66% Dockerfile 0.12% Mustache 4.22% SCSS 0.05%
biological-neural-networks graphical-user-interface nest simulation

nest-desktop's Introduction

NEST Desktop
NEST Desktop

A web-based application for spiking neuronal simulation.

General docs license DOI
GitHub Latest release GitHub commit activity GitHub forks GitHub stars
Docker Docker image version Docker image size Docker image pulls
Python Python version Python downloads
Conda Conda version Conda downloads total
AppImage Latest release AppImage downloads total
Snap Snap version Snap trending

Synopsis

NEST Desktop is a web-based application which provides a graphical user interface for NEST Simulator. With this easy-to-use tool, users can interactively construct neuronal networks and explore network dynamics.

Advanced users often choose NEST Simulator: a prominent tool for spiking neuronal networks to measure network dynamics.However, programming knowledge is required to write code for this tool. NEST Desktop bypasses this requirement, but still teaches users how to construct and explore neuronal networks. A textual script is generated from the constructed networks and sent to NEST Simulator; the network activity is then visualized in a graph or table. It is a useful teaching tool, since the network graphs and network activity visualizations can be exported to files that users can implement for their course protocol.

NEST Desktop is available on EBRAINS (free EBRAINS account required).

Quick start

To get started with NEST Desktop and NEST Simulator, use Docker compose with the configuration file:

wget https://raw.githubusercontent.com/nest-desktop/nest-desktop/main/docker-compose.yml
docker-compose up --build

For more information, please see the User Documentation Page.

Cite NEST Desktop

In order to cite NEST Desktop in general, please use the DOI 10.5281/zenodo.5037050 for all versions (always redirecting to the latest version). If you like to refer to a single version, you can find these also on Zenodo, e.g. 10.5281/zenodo.5037051 for Version 3.0. You can use the reference to the paper for NEST Desktop (DOI: 10.1523/ENEURO.0274-21.2021) mentioned above as well, if that is more appropriate in the context of your reference.

You will also find the exports for the citation managers on Zenodo and eNeuro.

Funding

This project has received funding from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under Specific Grant Agreement No. 785907 (Human Brain Project SGA2) and No. 945539 (Human Brain Project SGA3). This project was funded by the Helmholtz Association Initiative and Networking Fund under project number SO-092 (Advanced Computing Architectures, ACA). This work was supported by the DFG Excellence Cluster BrainLinks-BrainTools (grant EXC 1086).

License

NEST Desktop is published under the MIT license.

nest-desktop's People

Contributors

babsey avatar jens-br avatar ystradmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nest-desktop's Issues

Panels/Scenes

Investigate the possibilities to unify the structure of the panels and scenes. It would be desirable to have a modular structure, which is identical (or at least similar) for both panels and scenes, so that new panels and scenes can be added with low effort.
Add Panel should give the possibility to select 2D- and 3D-panels (or at least to toggle the selection instead of the toggle on the Explorer button).
Further information: @bweyers

Improve Left Sidebars

  • The left sidebar should be not pinned by default, but the option for pinning it should be accessible in the options.
  • The left sidebar should contain the buttons Help and About below Settings (linking to help and about).
  • The left side of the Editor icon should be flush with the left bar, the brain icon might be removed.

Questions:@bweyers

Navigation behavior

The behavior of the navigation bar could be optimized: Currently, switching between the Models and the Project view requires at least two clicks. This might be a bit cumbersome, if one needs to go back and forth more than one time.

Bug Reporting Options for Users

Investigate the possibilities to give users the options for sending a bug report.
It needs to address some problems:

  • Spam should be prevented.
  • The reports should be helpful and reproducible.
  • It should be easy (e.g. possible without a Github account, not every neuroscientist has one).
  • ... (to be continued)

Context Menu Issues

There are multiple issues regarding the context menus.

  • In the NetworkNodeMenu, the style of the view for selecting parameters cuts the letters of the items.
  • Same holds for the NetworkConnectionMenu.
  • In the NetworkConnectionMenu, selecting ALL or NONE parameters has no effect.

Default settings values are not changeable.

In NEST Desktop the default port number for NEST Simulator is 5000.
However, there was a request that they have to manually change the port number in the settings.

Every setting values are integrated in js file in the production.
Thus, it was not possible to set default value before starting NEST Desktop.

An idea would be to outsource the settings of NEST Simulator to JSON file in public folder.

Network and project hash

We will discuss this issue whether it generates sha-128 or sha-256.

src/core/network/network.ts and src/core/project/project.ts Do you think SHA-128 is sufficient for these purposes? Or will we run into trouble with hash collisions? We also have to keep in mind that the hash values generated by this module differ from the ones generated by OpenSSL (as used in the sha1sum or in the Crypto module of Node), so the computed SHA-128 sums with the object-hash package can not be compared with SHA-128 sums generated by other programs.

Simulation time resolution

Stefan reports that student mostly crashed the nest-server when the sim resolution is smaller than 0.1.
Maybe we should consider a smaller range for simulation time resolution, e.g. 0.1, 1.0, 10.0.

Optimize Cursor Symbols for Dragging

Currently, the mouse pointer does not indicate if a user trying to drag the background or just selected mistakenly a connection. It would be helpful if

  • ... the cursor changed to move when the background is held and
  • (if possible) to grabbing when a node is moved.

Clone Multiple Nodes

Inspect the possibilities to clone multiple selected nodes at once. This requires bigger efforts, since our selection currently works only for single elements and we would need to synchronize all other display elements with this selection (resp. give them some sort of useful content).
It should be helpful to add switching manually to a "multi-select mode", e.g. with a key combination or a separate button. When this mode is active, the selected nodes are marked in some other style than the "singe select"-node, but do not need to be synchronized with the other UI elements.

Upgrade Plotly

Plotly needs to be upgraded to version 2.0.0. The following problem needs to be addressed for this:

  • The exported images contain artifacts: In column charts, the text "auto" is contained for every column.

Performance Analysis

We should have a closer look at the performance of NEST Desktop in Vue to make sure we haven't introduced any undiscovered bottlenecks. This should be done in production mode, not in development mode.

  • Performance testing
  • Fix bottlenecks, if any
  • Performance testing of the fixes

Concrete issues:

Lab book

  • Lab book interface
  • Print to pdf

Bug: State 0, ready state 4

When searching the NEST Server, sometimes state 0 is returned while the ready state is displayed as 4 (READY).

Upgrade @vue/eslint-config-typescript

An upgrade of the package @vue/eslint-config-typescript should be considered: It is currently on version 4.0.0 (2019 or before), the current version would be 7.0.0. A warning of possible problems is given at every compilation.

Color Scheme

The color scheme should be checked. Optimally, a user can choose between color schemes.

Points to consider:

Unnecessary execution of Vue watchers

There seems to be an issue with the Vue watchers, especially if a component is used multiple times. Then multiple executions occur - but interestingly not in every case.

Type Handling and Typing Strategy

Examples:

  • activityData, data, event (multiple and different occurrences)
  • layer, trail : src/core/activity/animationScenes/activityAnimationSceneBox.ts, etc.
  • scene: src/core/activity/activityAnimationGraph.ts
  • route src/components/navigation/NavigationTemporary.vue
  • ... (to be continued)

Add Panel multiple times

Regression: It should be possible to show more than one display like in the recent versions. (Stefan)

Activity controller

Controller interface for network activity

  • Panels for chart
  • Controller for animation

Update Documentation for 3.0

The documentation needs to cover the new changes introduced with NEST Desktop 3.0 (especially visual content).

Firefox' SOP prevents usage of NEST Server in some cases

In some usecases, the Same Origin Policy of Firefox prevents the access to NEST Server. However, the model information are loaded and the NEST Server is also found, but not all resources can be accessed (e.g. the favicon).
We will need some information about the differences within the SOPs of Firefox and Chrome/Chromium, since in Chrome, this is not a problem.

Endless reloading

When new content is detected (upgrade, patched), then it reloads but it did not download new content.
Then it reloads again and it ends with endless reloading.

To stop it, I pressed CTRL + ALT + R.

Code Documentation Framework

It might be a good idea to change to a solid code documentation framework. This would pose the option to generate a webpage containing all our documentation and give easy hints for documentation.

A good list can be found at https://vue-community.org/guide/ecosystem/documentation.html. Vue Styleguidist (https://vue-styleguidist.github.io/docs/Documenting.html#code-comments) and Vuese (c.f https://dev.to/berniwittmann/quick--easy-documentation-generation-for-vuejs-components-7k6) looked interesting, Vue Styleguidist has the major advantage to use plain JSDoc comments we are already using, so this should be not a breaking change.

I tested Vue Styleguidist and jsdoc-vuejs, but both seem to struggle with the Composition API. Therefore, I would suggest to address this at earliest in summer, rather autumn (-> task for version >=3.1).

Width of Right Sidebar

There is a small visibility problem with the right sidebar, as shown below (scroll bar not completely shown):
CodeAreaClipping
Additionally, the width of the sidebar differs when selecting the 'Statistics' or 'Code' section. Since there is not a sensible limit for line lengths, it is not possible to avoid line breaks in every case (for both sections), so this is a goal which we will never achieve anyway. All in all, I think we should envisage a compromise in terms of width which is unique for all sections of the right sidebar.

Bugs No.1

Several unclassified bugs

  • Inverse synapse weight
  • Inverse all weights of a node
  • delete node with connections
  • tooltip for elements in panel
  • connection in graph clickable
  • reset network graph
  • update network graph
  • gradient color for connection card

Upload

The upload is not implemented yet.

  • Local upload (from file)
  • Upload from web

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.