Friday, October 07, 2011

Integrate-and-Fire

I uploaded my slideshow presentation on the Integrate-and-Fire neuron model.

CroftSoft IntFire

CroftSoft IntFire is an interactive animated simulation of a spiking neuron. The Java Swing code is similar to CroftSoft Neuro except that it uses a leaky integrate-and-fire neuron model instead of Hodgkin-Huxley equations.

Tuesday, September 27, 2011

Hodgkin-Huxley

I uploaded my presentation on the Hodgkin-Huxley equations which are used to create computer simulations of biologically realistic neuronal networks.

Monday, September 26, 2011

Taylor Series

I uploaded a slide presentation on the Taylor Series which is frequently used in computer simulation and game programming.

Saturday, September 03, 2011

Poisson Distribution

On page 378 of my book Advanced Java Game Programming, I explained how the probability of an enemy tank firing during a game loop update could be approximated by simply multiplying the firing rate with the reciprocal of the frame rate. As part of my recent computational neuroscience research into how to simulate the firing rate of a spiking neuron, I have acquired a more detailed understanding of the mathematics. Please see my slide presentation on the Poisson Distribution for both the exact formula and justification for the approximation.


Tuesday, March 30, 2010

SloopSoft SkipperFree

I recently co-founded SloopSoft Inc to sell Skipper, the image slideshow viewer that automatically learns as you use it to show only what you like.  An Open Source version, SkipperFree, is online and can be downloaded as a desktop application.  The SkipperFree Java Swing source code is available at SourceForge.net.

Saturday, July 04, 2009

Three Phase Update

I uploaded a new tutorial Concurrent Java Simulations Using Three Phase Update. Here is the abstract:

Computer games and simulations have a main loop which is divided into phases such as user input controller processing, updating model state, and rendering the view. Since the states of multiple simulated objects are determined by their interactions, each object must have the opportunity to access the current state of every other object during the update phase. To ensure that the next states of objects are independent of the order in which they are updated, all of these accesses must occur before the state of any one object mutates into its next state. This can be accomplished by dividing the update into two sub-phases, access and mutate, in which no object can mutate its state until every other object has completed accessing shared state. Beyond update order independence, this has an additional benefit in that this can increase the performance of multi-threaded concurrent applications because synchronization is not required to ensure the integrity of shared state. A further increase in performance for concurrent simulations can be had by the introduction of a third sub-phase, digest, in which processing is performed on data copied during the preceding access sub-phase but modifying shared state is delayed until the following mutate sub-phase. This tutorial demonstrates the use of the three sub-phases pattern, Three Phase Update (TPU), using example code in the Java programming language including classes from the Java concurrency library.




Monday, November 10, 2008

Drools Game of Life Example

I uploaded an export of my slides for my presentation to the Dallas Rules Group on the Drools Game of Life Example.


Tuesday, November 04, 2008

CroftSoft Life

I uploaded CroftSoft Life, an animation of Conway's Game of Life.