Inspiration
For this weeks assignment, I want to replicate shooting stars because with cellular automata, we can see them be born/ die and spread. Also the sporadic movement of the cells replicates the stars glowing. I want to use the following basic program to show it simplified with just black and white.
I wanted to adapt from this and add a 3rd state as a dying state and to adapt the colours. After making these adjustments, I got an effect that is much more natural and here are the following adjustments. ‘
show() { // stroke(0); if (this.previous === 0 && this.state == 1) { stroke(255,255,0); //yellow fill(255, 255, 0); } else if (this.state == 1) { stroke(255); //black fill(255); } else if (this.previous == 1 && this.state === 0) { stroke(218,165,32) //gold fill(218,165,32); } else { stroke(0); //white fill(0); } square(this.x, this.y, this.w); }
I really wanted to add another level of user interactivity and have the mouse be able to add more life into the program and this is the following code I used. Where the mouse goes, more cells are added and that state is changed, when close to other live cells, the cell catches ‘fire’ and have it expand. The shooting stars effect started and would carry on once the cells die.
function mouseDragged() { // Update cell state when the mouse is dragged for (let i = 0; i < columns; i++) { for (let j = 0; j < rows; j++) { // Check if mouse is within the boundaries if ( mouseX > board[i][j].x && mouseX < board[i][j].x + w && mouseY > board[i][j].y && mouseY < board[i][j].y + w ) { // Update the cell state to 1 (alive) board[i][j].state = 1; board[i][j].previous = board[i][j].state; } } } }
And this is my following code and my final product.