0.88/Turtle Art

Turtle Art

Introduction

Turtle Art is an activity with a Logo-inspired graphical "turtle" that draws colorful art based on snap-together visual programming elements.

Turtle Art is intended to be a stepping stone to the Logo programming language, but there are many restrictions compared to Logo. (Only numeric global variables and stack items are available, no lists or other data-structures. The conditionals and some of the functions only take constants or variables, not expressions. Limited screen real-estate makes building large programs unfeasible.) However, you can export your Turtle Art creations to Berkley Logo. The sensor-enabled version of Turtle Art also has a facility for sensor input, so, for example, you can move the Turtle based upon sound volume or pitch.

Turtle Art is in the same tradition as Etoys, Scratch, Lego Mindstorms™, and Lego Microworlds™.

Turtle Art is used extensively in Sugar deployments and numerous materials for support in the classroom have been developed. Of course, since Turtle Art is a Logo derivative, many of the classic Logo exercises are well suited for engaging students in Turtle Art. For example, Tony Forster has been blogging about a wide variety of Turtle Art activities. Gonzalo Odiard has written a short introduction to Turtle Art.

More Info:

  • Turtle Art Sugar Activity homepage
  • Turtle Art gallery (See [1])
  • Turtle Art Manual (See [2])
  • Turtle Art teacher guides from Uruguay (See [3])
  • Turtle Art teacher guides from Peru (See [4])
  • Turtle Art student guide (See [5])
  • Tony Forster blog on Turtle Art (See [6])
  • Bill Kerr blog on Turtle Art (See [7])
  • Barry Newell worksheet (See [8])

What is new for users

The most visible change is the incorporation of the new scalable block design.

Minor bugs and feature changes include: 83

  • added new user-interface features
    • support for multiple turtles
    • expandable blocks
    • collapsible stacks
    • runtime block highlighting
    • error highlighting
    • trash palette (with restore)
    • palette better integrated into Sugar toolbar
    • variable-length string blocks
    • editable string blocks
    • paste text from Sugar clipboard to string blocks
    • new prefix boolean logic
    • showblock to compliment hideblock
    • fullscreen block
    • Cartesian and polar coordinate blocks
    • color blocks
    • editable macros (used for presentation blocks)
    • labels on coordinate-grid overlays
    • more complete support in non-Sugar environments
    • new (and improved) sample code
    • Logo code for project added to View Source
    • save SVG block lets you generate SVG with Turtle Art
    • improved export-to-HTML logic
    • new translations
  • completed a major refactoring of the code
    • 90% smaller download bundle-size
    • faster first-time launch
    • greatly simplified i18n maintenance
    • easier to extend with new blocks and palettes

82

  • minor updates to Spanish translations

81

  • fixed keyboard input bug introduced in v79

80

  • new Finnish translations

79

  • backspace enabled when entering numbers
  • arbitrarily long numeric strings enabled
  • fixed Python error in sample code
  • clean up of en artwork
  • fix bug in load_image
  • detecting XO 1.5 hardware for font-scaling problem
  • keyboard and gamepad navigation
  • expanded hover help
  • better logic for block selection used by copy/paste

78

  • new artwork for pen palette
  • color blocks

77

  • hide status block on start up
  • save reference to Python code loaded from the Journal

76

  • fixed import error in project
  • fixed bullets in exporthtml
  • added proper scaling for coordinate blocks
  • moved status layer forward

75

  • Cartesian coordinates overlay
  • polar coordinates overlay
  • coordinate display on View Toolbar
  • Option to rescale coordinate system to 100x100 on View Toolbar
  • Reordered the palettes (moved misc. down)

74

  • load start block for new projects
  • fixed bug with reloading descriptions from Journal
  • added hover help to command line version
  • initiate the import Python chooser when Python block is clicked
  • saving pastable code to html export
  • fixed some problems in export to HTML code

What is new for developers

Raúl Gutiérrez Segalés and I completed a major refactoring for 0.88 which includes a block factory--a more object-oriented approach that should facilitate a more decentralized development approach.

Internationalization (i18n) and Localization (l10n)

Compatibility

Compatible with all versions of Sugar although some functionality is lost with pre-0.82 versions and sharing is incompatible with previous versions.

Detailed changes

As of Version 83

  • #472 Remove unexpected 'save/load' tab from toolbar
  • #489 Turtle Art text entry should use Entry widget
  • #673 Logo program should be displayable in the document View Source
  • #491 Turtle Art sharing needs new logic

Open tickets

  • #472 Remove unexpected 'save/load' tab from toolbar
  • #489 Turtle Art text entry should use Entry widget
  • #673 Logo program should be displayable in the document View Source
  • #1057 Turtle Art feature to add support for "pages"
  • #1188 Load samples from turtleart.org
  • #1203 Rebase Turtle Art graphics on Cairo
  • #155 Turtle Art with Sensors has different requirements for non-XO hardware
  • #491 Turtle Art sharing needs new logic
  • #548 Turtle Art: read and write to text file
  • #552 Turtle art: reinstate sensor input

Credits

  • Walter Bender and Raúl Gutiérrez Segalés (with help from Simon Schampijer)
  • Especially helpful community feedback from Tony Forster, Ed Cherlin, and Bill Kerr
  • Brian Silverman is the first author of Turtle Art