Translating Bit Invader from Codea into JavaScript

Simon tried to reconstruct Bit Invader game (from Codea.io) in JavaScript, but got stuck at a certain point when he was programming the enemy to recognize the hero and the bullets. Here is how far he got. The project is available on Simon’s page in Codepen:

https://codepen.io/simontiger/project/editor/AdyVmr/

 

Simple Physics. Translating from Lua (the language in the Codea app) into Java

Simon came up with an idea to translate a physics visualization from the Codea app (using a language called Lua) into Processing (Java) by applying Box2D. The first two videos below show him working on that project.

As he got stuck later, Simon decided to do the same project in p5.js instead, applying Matter.js:

This turned out to be quite difficult as well: he got stuck while trying to calculate the exact coordinates for all the shapes involved in the visualization (it was supposed to resemble bricks falling down and rolling down two slopes). So what Simon did as the next step in this “exercise” was switch back to Processing and create a grid with numbered coordinates. When I asked him, why he didn’t make the same grid in p5, he answered that he just loved Processing so much. Eventually though, this grew into a different project:

Confusing as these sidesteps may seem I’m sure Simon got a lot of practice out of this.

Here is a game Simon tried translating from Lua into Processing, it’s called Brickout:

Console Application in Java

Simon was training to build console applications with Derek Banas’ tutorial on design patterns. At the end of the third video, Simon says yes to my question if the console app could also be displayed on a webpage. After we stopped filming he corrected himself: Java is never used for websites, he said, but the same techniques he learned today can be useful for Android apps.

 

 

Sound Visialization

Simon has followed another batch of wonderfully enriching tutorials by Daniel Shiffman on p5.js, this time all about sound, and made these sound visualisations. The first one is based on the Amplitude Analysis tutorial (the amplitude of a song (any sound input) is being analyzed to control elements of a p5.js sketch):

 

The next project comes from the Microphone Input tutorial:

 

Graphing Amplitude tutorial (using the getLevel() function from the p5.js Sound Library to graph the amplitude over time):

 

And the Frequency Analysis tutorial, analyzing the frequencies (spectrum array) of a sound file. Simon created a “graphic equalizer” like visualization. For this project he used the p5.FFT object from the p5.js library. FFT (Fast Fourier Transform) is an analysis algorithm that isolates individual audio frequencies within a waveform.

Calculator in C#

Simon has been into learning about C# the last couple of days. Yesterday he built a calculator. He didn’t actually compose the code himself as one might think after watching the video but recalled it from memory – he has seen many C# tutorials. It is very nice to see how well he has mastered it in such a short time though!

And in this video Simon explains the notion of maximum value of a decimal in C#:

Smart Rockets

Smart Rockets, a coding challenge by Daniel Shiffman. It involved creating a genetic algorithm from scratch and making “smart rockets” (based on a simulation by Jer Thorp). The rockets evolve the “best” path to a target, moving around obstacles. Simon got stuck half way.