Scripting
To produce custom simulations or behaviors not possible using the Simbrain GUI, you can create custom scripts.
Note: As of Simbrain 3.03 a new simulation framework was added. Using this framework, simulations can be developed directly in the code, which offers many benefits, including much easier error checking, code completion, etc. Simulations developed in this way are visible above the divider in the simulations menu. Usage of these simulations is still new and not documented, but you can look at the examples in src.org.simbrain.custom_sims
, and see in particular the RegisteredSimulation.java
class.
Basics
All scripts are currently beanshell scripts (there is nothing to prevent other scripting languages, but none have been implemented yet). These are basically small java programs that interact with the Simbrain workspace. Any java library can be used, as can the whole Simbrain API. This allows for a great deal of flexibility.
Uses of Scripts
Some examples of things you can do using scripts are:
- Building a highly customized simulation.
- Create a custom button panel that allows users to produce special behaviors.
- Modifying an existing component, e.g. a network, in some special way.
- Logging data.
- Loading a neuron with a custom update function.
- Using an external library. The script called "GeneticAlgorithmScriptingDemo.bsh" gives an example of this.
The best way to get a feel for scripting is to have a look at a few scripts. Try opening a few in the scriptmenu directory, and running them. Try modifying them in simple ways (e.g. modifying the paramters at the top) and re-running them.
Also note that there are many basic things you'll need to do in a script that have most likely already been done in some script or another. So you can treat the script directory as a kind of repository of basic actions that you can combine together to get started with the behavior you want.
Scripting is closely related to custom updating in Simbrain. Custom update methods for the workspace or for components introduce custom update actions that are written using this same Beanshell scripting framework. See workspace update and network update.
Ways to Invoke a Script
To get started, create a new text file with a text editor, save it as a .bsh file, and then run the script from Simbrain. There are a few ways to do this:
Network: .bsh files in {SimbrainHome}/scripts/network automatically appear in the Scriptsmenu of Simbrain network components Use this directory to create custom actions that can be applied to a current network (e.g., methods of adding neurons, modifying neurons or synapses, etc.) The two objects available here are " network" and " networkPanel." These give access to the current Network and its gui representation.
Console: .bsh files in {SimbrainHome}/scripts/console are available from the Simbrain console or terminal components. The console can be useful to quickly test or debug Simbrain. For a sense of some things you can do in the console enter "help(); or "tips();". The console is similar to a UNIX or DOS terminal window. You can navigate around the file system using commands like "cd(); To run a script from the console, using the source command, e.g. source("sparseNetwork.bsh");