Legacy Apps

This is a small collection of JavaScript Apps that I have put together from resurecting old code that had previously been written in other languages.

The Dice Man

The Dice Man was originaly a program written in OPL for the Psion Series 3 to roll an animated dice across the screen. The dice animations were developed with Pete Lyons (Team 17) and reuse only 36 frames rotating through all possible upturned faces on a dice. This allows the program to start the animation on different frame numbers depending on the desired outcome

I later ported the code to run as a Java Applet on an old personal website and it is this code that I have recovered and ported to Javascript as JVMs to run applets are now a dying resource.

Run

AGL

AGL is a simple graphics language that was developed to draw interesting geometric patterns. The original code was written in C++ and was intended to not just draw the patterns but to try and draw them in an interesting way. This is done by allowing a shape to be drawn in one primary colour but with a secondary colour specified. The routines would then draw with the primary colour until the screen pixel already matched in which case it would use the secondary colour.

Run

Oblique

Oblique Strategies was a set of inspirational cards created by Brian Eno and Peter Schmidt in 1975. This was a simple Javascript App to pick a random card from the deck and display it on the screen.

Run

Mondrian

Mondrian is a simple javascript app to draw pictures in the style of Piet Mondrian. It has been an idea that has gestated a while and existed in partially finished formats in a number of languages but this will be the first time it has been completed.

Run

Artificial Life

This is a small collection of applications that are based on cellular automata and artificial life simulations.

CA

CA is a 1D celular automata. It is a simple pre-cursor to 2D Automata like Conways Game of Life.

Each row of the output represents a generation of the CA that has been calculated from the previous generation using the set of rules that determine if the subsequent cell is alive or dead.

Run

Life

A simple implementation of Conway's Game of Life to follow on from the simple 1D celular automata implementation. The rules follow the traditional rule set of the game of Life.

  • If a live cell has less than two neighbours it dies
  • If a live cell has two or three neighbours it lives
  • If a live cell has more than three neighbouts it dies
  • If a dead cell has thre neighbours it becomes alive
  • The world wraps around the edges to count neighbours

Run

Boids

Boids is another Vibe Coding Experiment conducted with Gemini Pro 3.1. The iniital prompt was to create an interactive boids simulation as a single page web app with no external dependencies or libraries. Boid flocking parameters are editable and clicking on the simulation will add or remove obstacles for the boids to fly around. The simulation also includes optional predators that will chase down the flock of boids. Enjoy!

Run

IPD

IPD is another Vibe Coding Experiment conducted with Gemini Pro 3.1. The iniital prompt was an outline of how my previous simulation of the Iterative Prisoners Dilemma had worked using genetic algorithms to evolve behaviour based on a deterministic finite state machine model.

Gemini suggested altering the mechanics to a probabalistic approach which simplifies some of the breeding and mutation aspects of the genetic algorithm and some improved colour based visual representation of the behaviours. Enjoy!

Run

Distractions

These are a small collection of experimental code Distractions to experiment with differnt ideas and techniques mostly utilising Gemini Pro 3.1 to help develop the code.

Tesseract

Tesseract is a Vibe Coding Experiment conducted with Gemini Pro 3.1. The iniital prompt was to create an interactive projection of a Tesseract as a single page web app with no external dependencies or libraries. The initial pass had a few small issues which Gemini fixed and then suggested enhancements which were worked through over about an hour along with my own ideas as the project evolved.

A few scoping issues cropped up during the ongoing development which I was able to debug and sort out myself before finalising everything and having Gemini proof check the changes I had made. Enjoy!

Run

Fract

Fract is another Vibe Coding Experiment conducted with Gemini Pro 3.1. The iniital prompt was to create an interactive fractal explorer. It makes use of WebGL to optimise the rendering as the computational load of pure browser rendering would have been too slow. Enjoy!

Run

Zen

Zen is another Vibe Coding Experiment conducted with Gemini Pro 3.1 within the Google Antigravity IDE. The iniital prompt was to create an interactive Zen Garden allowing raking of sand and placement of diffent sized rocks. It makes use of WebGL and Three.js to optimise the rendering as the computational load of pure browser rendering would have been too slow. Enjoy!

Run