After learning dry theory with Cognitive Science in first year, SynapticJS presented us with a golden opportunity to experiment with real time, visualised neural network training using only JavaScript! We were also intrigued to see how our custom built neural network would handle the interaction of the square.

What it does

Each square representing a unique user, and parameters (such as speed) augmented by the traits of their respective user, each square is trained by our custom neural network, crafted from the ground up by intricately tuning elements of our training. This is beautifully visualised in real time with all squares in a single area.

How we built it

Using a node.js web application along with the express.js web framework, we created a very simple and fast client website. We used the synaptic.js package to implement our custom neural net in JavaScript. Using our custom JavaScript code, we drew up the learning of the net in real time upon a HTML5 canvas. Design and structure of the web application was implemented through use of Jade and CSS.

Challenges we ran into

  • Initially we wanted to have all squares learn how to interact with each other, however, due to time constraints it would be of extreme difficulty to create a similar custom neural net.
  • We were required to spend many hours at the beginning of our project researching and learning theory and techniques behind neural network modelling and design. This proved an intense and arduous task.

Accomplishments that we're proud of

Being able to create an entirely client side neural network, that runs efficiently, quickly and with high performance in such a low amount of time is something each one of us is quite proud of.

What we learned

We have learned theory of how neural networks work, tied with our practical construction of a network. We have learnt how a neural network can be used for practical purposes as well as how to effectively implement them. We also used node.js, an application type we were all unfamiliar with. This built our JavaScript and client side web development skills.

What's next for NetSquare

  • We would like to include many more parameters.
  • Improve the visualisation of the data we have.
  • We want to implement the training of squares to work together, and other conjoined tasks.
  • More customisation for each unique square.

Built With

Share this project: