Non-Teaching Blockly Implementations

641 views
Skip to first unread message

toe...@extremenetworks.com

unread,
Jul 13, 2015, 3:41:19 PM7/13/15
to blo...@googlegroups.com
All,
  I have been trying to generate a list of the non-teaching versions of Blockly applications (i.e. other than what you see at https://developers.google.com/blockly/about/examples) which utilize the Blockly base but have extended it for various aspects (mutators, typeblocking, other languages). So far this is what I have found along with the features that they have added... Any additional examples/corrections would be greatly appreciated.

MIT App Inventor
Hosted at http://appinventor.mit.edu which allows for building of Android applications using an enhanced version of Blockly. All of their source is at https://github.com/mit-cml/appinventor-sources. Documentation for the blocks can be seen at: http://appinventor.mit.edu/explore/ai2/concepts.html.
A couple of interesting things to note here..
  • They have the concept of local and global variables that a user can declare. Their variable dropdown blocks only let you select the one which is appropriate for the context that you are in Math functions such as addition/subtraction/Min/Max allow for adding multiple values with a mutator. I.e. you can do 1+2+3+4 with a single block instead of having to have three blocks
  • They generate applications for Yail (Yet Another Interpretive Language) which is compiled to Java bytecodes and then to Dalvik executable code (DEX). So even thought they run on Android in Java, they don't do native Java code generation.
  • They have implemented a TypeBlocking interface which allows a user to click and start typing where the system will autocomplete and create a block that matches the typed string.
  • Their plugin mechanism allows for importing other blocks into the system and a user can dynamically add what blocks are available for a particular session.

Wylodrin
Provides an extensive development environment for building applications to talk to a variety of single board computers and generates both JavaScript and Python code. This environment has greatly extended the Blockly environment with over 100 blocks which do everything from talk to hardware to interface with social networking services. They describe their many extensions at https://www.wyliodrin.com/wiki/languages/visual but their source code does not appear to be in GIT (other than https://github.com/alexandruradovici/blockly which appears to only be a fork of the main Blockly GitHub repository)

Open Roberta
Provides an award winning development environment which has modified Blockly with some very nice extensions for the Mutators. Their source code tree for their Blockly code can be found at https://mp-devel.iais.fraunhofer.de/code/projects/ORA/repos/robertalab/browse/OpenRobertaServer/staticResources/blockly.  One really nice extension that they have done is the custom colors on the connectors so that you can see what type of block will mate up with another.

Zero Robotics
Zero Robotics is a robotics programming competition where the robots are SPHERES (Synchronized Position Hold Engage and Reorient Experimental Satellites) inside the International Space Station. They have a really nice IDE which is blockly based and apparently also supports realtime collaboration. They provide for the declaration of local variables along with the types for the variables. Their Blockly source code is at https://github.com/zrdev/zrdev.github.io/tree/master/blockly. Additionally they have a generator for C++.

Snapp
Another visual programming environment for creating applications on smartphones tablets and smart devices. Found at http://snapp.click/ it is based on Blockly but has not modified it much other than to add some custom blocks. In many ways it is similar to MIT App Inventor but doesn't seem to be as extended. The source doesn't seem to be available however.

EasyJ

An implementation of Blockly generating Java for a limited number of blocks at http://easyj.team5122.com/.  This editor has a nice method of switching between Blocks and Code, but the generated Java code is not editable.  The source code can be found at https://github.com/TechplexEngineer/EasyJ4FRC.  Note that there is another version of easyj (http://easyj.team2648.com/) which is based on waterbear blocks (http://waterbearlang.com/) which comes from Scratch and generates Java.


scriptr

An implementation of Blockly at https://www.scriptr.io/ that has a few custom Scriptr blocks.  It appears that they are generating Javascript, but it isn't obvious where their source code is located or if it is available.

Carlos Pereira

unread,
Jul 13, 2015, 7:05:35 PM7/13/15
to blo...@googlegroups.com
Shameless plug here, I've been working on Ardublockly https://github.com/carlosperate/ardublockly , trying to add a basic implementation of static typing for Arduino code generation (technically c++, but it is closer to c). There are a few quirks that I need to iron out, but it generally works for its limited implementation (haven't touched blockly lists).

Also, the Microsoft touchdevelop visual programming language is adding some kind of Blockly integration, from the looks of it as part of the new BBC micro bit software ecosystem (a bit of a bummer, as I was hoping to work on something like that myself, let's see how that goes but it seems all code generation will be done on the server side, I would bet it will probably be connected somehow to the ARM mbed cloud compiler).

toe...@extremenetworks.com

unread,
Jul 14, 2015, 8:03:27 AM7/14/15
to blo...@googlegroups.com
Very cool.  Nice implementation.  I've added it to my list of implementations to watch.

Carlos Pereira

unread,
Jul 14, 2015, 9:44:38 PM7/14/15
to blo...@googlegroups.com
I've remembered a couple more.

There was a lua implementation of blockly, but it is no longer active: https://github.com/espertus/blockly-lua

And the guys from kano also used blockly for teaching purposes, but that includes some kind of minecraft implementation. Couldn't find info on their github (https://github.com/KanoComputing?utf8=%E2%9C%93&query=), but it's probably a collection of python blocks for the minecraft for raspberry pi package.

Austin Bart

unread,
Jul 16, 2015, 6:31:13 PM7/16/15
to blo...@googlegroups.com
My work has been on an environment that lets you switch back-and-forth with Python (Mutual Language Translation) that can then be run in the browser via Skulpt. It has a strong emphasis on data science tools, visualizing program state, and guided practice. Our plan is to make it available through LTI. 


You can see the project's current incarnation there. We've had a devil of a time thinking of a name. The current top choices are "BlockPy", "Kennel", and "Silicon", but we're not really attached to any of them. 

~Cory

Blake

unread,
Aug 24, 2015, 2:49:00 PM8/24/15
to Blockly
I just ran across one called Robot Mesh for the Vex robotics system.


I found it from this Hacker News entry: https://news.ycombinator.com/item?id=10108176

Best,
Blake

--
You received this message because you are subscribed to the Google Groups "Blockly" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blockly+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

toe...@extremenetworks.com

unread,
Aug 25, 2015, 9:13:37 AM8/25/15
to Blockly
Very interesting.  I've done a bit of searching and can't find their Github fork for the code.  If anyone is better at searching that out, it would be appreciated.

In the process I also ran across

BlocklyDuino
An Arduino version of Blockly (demo at http://www.gasolin.idv.tw/public/blockly/apps/blocklyduino/index.html) which has a few extension blocks. Source code is at https://github.com/BlocklyDuino/BlocklyDuino which generates a mostly C like language.

Reply all
Reply to author
Forward
0 new messages