Web-based GUI for building and visualizing Nengo models.
Project description
Nengo GUI
Nengo GUI is an HTML5-based interactive visualizer for large-scale neural models created with Nengo. The GUI lets you see the structure of a Nengo model, plots spiking activity and decoded representations, and enables you to alter inputs in real time while the model is running.
Requirements
Python (tested with Python 2.7 and Python 3.4+)
Nengo (which requires NumPy)
Installation
The simplest way to install is with the standard Python installation system:
pip install nengo-gui
Running Nengo GUI
Nengo GUI is accessed through a web browser (Google Chrome, Firefox, Safari, etc.) To access the correct webpage, you must first start the Nengo GUI server. To do this, open a command line window and run:
nengo
If you specify a file, it will be loaded:
nengo myfile.py
Alternatively, you can start the GUI manually from within your code. To do so, add this to the bottom of your file that defines your Nengo model.
import nengo_gui
nengo_gui.GUI(__file__).start()
Basic usage
The graph of the Nengo network should appear. Rectangles are nodes, sets of 5 circles are ensembles, and rounded rectangles are networks.
Items can be dragged to move them and resized by dragging their edge or via the scroll wheel.
To start (or continue) the simulation, click the play button in the lower right. A spinning gear icon indicates the model is in the process of being built (or re-built after new graphs are added).
Clicking on an item will show a menu of options, depending on what you have clicked on. Here are some of the standard options for network items:
value: show a graph of the decoded output value over time
xy-value: show a state-space plot of two decoded values against each other
spikes: show the spiking activity of the nengo.Ensemble
slider: show sliders that let you adjust the value in a nengo.Node
expand/collapse: reveal or hide the insides of a nengo.Network
Once you have graphs, you can also click on them to adjust their options. For example:
set range: adjust the limits of the graph
show label/hide label: whether to show the title at the top of the graph
remove: get rid of the graph
The graphs record their data from previous time steps. You can show this previous data by dragging the transparent area in the time axis at the bottom (beside the play button).
Contributing
We welcome contributions to Nengo GUI through issues and pull requests! However, we require contributor assignment agreements before pull requests are merged. See the CONTRIBUTORS.rst and LICENSE.rst files for more information.
Developer installation
Developers should install Nengo GUI like so:
git clone https://github.com/nengo/nengo-gui
cd nengo-gui
python setup.py develop --user
Changes to the files in the nengo-gui directory will be reflected the next time the GUI is run or imported.
Running unit tests
Testing is done with the help of Selenium. Testing is currently only supported on Linux and Mac OS X.
To run the tests, make sure you have a recent version of Firefox. Mac users should ensure that Firefox is in the applications folder.
Additional dependencies are required for running unit tests. To install them, open a terminal and navigate to the nengo-gui folder. Execute the command
pip install --user -r requirements-test.txt
If you are using a virtual environment, you can omit the --user flag.
At this point selenium and pytest should be installed, so you are ready to run the tests.
To run the tests:
Open a terminal window and start the nengo server.
Open a second terminal window.
Navigate to the nengo-gui directory.
Run py.test.
The console should say some number of tests are found, and Firefox will launch and start doing things on its own. It may takes a few minutes to run all tests.
Writing new unit tests
To create tests, simply save a file named test_whatever_the_test_concerns.py in nengo_gui/tests See nengo_gui/tests/test_example.py for examples tests.
The following references may also be helpful.
Release History
0.5.0 (November 16, 2023)
Compatible with Nengo 2.6.0 - 3.1.0
Made NengoGUI available under the GPLv2 license.
0.4.9 (May 24, 2022)
Compatible with Nengo 2.6.0 - 3.1.0
Improvement: Reworked How To Build a Brain examples to be more clear.
Bugfix: Fix compatibility with Python version 3.10.
0.4.8 (June 9, 2021)
Compatible with Nengo 2.6.0 - 3.1.0
Bugfix: Fix compatibility with Nengo version 3.1.0.
0.4.7 (November 24, 2020)
Compatible with Nengo 2.6.0 - 3.0.0
Bugfix: Restrict Nengo version to <=3.0.0.
0.4.6 (March 3, 2020)
Compatible with Nengo 2.6.0 - 3.0.0
Bugfix: Fix examples for nengo 3.0 (those examples now require nengo>=2.6)
Bugfix: Failure when opening browser from script
0.4.5 (November 19, 2019)
Improvement: subclasses of Network use their class name as a default label
Bugfix: Removed duplicate response headers (fixes loading in Chrome)
Bugfix: Fix for running with Tornado 6
Bugfix: Handle recent changes to nengo.Process API (backwards-compatible)
0.4.4 (June 9, 2019)
API change: Added backend to InlineGUI constructor.
Improvement (Experimental): Added simulator hooks
Improvement: Added audible spike sounds
Improvement (Experimental): Nodes have access to the GUI keyboard state
Improvement: support for nengo-bio Connections
Improvement: show multiple connections between objects
Bugfix: handle new Connection transform in Nengo 3.0.0
Bugfix: escape labels so they aren’t treated as HTML
Improvement: reworked networking to allow clean integration with Jupyter
0.4.3 (June 28, 2018)
Bugfix: thread-safety for jedi autocompletion
Bugfix: Handle authentication when connecting to multiple servers
Bugfix: Fail gracefully when binding server
0.4.2 (June 8, 2018)
Bugfix: Cloud plots for nengo_spa.Transcode plots no longer fail
0.4.1 (June 5, 2018)
Bugfix: File menu no longer has an incorrect height
Bugfix: SPA plots for nengo_spa are now created correctly
0.4.0 (June 1, 2018)
Added build progress indicator
Added status bar
Pan view with CTRL/MMB
Support for nengo_spa
Added –browser option
Added –unsecure option
Fixed backspace not working on sliders, search box
Added autocomplete to text editor
Added visual depiction of modulatory and inhibitory connections
Token-based authentication
Dual-stack IPv4/IPv6 support
0.3.1 (October 17, 2017)
Improved some error messages.
Fixed an issue with Safari compatibility.
0.3.0 (February 22, 2017)
This release is compatible with Nengo 2.1.0 and later.
Added ability to set number of neurons in raster plots.
Added ability to adjust synaptic filter on value plots.
Rewritten server implementation for robustness and compatibility.
Added tutorial files for “How to Build a Brain” book.
Improved Selenium testing.
Removed randomness in auto-layout algorithm.
Better handling of messaging errors.
Added red save icon indicator of a failed save.
Added a “Help” link to https://forum.nengo.ai
Removed seed changes due to creation of plots.
0.2.0 (April 28, 2016)
This release is compatible with Nengo 2.1.0.
The network graph can now be exported to SVG for inclusion in publications.
Simulation data can now be exported to CSV for later analysis.
The simulation will now automatically slow down to real time by default. The speed can be controlled with a new slider in the bottom left.
Clicking on the file name allows you to save the model to a different file.
Configuration now persists when the browser is closed and reopened.
Value plots can now have a legend.
Added a unit testing system.
Optimized several parts of the code, which improved speed and responsiveness.
Many other bug fixes and look-and-feel improvements.
0.1.5 (November 3, 2015)
Added a set of tutorials to the built-in examples.
Added cross-hairs when hovering over plots.
Added several new types of plots, including a firing pattern plot, a similarity plot for SPA networks, and a plot for Compare networks.
Added the ability to implement custom HTML plots. See the built-in example basics/html.py.
Extended SPA override capabilities to all SPA networks.
nengo_gui.Viz has been renamed to nengo_gui.GUI.
Major refactoring of back-end code.
Many bug fixes and look-and-feel improvements.
0.1.4 (June 16, 2015)
Spike rasters are now much faster.
Added a reset button that restarts a simulation.
Code editor now has a border, making it easier to resize.
Can now search in the code editor (with Ctrl+f).
When an error occurs in a model, a console will display with error details. Printed values also show up in this console, for easier debugging.
Can now import from other files in the same directory as a Nengo model.
Readonly files are handled safely, instead of crashing.
Several minor aestheic improvements and bug fixes.
0.1.3 (June 10, 2015)
Fixed another Python 3 compatibility issue with autolayouts.
Fixed a bug that could cause a crash when reloading config files.
0.1.2 (June 9, 2015)
Fixed a Python 3 compatibility issue with semantic pointer graphs.
0.1.1 (June 8, 2015)
A large number of stability and user experience fixes. The first release was a bit buggy, but this should be pretty stable.
Includes many more examples out of the box.
0.1.0 (June 5, 2015)
Initial release of Nengo GUI! Thanks to all of the contributors for making this possible!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nengo-gui-0.5.0.tar.gz
.
File metadata
- Download URL: nengo-gui-0.5.0.tar.gz
- Upload date:
- Size: 758.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58ea7d7ff1a4aab60490d0af44459555c13672d213a8fd2090f6e259e7dbbc83 |
|
MD5 | d0d1b3f060ac43889c30dad01c040cf3 |
|
BLAKE2b-256 | 48d7c75e803f06035e57ff3edf55d049dff26e695305bfaf5d81c74d2ebeea40 |
File details
Details for the file nengo_gui-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: nengo_gui-0.5.0-py3-none-any.whl
- Upload date:
- Size: 848.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3e19ee2629a3f25400c8c6b88864bf4aec12c2c4e756f59dde28f204a39259eb |
|
MD5 | 9cd81b168ab555c6bb6e1337d15af0e2 |
|
BLAKE2b-256 | f4b8f1d8a447ebb8222221c9d17a101eb242de55f31052acc83593b7f8653889 |