| home | user guide | examples | reference | changelog | resources |
| June 22 2003 | Version 2.104 |
New test package in Catacomb, including a path linearlzer tester with a demonstration model under the top level test menu as "pathtest".
Various bugs fixed with discrete stepper et al (see mantis on axiope.org/catacomb)
| May 15 2003 | Version 2.101 |
New DiscreteStepper component for moving animats around along restricted directions.
New set of compoinents for reading, writing and viewing files. They include new basic objects for two and three dimensional tables of data, and components for slicing these tables.
| Apr 23 2003 | Version 2.099 |
Attachment (observation) port removed from center of spike projections.
New family of interfaces for object connections including StateSource and DeltaStateSource for recording internal evolution of stated components. This is specifically for recording synaptic weights, but should generalise to many other cases.
| Apr 5 2003 | Version 2.098 |
Insertion mechanism overhauled. The Insertable and InsertionPoint interfaces have been extended to make it possible to cascade insertion steps (at present just for multiple insertion switches) but the insertion switch still doesn't support this properly. In the meantime, the insertion switch has more output ports as a substitute for cascading.
History mechanism for reopening files seems to be working OK. It uses a .ccws directory in the users home directory, and puts a file history.xml in there. This is just an XML serialization of the env/History object.
| Apr 3 2003 | Version 2.097 |
New parameter in spatial location objects to allow inputs to be specified in degrees or radians (before, inputs were assumed to be in radians).
Various new components for tracking and logging text with a new "record" package for recorders of various sorts. These are still under construction but should eventuallyallow movie-like playthrough of recorded activity.
First pass at a "reopen" function to keep track of recently accessed files - untested and probably broken.
| Mar 17 2003 | Version 2.096 |
Bug fix: initialization sequence of ProximityActors was indeterminate with the result that they sometimes returned a vector of targets that grew longer after the first step leading to an array bounds exception. Now there is an intermadiate pase for the initialization of Located items once they have been assembled byut before any data moves around.
Bug fix: missiong interface declaration for the VectorSwitchState as a SpikeTarget now corrected.
New components: initial pass at restructuring the specie, compound, solution hierarchy via the workbench instead of as quantified lists. Seems to work OK, and is rather more intuitive than before. Still needs quite a few Toucan components for it to do much, and it needs connecting to the channel models.
New subclass of SimpleDrawing fro including text in drawings.
| Mar 08 2003 | Version 2.095 |
New subcellular components: SynapseType, TypedSynapsePopulation, and associated computation classes. The behavior extends that of the SynapsePopulation to include depression in response to only pre- or only post- synaptic spikes. That is, depression that is not dependent on relative pre and post spike timing. There is also an option for the weights in population to be normalized.
Gui: some rewriting of the field panel so it lays out items in columns first, then rows. For example, the SynapseType object is laid out with two dolumns and the order of fields now goes down the first then down the second, instead of across in rows. This is most important for contingent fields where the contingency is rather uncear with the standard row-first layout.
| Mar 01 2003 | Version 2.094 |
Major refactoring and rewriting of map and projection classes (CoCoMac) implementing the normal Catacomb/Toucan separation between description and execution. There is a new "charging" process as part of the assembly compilation, where slow initialization can take place - in this case, database access. New Toucan Region, Map, Projection, CoCoMacReader and ServerAccessor objects with catacomb equivalents. Still to do - db access and rendering of projections.
The point of this refactor is first to allow composing more complex configurations with multiple maps and projection queries; Secondly to get it in a more modular for for future development; and thirdly to pave the way for integration of cocomac results with other models.
| Feb 06 2003 | Version 2.093 |
Experimental modification to receiving and transmitting behavior in the connection router (toucan.network) so the SpikeProjection behaves correctly. But, ***I'm not sure the current behavior is correct***.
| Feb 02 2003 | Version 2.092 |
New output options for data from DisplayLists (eg VectorRecorder output). Firstly, the XFig output now writes most of the possible data types that can be displayed in the window. But it doesn't draw the axes.
For more precise plotting, there is an "export data" option on the DisplayList that exports the contents as a NetCDF file. At present, only the most common data stypes are exported, so not everything in the display will show up in the netcdf file, but at least the lines will for vector recorders. As well as writing a netcdf file, it also writes a snippet of yorick code to show how to reload the file and plot the data in yorick. Matlab is similar, but you need the netcdf toolbox.
| Jan 30 2003 | Version 2.091 |
Importing an object now opens a window to show what has just been imported. the derived devices list is also updated on all open windows.
| Jan 26 2003 | Version 2.090 |
Null pointer bug fixed and better error reporting for table based SpikeProjections in the case that no table is set.
Major refactoring of CoCoMac interface. Currently broken.
Minimal web server and servlet container included. Seems to work OK, but thre are no non-trivial servlets yet except for the built in documentation.
| Jan 20 2003 | Version 2.087 |
New SpikeProjection implementation. This is exactly equivalent to two spike connections with either a relay or a connection router in the middle. If you select 1-1 it puts in a join-divide relay, if you sselect all-all it puts in a join clone relay.
Text IO of connetivity via an "import export" button on the ConnectionTable object. It supports three ascii formats - more details in the on-line docs. XML is there in the menu but isnt supported intheis version.
| Jan 16 2003 | Version 2.086 |
Fixed bug in SpikeAgent that led to outputs being added in the wrong order with possible out of bounds errors for some cases.
| Jan 15 2003 | Version 2.085 |
Document build process is now based on xml and xsl and uses ant rather than make. This should make it easier to keep the documentation up to date, and build different formats (pdf in particular).
2.070 November 14 2002
New spike distribution model.
Previously, a spike carried a single integer index that could
be used to address subelements of a population. Various implicit
mappings went on to make population-population connections behave as
expected, but any information from a sub-population of a population
would get lost.
The new model replaces the spike send/receive architecture by a two
layer system. Individual components register themselves as
SpikeSource or SpikeTargets, but all the spike handling itself is
done by a lower level of system componens (TransmisionAgent,
ReceptionAgent, Multiplexer et al). These keep extended records of
spike routes as an 8byte long integer packed as four shorts, so a
route might be something like (-0-3-1-4-) indicating that it
originated in the 3rd cell of a population that was the first
subpopulation of a larger population, the larger population itself
being the fourth such population in the component in which the spike
is examined.
The low leve architecture is also capable of examining and reporting
all the possible routes to a given point. This is used in the
ConnectionRouter to find all the distinct sources and targets for a
particular route matrix.
In this version there is only a very primitive route matrix editor
allowing matrix elements to be clicked on and off. The inputs and
outputs are just ranked sequentially, irrespective of where they
are in the structure. But since the router now has access to the
full input structure (populations, subpopulations etc) it will also
be possible to set up a more economical, hierarchical route
definition system.
2.055 July 17 2002
New PhaseEstimator component in the logic section
2.055 July 16 2002
more code behind components in the "Run" section,
**** run functionality removed from the Workbench ****
This will give some warnings/errors about discarded values on
loading models, but the only things to be lost will be runtime and
timestep.
But the main effect is that existing models won't run, without a
minor modification.
In the old Workbench, there were the facilities for running a model
included as part of the workbench. This gave you a set of options
and buttons on the left-hand side. The problem with this is that it
is not very flexible - you can run it once, and htat is it.
But, often (eg an optimization, or a sensitivity analysis, or
loading initial conditions, etc etc) you may want to run one part of
a model, then another part, or run one part repeatedlyt as a
sub-step of another part.
So, the ***running is no longer anintegral part of hte workbench***.
Instead it is achieved by including a "FixedStepRunner" from the
"run" set of components in _any_ part of a model. If it is at hte
top level, it applies to everything. If it is in a box, it applies
just to the stuff in that box.
TO MAKE AN OLD MODEL RUN IN THIS VERSION:
1) load the model, ignoring any the warning messages
2) add in a purple "FixedStepRunner" (white circular arrow in the
icon)
3) click the new component to get the running controlls, and then
click "run".
The advantages of this change should become clear when the file
loading, sensitivity analysis and optimization bits are used -
details on this are on their way....
2.052
couple of fixes in the Vector splitter and interpretation of
patterns in signal generators
2.049 May 29
New SpikeConcatenator component which has offsets to specify how
spikes of different index should be concatenated. There is an offset
for each input port, sp spokes of index n on port k get related with
index n + offset[k] from the single output port.
There is also the niverse of this component - a spike splitter which
breakes up the indeces of incomuing spoikes according to the offsets
brtween which they lie, so for index n coming in, it finds the
output port k such that off[k] <= n < off[k+1], then sends a spike
out on port k with index n - off[k];
2.047, May 16 2002
SpikeDelayBuffer for delaying spikes just as the vector delay buffer
Vector output on food dispenser so you can check its state.
Likewise for LightSource and SoundSource
Fixed the copying function in the new XML version. As before, it
serializes an object and then deserializes to get the copy.
Maybe everything could just be clonable - worth a try sometime ***
Changed behavior of objects that cant find reference targets within
their own tree. Now they just ask the system fora list (before, they
used to print a stack trace).
2.041 april 24 2002
new internal image panel for showing images defined as static
int arrays
much of the CcmbReport functionality moved to a ProgressReport
object in org.compneuro
further modifications to XML parser and VectorInstantiator
2.040
Catacomb2 paper submitted with Mike Hasselmo and Randal Koene
lots of major refactoring and various new components.
essentially, all the file and internal data structure
management has been rewritten. Now the main data structures -
CcmbObject, CcmbList, CcmbSelection, and CcmbBox are autonomous:
they can be instantiated and validated without any reference to
static system classes. Why is this important?
1) ease of maintenance
2) parallelisability - models require involve no static classes
3) portability - could use a different system to work on the same
structures
the default file format is now XML, not catacomb's native (Yorick)
format. The available parsers are just too big (1Mb for jdom) or too
awkward (java's built in sax parser) so I wrote one. It takes
the form of an XMLTokenizer which tales a Reader and spits out
XMLTokens on demand, and an XMLReader which recursively calls itself
and uses nextToken() on the tokenizer to reconstruct the model. The
last part is an Instantiator which does something as the tree is
built: so far there is a VectorInstantiator for generic trees, a
ReflectionInstantiator for when the class files are known, and
a CcmbInstantiator which extends the ReflectionInstantiator to add a
few ccmb-specific choices.
There is an XMLAnalyzer component which will check of the parser can
cope with a given file, and tell you the tokens it finds.
Drawing instantiation: This used to take a long time for large
models the first time a model was drawn (the paint method called
getDrawing which makde the drawing hten and there, if necessary).
Now there is a DrawingMaker, which queues the drawing process in a
separate thread, so getdrawing returns immediately with an empty bos
if the drawing is not ready. This may mean that on first loading,
things don't show up for a while, or until there are some reapaints.
2.025 Wed Feb 20 11:37:42 EST 2002
fixed bug in WeightHistory which returned the wrong weight for times
between spikes (was returning weight at time of following spike, not
current weight)
Cleaned up MoviePlayer to make reset button actually reset the
player every time.
Begun java3d components for viewing cell morphology etc.
2.023 15 feb 2002
new parameter in GraphHelper, maxNPoints, controlling the max number
of points that can be plotted in any line. IT defaults to 20000. The
reason for it is that it is rather easy, eg by reducing the timestep
to generate very long arrays which used (java 1.1) and may still to
kill the graphics because yo ucan't interrupt the drawing once it
has started.
new options on the VectorRecorder, recordFromStart to set whether it
is activie initially, and two spike input ports to switch it on and
off respectively during a run. These are described in the
VectorRecorder docs.
Fixed bug in list of network components so it now includes the
SynapseRecorder.
2.022 first version of SynapseRecorder for recording and displaying
connectivity and synaptic weights.
2.010 still Thursday
new DelayBuffer object and corresponding calculations
2.009 Thu Jan 17 14:57:03 CET 2002
new names for some components under org.compneuro
examples page on hierarchical grouping
2.008
capture boxes now ask for a name when creating a compound object
2.005 Tue Jan 15 15:10:28 CET 2002
new SpikeRelay component to help test and visualize projection patterns.