Raspbuggy ( http://cmcrobotics.github.io/raspbuggy ) is an educational platform used to initiate children to programming and automation.
It is presented in the form of a wifi-enabled RC car that ships with its own (Google Blockly-based) programming environment.
The idea is to write an abstraction layer that renders Raspbuggy behaviour in a 2D (canvas) or 3D-based view to simulate the results of programming logic.
Raspbuggy is based on the Raspberry Pi platform, and allows the integration of a large number of hardware sensors, camera support and software packages.
Currently, two hardware abstraction layers are implemented for Raspbuggy : Pimoroni Explorer and Lego Mindstorm NXT, but there is currently no way for Raspbuggy users to first simulate their code before running it.
Objective : write an abstraction layer that renders Raspbuggy behaviour in a 2D (canvas) or 3D-based view to simulate:
- Motor movement control (forward / backward / right and left motors / angle-based movement)
 - Obstacle detection
 - Reflectivity reading (light / dark)
 - Pen support
 - Lower / Raise the pen) : attaching a pen to the Raspbuggy, allows it to act like a real-life Logo environment https://en.wikipedia.org/wiki/Logo_(programming_language)
 
- Implement a Canvas / WebGL abstraction layer that can render Raspbuggy block logic.
 - Provide support for in-browser rendering of  :
	
- Motor movement control (forward / backward / right and left motors / angle-based movement)
 - Obstacle detection (ultrasonic sensor)
 - Reflectivity reading (light / dark)
 - Pen support (lower / raise)
 
 
- Essential : fluency in Javascript / Canvas / WebGL
 - Essential : Python basics
 - A plus : Familiarity with Google Blockly Custom Block creation and code generation concepts
 - A plus : Awareness of Brython (a.k.a. using Python as a replacement for Javascript)
 
- http://cmcrobotics.github.io/raspbuggy
 - http://github.com/CMCRobotics/raspbuggy
 - https://en.wikipedia.org/wiki/Logo_(programming_language)
 - https://developers.google.com/blockly/
 - http://www.brython.info/
 
Prerequisites: 
Python programming basics - Javascript - WebGL / Canvas