Giter VIP home page Giter VIP logo

nengo-1.4's Introduction

Latest PyPI version Python versions

Nengo: Large-scale brain modelling in Python

An illustration of the three principles of the NEF

Nengo is a Python library for building and simulating large-scale neural models. Nengo can create sophisticated spiking and non-spiking neural simulations with sensible defaults in a few lines of code. Yet, Nengo is highly extensible and flexible. You can define your own neuron types and learning rules, get input directly from hardware, build and run deep neural networks, drive robots, and even simulate your model on a completely different neural simulator or neuromorphic hardware.

Installation

Nengo depends on NumPy, and we recommend that you install NumPy before installing Nengo. If you're not sure how to do this, we recommend using Anaconda.

To install Nengo:

pip install nengo

If you have difficulty installing Nengo or NumPy, please read the more detailed Nengo installation instructions first.

If you'd like to install Nengo from source, please read the developer installation instructions.

Nengo is tested to work on Python 3.6 and above. Python 2.7 and Python 3.4 were supported up to and including Nengo 2.8.0. Python 3.5 was supported up to and including Nengo 3.1.

Examples

Here are six of many examples showing how Nengo enables the creation and simulation of large-scale neural models in few lines of code.

  1. 100 LIF neurons representing a sine wave
  2. Computing the square across a neural connection
  3. Controlled oscillatory dynamics with a recurrent connection
  4. Learning a communication channel with the PES rule
  5. Simple question answering with the Semantic Pointer Architecture
  6. A summary of the principles underlying all of these examples

Documentation

Usage and API documentation can be found at https://www.nengo.ai/nengo/.

To build the documentation yourself, run the following command:

python setup.py build_sphinx

This requires Pandoc to be installed, as well as some additional Python packages. For more details, see the Developer Guide.

Development

Information for current or prospective developers can be found at https://www.nengo.ai/contributing/.

Getting Help

Questions relating to Nengo, whether it's use or it's development, should be asked on the Nengo forum at https://forum.nengo.ai.

nengo-1.4's People

Contributors

20id avatar bptripp avatar celiasmith avatar drasmuss avatar e2crawfo avatar hunse avatar jaberg avatar naruyan avatar otrujill avatar patpat9 avatar pblouw avatar shuw avatar studywolf avatar tbekolay avatar tcstewar avatar xchoo avatar

Stargazers

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

Watchers

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

nengo-1.4's Issues

Running Networks at different levels gives different results

[Issue migrated from SourceForge | ID: 2112578 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=2112578]

Running a simulation inside a network and then abstracting out a layer with the same input gives significantly different results.

Noise bug

[Issue migrated from SourceForge | ID: 1909862 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909862]

Possible bug in noise (adds value)?

Unthrown crash on plot close

[Issue migrated from SourceForge | ID: 1948050 | Submitted by 'eliasmith']
[http://sourceforge.net/support/tracker.php?aid=1948050]

After plotting a function input, I close the
window and the simulator exits, no exception, no
nothing...?

Mac version.

Error message on termination name collision

[Issue migrated from SourceForge | ID: 1909853 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909853]

Better exception handling when you add a decoded termination with a name that is already in use.

Exposed Nodes of Network Clones are not independent

[Issue migrated from SourceForge | ID: 2230978 | Submitted by 'nobody']

Exposed nodes of network clones are not independent of one another. Projecting to one projects to the last clone's exposed node and no other.

DEMO - deleting dataviewer data

[Issue migrated from SourceForge | ID: 2903397 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903397]

When deleting data from the data viewer, a paper file icon is left where there was a folder, it is
inert and should probably just disappear.

DecodedOrigins based on current (not AXON) don't work

[Issue migrated from SourceForge | ID: 1958402 | Submitted by 'terrystewart']

If a DecodedOrigin is made and it uses the current as the Node Origin, it doesn't seem to accurately decode the desired function. It still works in DIRECT mode, but not in DEFAULT.

(Note: I'm not sure exactly why anyone would want to decode based on the current, but it should at least be possible. Especially since it seems to be a common error to accidentally use it rather than the AXON.)

1d addition occurs in direct, not in default

[Issue migrated from SourceForge | ID: 2100929 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2100929]

Creating a 1d ensemble with several terminations, in direct mode it gives you the summation of the terminations, but in default mode it returns only "1".

new decoded origins with same name replace old

[Issue migrated from SourceForge | ID: 2175188 | Submitted by 'eliasmith']
[http://sourceforge.net/support/tracker.php?aid=2175188]

when adding a new origin, if it has the same name as one already existing, it seems to add it, but actually replaces it (i.e. another icon with the same name appears, but when hide/show all there's only one left).

should pop up a suggested new name

Origin still exists after removed in UI

[Issue migrated from SourceForge | ID: 1915644 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1915644]

Right-clicking a DecodedOrigin and selecting "remove model" makes the origin disappear from the UI, but it is still there in the model (visible from configuration tree and in python).

DEMO - editing tables/matrices

[Issue migrated from SourceForge | ID: 2903374 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903374]

There are a number of difficulties when editing tables, i'm not sure how this varies across operating systems,
but I am using a mac. 1. tabbing doesn't select the cell tabbed to (so typing is appended, not replacing the
cell). 2. it is difficult to see half of the numbers (bottom half)... when editing a single line table. perhaps it
should be possible to resize the viewing area of the table. 3. clicking off
of the table should either automatically save changes, or ask if changes should be saved (right now it
discards them)... perhaps the 'ok' button could have a 'cancel' button added in the case when changes
don't want to be saved.
Note: These comments are in the context of the PiecewiseConstantFunction -> configuration (and creation)

Sin function not working in origins

[Issue migrated from SourceForge | ID: 2018853 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=2018853]

Just creating a new network and function input of 1, running in direct mode and having an origin = sin(x0) the result is .85 instead of .017etc, input 3 give .014 instead of .05. I haven't tested any more extensively but it seems clear that the sin function in not well.

data doesn't disappear on clear

[Issue migrated from SourceForge | ID: 2892075 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2892075]

when i clear a data folder, there remains an empty file icon with the same name...

Console prepend problem on mac

[Issue migrated from SourceForge | ID: 1909868 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909868]

On mac, completion doesn't replace but prepends; history puts cursor at start on up-arrow.

Data viewer breaks when all cleared

[Issue migrated from SourceForge | ID: 1909859 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909859]

(From Chris) When I clear data below the network name, everything is fine, but if I clear the network name folder, it won't regenerate on the next run (i.e. I can't see any more data)

alias command problems

[Issue migrated from SourceForge | ID: 2803967 | Submitted by 'nobody']

When you add to your class path, if the 'ls' command has an alias (e.g. ls -al) the result is parsed incorrectly and nothing is added to the path, resulting in a class not found error

DEMO - null pointer exception on model removal

[Issue migrated from SourceForge | ID: 2903386 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903386]

When I create a population of neurons, open the population, add a probe to V for a single neuron, and then remove
that probe, I get the following:
DebugMSG: UI Popup Msg: Probe (V) added to Simulator
java.lang.NullPointerException
at ca.nengo.ui.models.nodes.widgets.UIStateProbe.prepareToDestroyModel(UIStateProbe.java:135)
at ca.shu.ui.lib.objects.models.ModelObject.destroyModel(ModelObject.java:188)
at ca.nengo.ui.actions.RemoveModelAction.action(RemoveModelAction.java:58)
at ca.shu.ui.lib.actions.StandardAction.doActionInternal(StandardAction.java:129)
at ca.shu.ui.lib.actions.StandardAction.doAction(StandardAction.java:150)
at ca.shu.ui.lib.actions.StandardAction$SwingAction.actionPerformed(StandardAction.java:224)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
at apple.laf.CUIAquaMenuItem.doClick(CUIAquaMenuItem.java:119)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
at java.awt.Component.processMouseEvent(Component.java:5602)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5367)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:4068)
at java.awt.Container.dispatchEventImpl(Container.java:2068)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
at java.awt.Container.dispatchEventImpl(Container.java:2054)
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

1909869

[Issue migrated from SourceForge | ID: 1983660 | Submitted by 'terrystewart']
[http://sourceforge.net/support/tracker.php?aid=1983660]

Steps to replicate:

  1. File -> create new network
  2. Create an NEFEnsemble that's reasonably large (200 neurons works for me)
  3. Close Nengo. When asked to save before closing say yes.
  4. Open Nengo, and open the saved file.

It looks like Nengo starts the saving (which happens in a separate thread), but then doesn't wait for the saving to finish before closing.

Exposed nodes stay when ensemble inside network deleted

[Issue migrated from SourceForge | ID: 2001961 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2001961]

Setting up a network and then having a NEFEnsemble inside with an exposed node, if the ensemble is deleted without unexposing the node the exposed nodes stick around outside the network.

data doesn't clear properly

[Issue migrated from SourceForge | ID: 2187527 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2187527]

when I do a 'clear data' in the data viewer at the level of the network name, the folder disappears, but there is a white 'file' icon that stays, but seems empty

Selection box remains if we leave selection mode early

[Issue migrated from SourceForge | ID: 1917273 | Submitted by 'terrystewart']
[http://sourceforge.net/support/tracker.php?aid=1917273]

Steps to replicate bug:

  1. Enter selection mode
  2. Start dragging
  3. Exit selection mode
  4. Release mouse button

The selection box remains, and can block selection of nodes beneath it. The selection box does not go away if we start a new selection box -- indeed, we can end up with many orphaned selection boxes on top of each other.

If the selection occurs inside a network, it can be removed by closing the network viewer and reopening it.

(Note: I ran across this because I find myself holding down S rather than tapping it to change to/from selection mode)

SimulationMode not recognized

[Issue migrated from SourceForge | ID: 1920191 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1920191]

In the attached network, the last ensemble is in DIRECT mode, and its DecodedOrigin is in DIRECT mode, but the == comparison to SimulationMode.DIRECT fails in the origin, resulting in constant output for the whole run.

Configuration tree expansion

[Issue migrated from SourceForge | ID: 1909864 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909864]

On the mac, the config tree cells don’t expand for editing (e.g. float[]).

Feature request: Probe adds on terminations/origins

[Issue migrated from SourceForge | ID: 1950701 | Submitted by 'eliasmith']
[http://sourceforge.net/support/tracker.php?aid=1950701]

It would be nice to have the 'add probe' option
appear on all right clicks on origins and terminations.

Plot values sometimes jump up/down at end

[Issue migrated from SourceForge | ID: 1909865 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909865]

Plot values sometimes jump up/down at end

DEMO - fast UI mode switching

[Issue migrated from SourceForge | ID: 2903767 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903767]

I think this might exist, but couldn't find it: There should be a single key/combination that switches between
selection and navigation modes in the UI. The option is in the menu, but there's no quick-key listed.

Python class problem

[Issue migrated from SourceForge | ID: 1909869 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909869]

Can’t load networks that used classes created in Python.

Copy-Paste NEFEnsemble

[Issue migrated from SourceForge | ID: 1943214 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=1943214]

When copying-pasting NEFEnsemble, the new ensemble is corrupted (gives an error when trying to plot)

DEMO - remebering directory

[Issue migrated from SourceForge | ID: 2903782 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903782]

It would be useful if when saving/opening files Nengo would have the default directory be
whatever directory was last used, even between shutting down and restarting (it does this
during a single session, but not across sessions).

Scroll wrong way on drag

[Issue migrated from SourceForge | ID: 1909852 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909852]

Dragging populations off the top of the screen causes
scrolling downwards (and any other direction also goes
the opposite way)

preview functions is inverted

[Issue migrated from SourceForge | ID: 2100877 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2100877]

When adding a decoding origin, (e.g. sin(x0)), when plotting the preview, the plot seems to be -f(x) instead of f(x). Seems to compute probably at runtime though.

Error trying to create second 'sqrt(x0)' origin

[Issue migrated from SourceForge | ID: 2001966 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2001966]

Inside a network with 4 exposed origins from 4 seperate ensembles, I create a new origin on one of the ensembles called sqrt with 1 output dimension user defined function "sqrt(x0)". When trying to create a sqrt origin on a separate ensemble in the same network it gives the error:

Could not perform action: java.lang.ClassCastException: [Lca.nengo.model.Node; cannot be cast to [Lca.nengo.model.nef.NEFNode;

keep track of origin and termination order

[Issue migrated from SourceForge | ID: 2175311 | Submitted by 'eliasmith']

when saving and reopening, network layout is often
reorganized by re-ordering terminations/origins.
This results in crossed links, etc.

Error removing networks with exposed connected terminations

[Issue migrated from SourceForge | ID: 2011342 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=2011342]

After creating a network, an ensemble inside, exposing a termination on the ensemble, connecting it outside of the network and then un-exposing or removing the entire network this error appears.

An unexpected error has occured
Please report this log at: http://sourceforge.net/tracker/?atid=1036998&group_id=216267
If possible, please include a record of what you were doing preceding this screen

*** Nengo V1.0 ***
ASSERT == FALSE, Could not find a Termination attached to a projection: MAIN (1)
*** Stack Trace ***
ASSERT == FALSE, Could not find a Termination attached to a projection: MAIN (1)
ca.shu.ui.lib.util.Util.Assert(Util.java:86)
ca.nengo.ui.models.viewers.NetworkViewer.updateViewFromModel(NetworkViewer.java:310)
ca.nengo.ui.models.viewers.NodeViewer.updateViewFromModel(NodeViewer.java:344)
ca.nengo.ui.models.nodes.UINetwork.modelUpdated(UINetwork.java:115)
ca.nengo.ui.models.UINeoNode$ModelUpdateListener$1.run(UINeoNode.java:826)
java.awt.event.InvocationEvent.dispatch(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)

DEMO - multiple network loads

[Issue migrated from SourceForge | ID: 2903152 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903152]

In the data viewer when a second network is run, the name is appended with '2' (e.g. Network2) on the
third run, it's Network22, etc... should be Network3, etc.

Disconnect doesn't work on Mac

[Issue migrated from SourceForge | ID: 1909857 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909857]

When two nodes are created then connected and disconnected, when reconnected again get error 'Could not connect: There is already an Origin...'

Stopping collecting spikes doesn't actually stop

[Issue migrated from SourceForge | ID: 1981653 | Submitted by 'terrystewart']
[http://sourceforge.net/support/tracker.php?aid=1981653]

If you create a new NEFEnsemble, then select Collect spikes, and then select Stop collecting spikes, it still collects spikes. You can see this by selecting Collect spikes again, and you get the error message "Already Collecting Spikes".

Export to matlab not working

[Issue migrated from SourceForge | ID: 1953604 | Submitted by 'eliasmith']
[http://sourceforge.net/support/tracker.php?aid=1953604]

when importing the .mat file, I just get '@' and _time as variables which do not have any contents and/or are invalid variable names.

Missing probes on load

[Issue migrated from SourceForge | ID: 1909870 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1909870]

Sometimes probes don't show up when a network is loaded from a file.

Origins/Terminations on Ensembles removed when transferred

[Issue migrated from SourceForge | ID: 1949247 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=1949247]

When a NEF Ensemble is transferred between networks all of the origins/terminations that were added by the user are removed.

Exposed origins don't disappear

[Issue migrated from SourceForge | ID: 2011341 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=2011341]

When an origin is exposed outside the network, and then un-exposed, it isn't actually un-exposed.

Origins Not Accessible when Exposed Outside Network

[Issue migrated from SourceForge | ID: 1949122 | Submitted by 't_dawolf']
[http://sourceforge.net/support/tracker.php?aid=1949122]

When a subnetwork is made, and origins inside are exposed outside, they are not probable and no information can be collected from the subnetwork.

DEMO - default plotting behavior

[Issue migrated from SourceForge | ID: 2903394 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2903394]

When double-clicking on an X origin plot, the current default has no filter. It makes more sense for the default
plot to be filtered to whatever the current filter value is. There can also be a 'plot w/ options' which allows changing
the fitler, and a 'plot raw data', which would be what the current default plot is. Hopefully this should also make it
the case that when you plot X data with other data (e.g. the input), it will be filtered before being plotted on the same
graph as the input. This might be complicated by the fact that we don't want default plots to be filtered when not
in spiking mode (e.g. when in a rate mode). So essentially, if the X is generated by spikes, it should be automatically
filtered when double clicking (or plotting with other data), if not it shouldn't be.

can't move populations between networks

[Issue migrated from SourceForge | ID: 2174945 | Submitted by 'nobody']

a couple of issues come up here:

  1. I can't move a selected group of populations
    to a lower level networks without all connections
    being removed (this seems to work from levels
    1->2 but not below that).
  2. I can't move/copy a selected group of populations
    to a higher level network from a lower level
    one.
  3. I can't move/copy a subnetwork to the highest
    level (i.e. world)

Can't save Neuron

[Issue migrated from SourceForge | ID: 1919280 | Submitted by 'terrystewart']
[http://sourceforge.net/support/tracker.php?aid=1919280]

If you create a Neuron inside a Network, it cannot be saved. The error dialog says it's not serializable.

InterpolatedFunction

[Issue migrated from SourceForge | ID: 2896684 | Submitted by 'nobody']
[http://sourceforge.net/support/tracker.php?aid=2896684]

Unlike most other functions, i have to call this with LinearCurveFitter.InterpolatedFunction ... it should be in
its own class, not within another (since other functions aren't).

Array configuration ignores most recent change

[Issue migrated from SourceForge | ID: 1953949 | Submitted by 'terrystewart']
[http://sourceforge.net/support/tracker.php?aid=1953949]

If you edit the values in an array (via the Configure menu), you have to hit tab (or otherwise exit the cell you just edited) before hitting OK. If you don't, the system ignores the changes to that cell.

To replicate this, create an NEFEnsemble, right click on it, go to configure, select the radii, double-click on the value, change it, and click OK. The change will be ignored. if you change it, then press tab, then press OK, the change is accepted.

right click treated like left click on mac

[Issue migrated from SourceForge | ID: 2187504 | Submitted by 'nobody']

I'm not sure if this is only for macs, but when I left click on an item and the (quickly) right-click (to get a context menu), the double-click action occurs (e.g. opening the population, or zooming in, etc.)

Show origin doesn't work after hide all

[Issue migrated from SourceForge | ID: 1911502 | Submitted by 'bryan_tripp']
[http://sourceforge.net/support/tracker.php?aid=1911502]

After hide-all, show-all works but showing an individual origin doesn't work.

scrolling at edges is confusing/poor

[Issue migrated from SourceForge | ID: 2174951 | Submitted by 'nobody']

when I select a group of nodes and move them to
the edge of a network window, the window starts to scroll (which is good), but the nodes scroll faster.
I think the nodes should stay in the same location relative to my pointer while the window scrolls. Otherwise, I quickly lose the originally selected nodes
and have to search around for them.

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.