Bresenham’s Line Algorithm

Bresenham’s line algorithm is the best known way to render a continuous and straight line through a raster display. I started out allowing floating point operations, but quickly decided to implement the algorithm using only integers. I didn’t like the online explanations and tutorials of the algo, so I decided to write something that I conceptually understood. View my code here.

My algorithm works by increasing an “error” variable by y0 – y1 every iteration. Should the error ever rise above x0-x1, the error is decreased by x0 – x1 and the drawn Y value is increased by 1.

Intel Submission: Observing Integrated Information in Evolving Neural Networks

I have completed a research paper on the how integrated information behaves during artificial evolution of neural networks in Polyworld. Mad props to Virgil Griffith (with his integrated information calculator) and Larry Yeager (author of the aforementioned Polyworld) for their incredible insight and willingness to help out a mere high school student.

Download the full paper as PDF (400k)


Evolution has proven to be a wildly successful autonomous process for creating intelligent systems in the natural world and in simulation. Since the early 1960s, re- searchers have used artificial evolution to find ingenious and novel solutions to complex problems such as series prediction and flight control. Recently, artificial evolution has been applied to neural networks with the aim of evolving more robust artificial intel- ligence. Several metrics have been proposed to chart the emergence of intelligence in these evolved networks. This work analyzes the behavior of a new metric, integrated information (φ). Observed data is analyzed, interpreted, and compared to more con- ventional properties of the artificial neural network. The data analysis shows that φ increases over evolutionary time and is therefore promising as a heuristic measure.

Experimental Data:

Results from Integrated Information experiments. The data set includes anatomical neural network sampled from 5,202 Polyworldians, at death, from three genetically independent simulations. Each data point represents a 200 time step bin size. *First sample for which p < 0.01

Stuypulse Website (2008 PHP)

After an entire christmas vacation’s worth of PHP and Javascript wrangling, Daryl and I finished the 2008 Stuypulse website!

Stuypulse 2008 Website Screenshot

Click to visit

The new site contains a novel CMS developed from scratch. Using a seamless interface, team members can add and edit pages and subpages to an infinite depth, create and display custom “widgets” for both sidebars, and easily update header and footer information. Integration with our existing SMF forum login system means that team members can use their forum credentials to log into the CMS.