Simbrain 3 Alpha Release

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Simbrain 3 Alpha Release

jyoshimi
Administrator
All,

I have (finally!) released a first alpha version of Simbrain 3.   It is mostly functional, and serves to illustrate the overall design.  However, there are still numerous minor bugs and unimplemented features, and two major pieces of work have yet to be completed (though work has begun in each case):

- Supervised learning has to be implemented
- The overarching "coupling" framework needs to be refactored one more time

Also, the documentation has hardly been touched.  If you want to know how something works, ask me and I'll answer your question either here or on the wiki, and then fold the answer in to the docs (i.e., your questions will help!)

This release has not been tested on linux.

Please do send me bug reports and feature requests, etc.  Or, use the issue tracker (now that I have put up a release I may finally start using that thing).

And please help!  Many of the bugs and issues at this point are pretty easy.

No guarantees on how fast things will happen; this is a busy time for me.   But I do hope to transition to a beta release and then an actual release within the next year.

Best,

- Jeff
Reply | Threaded
Open this post in threaded view
|

Simbrain 3 Alpha Release

Ronaldo Bandeira
Hi Jeff

I´m a brazilian electronic engineer.

I already knew a little about the Simbrain 2, and just now I began to explore the Simbrain 3 Alpha Release.

I wonder if this new release of Simbrain is able to read and write data on ports COM1, COM2, USB etc, and if so how could I do this.

I´m anxious waiting for its documentation.

Thanks,

Ronaldo Bandeira
Reply | Threaded
Open this post in threaded view
|

Re: Simbrain 3 Alpha Release

jyoshimi
Administrator
Hi Ronaldo,

I'm glad you asked about this.    There are currently two ways this can be done, both of which require you to get the latest source (rather than using the downloadable alpha-1 release).  

1.  Create a custom update script.

The new version of simbrain allows you to customize the way the workspace is updated.   This is done by running a script which installs a custom "updater".    I have added an example which shows how this is done in  /scripts/scriptmenu/ .  You can access it from the script menu in the simbrain desktop; it's called  "customUpdateExample.bsh".  When you run the script a network is created.  If you then press the step button, you will notice that the network's synapses are randomized every time the workspace is updated.   I did this by adding a single customization (a call to Network.randomizeSynapses()) to normal updating.  If you open the script (in the /scripts/scriptmenu/ directory) the call happens on line 45 (in the current revision, r 2207)

Now, in that script you can add code to read from ports, USB, etc, and use that to activate neurons, or conversely to  take the activation of a neuron and use it to write to some external device.   In this way you could, for example, use simbrain to control a lego robot.

By the way, the .bsh file is a beanshell script, which is basically a java file, with one big block that gets executed when you call the script.   You can add (just about) any java code you like into one of these files.

All of this assumes you know how to (a) make calls to the neural network API (which I have not fully documented) (b)  have some way of doing your COM / USB read / writes in java.   I've never done this but a quick google of "java usb" and "java comport" suggests it's not too hard.

2. Use Simbrain as a standalone library

You can also just use Simbrain as a library in a separate java program that does your reads and writes.   To build the java library you can run

> ant networkjar

or

> ant networkguijar

from the Simbrain directory obtained via svn.  

However, this is yet something else I have not begun to document.    To get a feel for how to use the api, though, just try opening up different scripts in the scriptmenu directory.

3. Other / Future

It may eventually be nice to have some GUI way of connecting to ports and stuff in a future release, especially if a lot of people use this.  

I'm sure this doesn't answer all questions but hopefully it's a start.  Let me know if you'd like me to elaborate on any of this.

- Jeff
Reply | Threaded
Open this post in threaded view
|

3.0alpha in the classroom

Alex Holcombe
In reply to this post by jyoshimi
This is great, Jeff.
In case others can benefit, I should mention I have used 3.0alpha with success in the classroom and describe the activity and materials here: http://www.psych.usyd.edu.au/staff/alexh/teaching/neuralNets/
Reply | Threaded
Open this post in threaded view
|

Re: 3.0alpha in the classroom

jgregoric
Hi Alex,

I'd love to see the training materials you posted, but it appears they are no longer available - the address
http://www.psych.usyd.edu.au/staff/alexh/teaching/neuralNets/ 
generates a 404-Not Found error.   Would you please repost the material?  

Best Regards,
Jim Gregoric
Children's Hospital Boston
Reply | Threaded
Open this post in threaded view
|

Re: Simbrain 3 Alpha Release

jgregoric
In reply to this post by jyoshimi
Hi Jeff,

I'd really like to use Simbrain for personal educational purposes, as well as bringing interested friends up to speed.  However, I'm having a hard time with the documentation.  I'd like to help improve the documentation - I'm pretty good at writing clear, comprehensive instructions and can provide drafts for your approval if you like.  

Would you please describe the current state of development?  It appears there haven't been any posts on this forum for over a year. Is there any ongoing development (as of March 2012)?  Is there another forum for Simbrain?

Best Regards,
Jim Gregoric
Children's Hospital Boston
Reply | Threaded
Open this post in threaded view
|

Re: Simbrain 3 Alpha Release

jyoshimi
Administrator
Hi Jim,

Here is a page with some links that are still active and that give some of the background

http://simbrain.net/Conferences/ICOPE_talk.pdf

- Jeff