Javascript/HTML5 port of Turtle Blocks
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
activity reference SL after project transfer (#367) Apr 6, 2018
bower_components/prefixfree move prefixfree to lib Mar 30, 2015
css New menus (#444) Oct 23, 2018
documentation-es new artwork Dec 29, 2018
documentation-ja new artwork Dec 29, 2018
documentation-kana new artwork Dec 29, 2018
documentation new artwork Dec 29, 2018
fonts add missing resources Dec 29, 2018
guide-es reference SL after project transfer (#367) Apr 6, 2018
guide Added Debugging Guide for turtleblockjs (#433) Dec 29, 2018
header-icons new artwork Dec 29, 2018
images add missing resources Dec 29, 2018
js add backward block; duplicate block Jan 11, 2019
lib add missing resources Dec 29, 2018
msie_flashFallback Trying to make speak block compatible with chrome Dec 3, 2014
planet fixed #407 -- see MB commit for more details (#408) Dec 29, 2018
plugins new colors Jan 10, 2019
po update po files Jan 4, 2018
samples confusion 39 (#421) Dec 29, 2018
screenshots replace missing artwork Jan 1, 2018
tutorials Update (#443) Dec 29, 2018
.gitignore using require for easeljs Jul 15, 2013
COPYING Update COPYING Oct 14, 2015 Added Debugging Guide for turtleblockjs (#433) Dec 29, 2018
Licence.txt Create Licence.txt Oct 14, 2015
NEWS more news for v1 Nov 12, 2015 fixed plugin links in readme (#428) Dec 29, 2018
android_chrome_manifest.json Add data for android chrome's add to home screen feature Jan 19, 2015
cache.appcache Fix appcache file Jan 19, 2015
config.xml debouce clicks for Android Dec 19, 2014
index.html more changes Dec 29, 2018
localization.ini update po files Jan 4, 2018
manifest.json resync with MB Dec 20, 2017
manifest.webapp resync with MB Dec 20, 2017
package.json Remove sugar-web dependancy Feb 7, 2015 add macro support for plugins Jan 5, 2018 Added instructions to setup server in OSX(10.10) Feb 6, 2016 chmod 777 Aug 21, 2013

TurtleBlocks (the JavaScript version)

Turtle Blocks is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on snap-together visual programming elements. Its "low floor" provides an easy entry point for beginners. It also has "high ceiling" programming, graphics, mathematics, and Computer Science features which will challenge the more adventurous student.

Note: The JavaScript version of Turtle Blocks closely parallels the Python version of Turtle Blocks, which is included in the Sugar distribution. Sugar users probably want to use the Python version rather than the JavaScript version. (The JavaScript version is included in Sugarizer.)

Turtle Blocks

Using Turtle Blocks

The Javascript version of Turtle Blocks is designed to run in a browser. Most of the development has been done in Chrome, but it should also work in Firefox, Opera, and Safari. You can run it directly from index.html, from a server maintained by Sugar Labs, from the github repo, or by setting up a local server.

Sugar users can run Turtle Blocks as an app embedded in the Browse activity (See Turtle Blocks Embedded) or simply open Turtle Blocks in the Browse activity itself.

Once you've launched Turtle Blocks in your browser, start by clicking on (or dragging) blocks from the Turtle palette. Use multiple blocks to create drawings; as the turtle moves under your control, colorful lines are drawn.

You add blocks to your program by clicking on or dragging them from the palette to the main area. You can delete a block by dragging it back onto the palette. Click anywhere on a “stack” of blocks to start executing that stack or by clicking in the Big Play Button (fast running) or press it for a long while for the Turtle to run (slowly) on the Main Toolbar.

Getting Started Documentation

The basic buttons and basic blocks are explained in detail in Documentation.

A guide to programming with Turtle Blocks is available in Turtle Blocks Guide.

A quick start:

Click to run the project in fast mode. Long press to run the project in slow mode.

Click to run the project step by step.

Stop the current project running.

Clear the screen and return the turtles to their initial positions.

Hide or show the blocks and the palettes

Expand or collapse start and action stacks.

Return all blocks to the center of the screen.

Moves turtle forward.

Turns turtle clockwise (angle in degrees).

Sets color of the line drawn by the turtle.

Sets size of the line drawn by the turtle.

Loops specified number of times.

Top of nameable action stack.

Invokes named action stack.

Google Code-in participant Jasmine Park has created some guides to using Turtle Blocks: Turtle Blocks: An Introductory Manual and Turtle Blocks: A Manual for Advanced Blocks

Turtle Confusion

Turtle Confusion presents 40 shape challenges to the learner that must be completed using basic Logo-blocks. The challenges are based on Barry Newell’s 1988 book, Turtle Confusion: Logo Puzzles and Riddles. You can access these puzzles from the Turtle Confusion page.

Music Blocks

Music Blocks is fork of Turtle Blocks with additional blocks for programming music.

Reporting Bugs

Bugs can be reported in the issues section of this repository.


Please consider contributing to the project, with your ideas, your artwork, your lesson plans, and your code.

Programmers, please follow these general guidelines for contributions.

Advanced Features

Turtle Blocks has a plugin mechanism that is used to add new blocks. You can learn more about how to use plugins (and how to write them) from the Plugins Guide.

List of Plugins

  • Mindstorms: blocks to interact with the LEGO Mindstorms robotics kit
  • RoDi: blocks to interact with RoDi wireless robot
  • Carbon Calculator: blocks for exploring your carbon footprint
  • Maths: addition blocks for some more advanced mathematics
  • Translate: blocks for translating strings between languages, e.g., English to Spanish
  • Dictionary: a block to look up dictionary definitions
  • Weather: blocks to retrieve global weather forecasts
  • Logic: blocks for bitwise Boolean operations
  • Finance: a block for looking up market prices
  • Bitcoin: a block for looking up bitcoin exchange rates
  • Nutrition: blocks for exploring the nutritional content of food
  • Facebook: a block for publishing a project to Facebook
  • Heap: blocks to support a heap and for loading and saving data
  • Accelerometer: blocks for accessing an accelerometer
  • Turtle: blocks to support advanced features when using multiple turtles
  • Gmap: blocks to support generation of Google maps.
  • Random quote: returns random quote of the day