Giter Club home page Giter Club logo

brainsimii's People

Contributors

futureaiguru avatar kevinfutureai 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brainsimii's Issues

UI Performance

With many neurons displayed, the UI can get so slow it's unusable.

Consider likelyhood of things being clicked

Is your feature request related to a problem? Please describe.
Please view the attached screenshot of a few neurons in a massive network with random synapses. My frustration in this is that the drawing of the synapses to other neurons is done on top of the neurons and their self-linked synapse, making it almost impossible to select the both the self-linking synapse and the neuron.

Describe the solution you'd like
Please consider drawing the elements in the following order:

  1. Synapses to other neurons (possibly in order of nearest links last).
  2. Synapse to same neuron.
  3. Neurons themselves.
  4. Selection ring.

Describe alternatives you've considered
Zooming in further will give me a clickable solution even now, but the above works much nicer and looks cleaner. The human mind does not need the last few pixels of the synapse link to know where it is connected to.

Additional context
Current view:
IMG_20210413_070501
New View:
alternative

Enable the Brain Simulator to perform classic learning algorithms.

Is your feature request related to a problem? Please describe.
No problem

Describe the solution you'd like
Allow the Brain Simulator to perform classic learning algorithms.

Describe alternatives you've considered
Add a Neuron model which converts incoming spikes to an analog rate.
Add a perceptron neuron model
Add a Module which performs backpropagation.

Additional context
This would address the most common question about the Brain Simulator but it is a different direction.

Show Synapses and All Synapses is indeterminate when creating new network.

Describe the bug
When a new network is created the All Synapses checkbox remains as it is, but the network is drawn in an indeterminate state where show synapses is concerned.

Application: Brain Simulator

Module/Network: new network

To Reproduce
Steps to reproduce the behavior:

  1. Open any network.
  2. Check the All Synapses checkbox.
  3. Select New Network.
  4. Check random synapses and click OK.
  5. Notice All Synapses checkbox active, and notice the pattern.
  6. Uncheck the All Synapses checkbox and notice pattern does not change (some neurons show synapses).
  7. Check the All Synapses checkbox and notice pattern becomes more crowded (now all synapses show).
  8. Select the entire field, and edit show synapses in the Neuron popup menu (maybe twice, to uncheck it).
  9. Now field is clear, and this should be a valid start state.

Expected behavior
I would expect to get a new network, with random synapses and "Show Synapses" for all neurons set to false, and the shown state according to "All Synapses" (On or off I don't care, as long as it is consistent).

Screenshots
If applicable, add screenshots to help explain your problem.
Immediately after new, when "All Synapses" was set:
IMG_20210414_210653

After "All Synapses Cleared", some neurons still show synapses:
IMG_20210414_210719

After "All Synapses" set again, pattern definitely changed, more busy:
IMG_20210414_210730

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 2021-04-14 master

Add any other context about the problem here.

Zoom display problem

On neuron arrays >450 neurons, using the mouse wheel does not dynamically zoom the display until a complete repaint. The "target neuron" disk zooms properly but the rest of the display does not.

Clicking on any context menu outside of a specific control cancels the context menu

Describe the bug
Clicking outside a specific control on a context menu closes the context menu and loses changes

BrainSim

To Reproduce
Steps to reproduce the behavior:

  1. Right-click a neuron
  2. On the context menu, click to the left of the ID
  3. The context menu closes

Expected behavior
The context menu should remain open

  • OS: Win10
  • Version [v0.9b]

Add any other context about the problem here.

Read Hebbian lookup tables from a file

Is your feature request related to a problem? Please describe.
The only way to experiment with different Hebbian models is to modify the source code in NeuronBase.cpp

Describe the solution you'd like
These could be read from a file which could be edited with notepad.
OR, there could be a UI and the content of the models could be stored in the network file

Paste Here sometimes crashes the Brain Simulator program

Describe the bug
Although Move Here does not show this behaviour, Copy Here CAN crash the Brain Simulator in some cases.

Application: Brain Simulator

Module/Network: BasicNetwork

To Reproduce
Steps to reproduce the behavior:

  1. Open the BasicNetwork.
  2. Select the network in the first image below and click Copy.
  3. Select the neuron in the free area so the paste would fit.
  4. Click Paste Here, network gets pasted. (=OK)
  5. Select the network in the second image below and click Copy.
  6. Select the neuron in the free area so the paste would fit.
  7. Click Paste Here, Brain Simulator crashes without warning.

Expected behavior
Obviously crashing is out of the question, but I would be content if a message said WHY the copy is not allowed.
Or better yet, fix the problem so the copy does succeed.

Screenshots
Network that does copy ok:
IMG_20210414_070323

Network that crashes the program:
IMG_20210414_070042

Event Viewer info on the problem:
event viewer output.txt

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 2021-04-13 master

Add any other context about the problem here.

Various delays of 1 and 0 do the same thing

Describe the bug
Axon delays, refractory periods, random firing, etc. can be set to 0 k\or 1 which do the same thing. Higher values work as expected.

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
BRAIN SIMULATOR

Module/Network: (if your network, please attach XML file)
ALL

To Reproduce
Set always-fire neuron delay to 0, change it to 1, note no change

Expected behavior
Either 0 values should be prohibited, or a value of 1 should have the effect of 2.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS:
  • Version [v0.9a]

Add any other context about the problem here.

Reloading CameraTest will give an error and leave the network in a non-workable state.

Describe the bug
Reloading CameraTest either through File => Open or File => Library will generate an error every time.

Application: Brain Simulator

Module/Network: CameraTest

To Reproduce
Steps to reproduce the behavior:

  1. Open Network CameraTest either through File => Open or File => Library or File => Recent Files.
  2. Try the same action a second time.
  3. Notice Graph Builder error presented.
  4. Brainsimulator II will leave camera window empty.
  5. Restart of the program is required to clear this error!

Expected behavior
The CameraTest network should open without error messages, no matter what network has been opened before.

Screenshots
If applicable, add screenshots to help explain your problem.
IMG_20210412_185203

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version v1.0

Add any other context about the problem here.

Context menu on a selection does not appear without a repaint

Describe the bug
The second time you try to open the context menu on a selection, it does not display unless there was an intervening screen refresh

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest

Module/Network: (if your network, please attach XML file)

To Reproduce
Steps to reproduce the behavior:
select a group of neurons
Right-click the selection to show context menu
Select reset hebbian weights (context menu closess)
Right-click again to open context menu, it does not show

Expected behavior
The context menu should display should show

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS:
  • Version [v0.9a]

Add any other context about the problem here.

Occasional exception of file save

Describe the bug
The exception is handled and creates a non-useful user message and is related to saving Modules in the xml file. The exception message is at the end of this post.

This must be related to moving the xml save to a background thread. Perhaps there is interference with the UI trying to update the display during the save.

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulatro

Module/Network: (if your network, please attach XML file)

To Reproduce
Steps to reproduce the behavior:

  1. Add module to Network
  2. Save the file
  3. Error is occasional

Expected behavior
No Error

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS:
  • Version [v0.9a]

System.InvalidOperationException
HResult=0x80131509
Message=The calling thread cannot access this object because a different thread owns it.
Source=WindowsBase
StackTrace:
at System.Windows.Threading.Dispatcher.VerifyAccess()
at System.Windows.DependencyObject.GetValue(DependencyProperty dp)
at BrainSimulator.ModuleView.get_AreaNumber() in C:\Users\c_sim\Documents\Visual Studio 2015\Projects\BrainSimulator\BrainSimulator\ModuleViewMenu.cs:line 19
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write59_ModuleView(String n, String ns, ModuleView o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write60_NeuronArray(String n, String ns, NeuronArray o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterNeuronArray.Write61_NeuronArray(Object o)

This exception was originally thrown at this call stack:
[External Code]
BrainSimulator.ModuleView.AreaNumber.get() in ModuleViewMenu.cs
[External Code]

Increasing usefullness of Spiking History Window

Is your feature request related to a problem? Please describe.
The Spiking History window appears to have a scrollbar, but it is non-functional.
As a results the timeline fills the window until it is a big black mess without any detail.
Clearing the window then kills ALL history, and you have to start from scratch.
In addition there is the double close button, where the one on the window title bar only closes it, and the one in the window sets all view firing history channels to off.

Describe the solution you'd like

  1. I'd like the Spiking History shown to compress no further than 1 cycle per 4 pixels, so spikes remain visible.
  2. After that, just show the end of the timeline, and if possible keep further history up to a certain maximum stored off-screen.
  3. Scroll bar should show the ration of shown to stored timeline, and remain on the right side.
  4. If the scroll bar is moved, show the relevant portion of the timeline in the window as the scrollbar is moving.
  5. If needed, add a button to go back to the trailing end of the graph.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Network speed 10 hangs neuron engine when firing history is on.

Describe the bug
The combination of neuron engine speed 10 and firing history on hangs the engine.

Application: Brain Simulator, Neuron Engine

Module/Network: N/A

To Reproduce
Steps to reproduce the behavior:

  1. on a new network, set network speed to 5.
  2. right click a neuron, set it to random, charge 1, mean 5, std dev 5.
  3. check show firing history and press enter.
  4. notice engine running, then move speed control to 10.
  5. notice firing history freezes, as does neuron engine.
  6. ending brain simulator is now ONLY POSSIBLE by killing it from the task manager.

Expected behavior
Firing history is useless at speed 10 anyway, so it is best to deactivate it when speed is cranked up to ten, and the checkbox for it disabled if speed is already at ten.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

Changing neuron type doesn't always update context menu properly

Describe the bug
Changing neuron type doesn't always update context menu properly

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
BrainSim UI
'
Expected behavior
When you change the neuron type, the appropriate parameters should immediately show in the context menu.

To Reproduce:
Create a selection of unused neurons.
Right-click one and select LIF from the mode dropdown
All the neurons in the selection are changed to LIF model as expected BUT the context menu doesn't include the leak rate or axon delay.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS:
  • Version [v0.9a]

Add any other context about the problem here.

Add Linux Version

There is presently a version of the Neuron Engine which runs under Linux. It is in a separate project HERE: https://github.com/Moorelife/AGILE_ONE

Better academic distribution if the entire system ran under Linux as well.

This might be possible under xamarin development

Add neuron type choice to new network dialog.

Is your feature request related to a problem? Please describe.
I understand "New Network" may have predated the possibility of various types of neurons in the development of BrainSim II, but think that the "New Network" dialog should have settings to select the type of neurons that are to be created in the new network, or this change should be doable for a selection of neurons and their connected synapses.

Describe the solution you'd like
I'd like to be able to tell the new network what type of neurons and synapses it needs to use in creation of the new network.

Describe alternatives you've considered
Two solutions spring to mind:

  1. Extra settings for neuron model and synapse model in the new network dialog.
  2. Possibility to change neuron model and synapse model for a selected set of neurons and their synapses.

Additional context
Add any other context or screenshots about the feature request here.

Neuron Left Mouse button action is counter-intuitive

Is your feature request related to a problem? Please describe.
The single left mouse click on a neuron apparently toggles it to "always fire" or "never fire", as can be clearly seen in example " Fractional Synapse is frequency divider". However, in example "Synapse of weight 1 causes next neuron to fire" this fails to work properly because hitting the neuron just as it is supposed to fire is extremely difficult!

Describe the solution you'd like
I'd like to be able to deactivate firing of a firing neuron to also work in the latter case, so it is possible to "reset" firing neurons which have inputs also.

Describe alternatives you've considered
Possibilities to achieve this in my opinion are:

  1. if a neuron is clicked, and it has the off state, mark it as "toggled".
    • If it wants to fire within a certain time it should be set to "off".
    • If the timeout expires without a fire action, it should be set to "on".
  2. if a neuron has reached the firing state, and it is left clicked before the next cycle, reset the firing state.

Additional context
No additional info needed I think.

Mouse Cursor should always have a visible representation.

Describe the bug
When the mouse cursor is on the grey background outside a module, and not on neurons, synapses or modules, it is not shown. This makes it difficult to locate in that case, which makes selecting a set of neurons cumbersome.

It has been determined that this is a bug specific to my machine, so it is very low priority!!!

Application: Brain Simulator

Module/Network: All

To Reproduce
Steps to reproduce the behavior:

  1. start new network.
  2. move mouse outside any of the blue neurons.
  3. notice the mouse is not visible.
  4. In order to locate the mouse, you have to move it first.

Expected behavior
I expect the mouse to always have a visible form, even if there is no possibility for selection or a sensible mouse action.

Screenshots
If applicable, add screenshots to help explain your problem.
IMG_20210413_083914

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

Quick open of BrainSim II XML files via "Open With"

Is your feature request related to a problem? Please describe.
Because of the experimental nature of the BrainSim II program, and its use of XML files to store networks, a more speedy way to open them could be via the "Open With" in the right-click menu of Windows Explorer.

Describe the solution you'd like
Obviously you wouldn't want to open all XML file with the BrainSim II program of course, so one might consider the following:

  1. Give BrainSim II XML files their own distinct extension (like B2XML), but keep the XML format of the files.
  2. This allows for "Open With" to be set for the Brain Simulator II program so double-clicking a B2XML file opens it.
  3. When the installer issue is fixed, this file association can be set as default.
  4. The right-click menu can then still be used to op the B2XML files in say Notepad++.

Describe alternatives you've considered
Currently I can try to open the XML file with BrainSim II, but the file is never loaded...

Additional context
Add any other context or screenshots about the feature request here.

Allow expansion of network and expandable modules

Currently, modules are fixed-size arrays of neurons and the complete neuron array is fixed size. This is problematic for the Universal Knowledge Store and perhaps other modules whose size cannot be determined when the network is created.

A minor change will allow the neuron array to be expanded in width. A similar minor change would allow for modules which have no other modules to the right of them to be expanded in width.

Expanding in height or moving modules would require more effort but may be considered.

Camera Module crashes if there is no camera

Describe the bug
The "No camera found" is displayed on every engine cycle
A camera selection dropdown should display

To Reproduce
See the title

Expected behavior
A clear and concise description of what you expected to happen.

Desktop (please complete the following information):

  • OS: Windows 10
  • Version 0.9

Add a Hebbian basic Network

Is your feature request related to a problem? Please describe.
The way Hebbian synapse models work is not very clear

Describe the solution you'd like
Add a Hebbian demonstration network which shows how the various models compare.

File => Properties setting change is not persisted.

Describe the bug
Setting columns if File => Properties does not work as designed and mentioned in the CameraTest network description.

Application: Brain Simulator

Module/Network: CameraTest

To Reproduce
Steps to reproduce the behavior:

  1. Open File => Library => CameraTest network.
  2. Open File => Properties as is suggested in the network description and set columns to 200.
  3. Reopen File =>Properties and notice columns is still 100.
  4. As a result, the second step (setting width and height) gives an error.

Expected behavior
I expect the program to actually set the columns to 200.

Screenshots
If applicable, add screenshots to help explain your problem.
IMG_20210412_184728

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

Setting neuron charge within context menu does not take effect until next engine cycle

Describe the bug
Setting neuron charge within context menu does not take effect until next engine cycle

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulator UI

To Reproduce
Steps to reproduce the behavior:

  1. Pause the engine
  2. Use neuron context menu to set neuron charge
  3. Note neuron charge does not change
  4. Single-step the engine
  5. Note that neuron charge changes

Expected behavior
Neuron charge should change when requested

Make dialogs have both OK and Cancel buttons

Is your feature request related to a problem? Please describe.
My frustration here is that the popup dialogs for neurons, synapses, network and file =>properties (and possibly more) have no clear submit/cancel point. I need to click outside the dialogs to exit them, which is counter-intuitive.

Describe the solution you'd like
Most programs in the Windows GUI have OK and Cancel buttons, which make it possible to either end a dialog with or without making changes to the settings in the dialog.

Describe alternatives you've considered
I don't really see a clear alternative, but the Microsoft development environment should have adequate functionality to implement this.

Additional context
Add any other context or screenshots about the feature request here.

When doing "Paste Here" links to nodes outside selection are "miss-laid"

Describe the bug
It appears that if labels for neurons are non-unique, the Copy / Paste Here process goes wrong:

Application: Brain Simulator

Module/Network: BasicNetwork

To Reproduce
Steps to reproduce the behavior:

  1. Open BasicNetwork
  2. Select the part in
    IMG_20210414_095506
  3. Select a new destination in the free area bottom-right.
  4. Click Paste Here, this shows as
    IMG_20210414_095538
  5. Notice how the links now attach to the first occurrence of the labels, which are in the other network.
  6. Notice also that not all synapses coming out of the selection are kept intact: some remain, while others are left out!

When the labels for the outputs of the selected network part are made unique, the error does not occur.

Expected behavior
Linkage should be looked up on ID, not label. Copy / Move Here does this correctly.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 2021-04-13 master

Add any other context about the problem here.

SpeechTest network only allows for speech recognition once.

Describe the bug
When using the SpeechTest network, clicking output and input neurons seems to work fine, but saying "Computer, 1, 2, 3" or any other computer command only works ONCE.

Application: Brain Simulator

Module/Network: SpeechTest

To Reproduce
Steps to reproduce the behavior:

  1. Open SpeechTest network.
  2. Connect a microphone.
  3. Click an output neuron, this speaks the number.
  4. Click an input neuron, this also speaks the number.
  5. Dictate "Computer, one, two, three" (or any other sequence).
  6. This is spoken as recognized.
  7. Dictate "Computer, one, two, three", this is no longer spoken.

Expected behavior
I would expect the SpeechTest network to react to any phrase starting with computer (after some seconds of silence) by saying what is dictated.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Winodws 10 Pro 20H2
  • Version 2021-04-13 master

Add any other context about the problem here.

Installer

Create an installer to replace the .zip file distribution.

Changing the charge of a neuron in a selection should change all

Describe the bug
Changing the charge of a neuron in a selection should change the charge of all the neurons in the selection (the way changing the model does) but it does not

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain Simulator User Inte3rface

Allow writing modules in Python

A general C# module could assemble parameters from neurons, pass them to a python script and place the python output back into neurons.

Reset / Delete could be more useful, if it resets neuron charges.

Is your feature request related to a problem? Please describe.
In experimenting with BrainSim II I have found no easy way to remove transient information like neuron charges from a network. Reset does not seem to do this, and clicking delete on a selected set of neurons removes all synapses, which is also frustrating.

Describe the solution you'd like
I would like a clean and simple way to remove all neuron charges from a selected set of neurons, either through reset or through another mechanism.

Describe alternatives you've considered
Various possible alternatives spring to mind:

  1. Clearly define what "RESET" does when clicked in the neuron engine control bar. Right now it seems to do little...
  2. Add a simple dialog to the DELETE key action on a set of neurons. Give a number of delete options before OK button:
    • Clear charges, leave synapses and neurons intact.
    • Clear synapses, leave neurons intact.
    • Clear all, both synapses and neurons.

Additional context
The last options seems preferable, since it avoids a possible disastrous delete of a huge network, and it clearly states what the delete will do.

BabyTalk neuron in Babytalk network does not function

Describe the bug
When testing the Babytalk network, I ran into two distinct problems, which I will enter as

Application: Brain Simulator

Module/Network: BabyTalk

To Reproduce
Steps to reproduce the behavior:

  1. Open the babytalk network
  2. Do as the notes say, and click the babytalk neuron several times
  3. Notice there is no sound.
  4. Babytalk neuron connects to SayRnd neuron
  5. SayRnd neuron links to nothing....

Expected behavior
I expect the babytalk neuron to act as the network notes say.

Screenshots
If applicable, add screenshots to help explain your problem. But it seems the initial network does not have anything connected to the SayRnd neuron

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 2021-04-13 master

Add any other context about the problem here.

Please add dragging of selection to minimize actions for move.

Is your feature request related to a problem? Please describe.
Being somewhat of a power-user, it vexes me to have to perform the following action in order to move (part of) a network:

  1. select an area.
  2. right-click the area.
  3. select Copy from the menu.
  4. right-click the destination top-left destination neuron.
  5. select Move Here from the menu.

Describe the solution you'd like
These five steps could be simplified as follows:

  1. select an area.
  2. move the mouse over it, cursor becomes grabbing hand.
  3. drag the selection to its new location.

Describe alternatives you've considered
This can be done in several ways:

  • show only the rectangle as it is dragged.
  • show the rectangle and its links to other neurons outside the selection.
  • if dragged with left mouse button, consider it always a move.
  • if dragged with right mouse button, show a popup menu before drop so user can choose to move or copy.
  • the menu can also have options to copy 'attached', or copy 'detached' with regard to the original network.
  • selection should of course move too, so what was selected is now selected in the target position.

Additional context
Add any other context or screenshots about the feature request here.

There is no input validation on the weight field

Describe the bug
Even though the documentation mentions weights should be in the range 0 to 1 or -1 to 1, the field in the dialog itself allows

Application: Brain Simulator

Module/Network: N/A

To Reproduce
Steps to reproduce the behavior:

  1. Right click on any synapse, and fill in various values for the weight field.
  2. Notice how any value (even letters) can be filled in.
  3. Behavior then is undefined.

Expected behavior
If the synapse weight has a value range, no values outside the range should be able to be entered.
I know this is a nice to have that is in the range "then don't do that!", but it is a simple fix.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 2021-04-13 master

Add any other context about the problem here.

Select All in edit fields when they get focus

Describe the bug
Please consider the fact that users most often type new values into a field when it gets the focus, if they change it at all.
Selecting the entire contents upon gaining focus, the user can just type the new value as desired.
This is specifically useful for the weights for instance, where changing a value now requires the user to either backspace or select the contents before entering the actual new value. The combobox can be made such that it is also possible to fill in the value manually.

Application: Brain Simulator

Module/Network: N/A

To Reproduce
Steps to reproduce the behavior:

  1. Go to any dialog that has entry fields.
  2. Notice cursor is shown after the value, rather than as a 'selected value'
  3. User now needs to either backspace or select the value....
  4. Before entering a new one.

Expected behavior
This can be solved in general for all text fields, by simply selecting the contents of the field.
For the weight field, it would be nice to make it an editable dropdown combobox, rather than having the values in the dialog itself.

Screenshots
If applicable, add screenshots to help explain your problem.
Old dialog:
old_dialog
New dialog:
new_dialog

Desktop (please complete the following information):

  • OS: Winodws 10 Pro 20H2
  • Version master 2021-04-13

Add any other context about the problem here.

Properties Dialog

Needs complete revamp along with the ability to change the size of the neuron array

Please add Redo to the Undo mechanism

Is your feature request related to a problem? Please describe.
Ctrl-Z works fine to undo changes you inadvertently made, but usually programs also implement Ctrl-Y as redo.
Doing so would make it easier to wind back multiple steps, since if you overshoot with Ctrl-Z, you can correct it with Ctrl-Y.

Describe the solution you'd like
Solution above seems ample description

Describe alternatives you've considered
No real alternatives.

Additional context
Add any other context or screenshots about the feature request here.

BrainSimulator Windows 10

This software is a great effort to bring AGI to all of us. Thanks.

I'm trying to use binary files then a get this error:

System.Windows.Markup.XamlParseException: The type initializer for 'BrainSimulator.MainWindow' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'NeuronEngineWrapper.dll' or one of its dependencies. The specified module could not be found. at BrainSimulator.MainWindow..cctor() --- End of inner exception stack trace --- at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri) at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri) at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream) at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc) at System.Windows.Application.DoStartup() at System.Windows.Application.<.ctor>b__1_0(Object unused) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at BrainSimulator.App.Main()

How can I use the software?

Off by one bug in firing sequence.

Describe the bug
There is an off-by-one bug in the neuron engine or the brain simulator, where the firing from one column to the next is concerned.

Application: Brain Simulator, Neuron Engine

Module/Network: ZIP file of XML file added, because XML is not allowed by Github.
off_by_one.zip

To Reproduce
Steps to reproduce the behavior:

  1. open the attached off_by_one.xml file.
  2. notice it links one row and one column to the top-left neuron (all with 1.0 weights).
  3. Click the top-left neuron to make it fire continuously.
  4. Notice the downward line completes, but the left-right line misses the last firing.

Expected behavior
I expect even the last column to properly be reached.

Screenshots
If applicable, add screenshots to help explain your problem.
IMG_20210412_204716

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

Delete Synapse from the synapse dialog no longer works.

Describe the bug
The new 2021-04-15 master no longer deletes synapses when asked to do so with the Delete option in the Synapse Dialog.

Application: Brain Simulator

Module/Network: N/A

To Reproduce
Steps to reproduce the behavior:

  1. Start an empty network.
  2. Draw a synapse from one neuron to another.
  3. Right-Click the synapse.
  4. Click Delete.
  5. Notice synapse disappear for a split second, then be redrawn.
  6. Push Ctrl-Z twice.
  7. Notice Synapse does disappear in this case.

Expected behavior
I expect the Delete to work and remove the synapse, like it did in the past.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro master
  • Version: 2021-04-15 master

Add any other context about the problem here.

No sound in BabyTalk network

Describe the bug
Initially I once got the male voice saying "Mommy" and Sallie repeating it.
However, later retries failed to produce sound, and I could not get back to a talking network, even after the steps below
Application: Brain Simulator

Module/Network: BabyTalk

To Reproduce
Steps to reproduce the behavior:

  1. Remove C:\Users{username}\Local\FutureAI.
  2. Restart the PC.
  3. Unpack the BrainSimLatest.zip again in a clean folder.
  4. Start Brain Simulator, and load BabyTalk.
  5. Try typing Mommy in the speech window.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

"Reset Habbian Weights" cannot be undone

Describe the bug
After performing "reset hebbian weights", ctrl-z and undo commands do not restore weights

Application: Brain Simulator, Neuron Engine, Neuron Server, CppEngineTest, CsEngineTest
Brain simulator UI

Module/Network: (if your network, please attach XML file)
All

Clearer indication of examples in network simplifies the descriptions.

Is your feature request related to a problem? Please describe.
The network notes of for instance BasicNeurons and HebbianSynapses is too wordy and imprecise, it would be simpler to indicate them with numbers.

Describe the solution you'd like
Rather than just a text string naming the various examples, start the text string with a number, so you can refer to it by that number. This makes the network notes far more readable.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
See the attached screenshot where I've made the changes to two of the examples in BasicNeurons. The network notes might then be written as

This network shows the basic Integrate and Fire (IF) and Leaky Integrate and Fire (LIF) neuron models.
Example #1: shows how neurons connected with weight 1 can construct loops and delay lines. Each cycle in the neuron engine will push the firing charge one neuron further.
Example #2: the three neurons form a frequency divider. The left-most is set to always fire. It is connected to the center neuron with a synapse of weight 0.25. You can see the color change as it accumulates charge. When it reaches its threshold, it will fire and cause the right-most neuron to fire once every fourth cycle.

Additional context
Add any other context or screenshots about the feature request here.
IMG_20210412_214118

Use servers in New Network detects no servers.

Describe the bug
Brain Simulator does not see any servers in new network dialog.

Application: Brain Simulator, Neuron Server

Module/Network: N/A

To Reproduce
Steps to reproduce the behavior:

  1. Take two computers on the same local network.
  2. Start a server on system #1.
  3. Start the brain simulator on system #2.
  4. Choose New Network.
  5. Check 'Use Servers'.
  6. Notice 'no servers detected'.
  7. When done with only one computer, the results are the same.

Expected behavior
If a neuron server is running on a local network, it should be visible in the use servers list when 'use servers' is checked.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10 Pro 20H2
  • Version 1.0

Add any other context about the problem here.

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.