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.


Sunday, September 28, 2008

Quaternion Rotations

I created the tutorial Quaternion Rotations in 3D Java OpenGL to document a 3D math library that I wrote a few months ago. It includes an interactive demonstration applet and links to the javadoc and source code.


Friday, August 29, 2008

CroftSoft Neuro

CroftSoft Neuro is an animated simulation of the Hodgkin-Huxley neuron model. The Java source code is available from the CroftSoft Code Library. Here is the direct link to browse the source code in the SourceForge.net Open Source code repository.