Terrapin Resources

The Logo Blog

Welcome to my Logo Blog! I am Michael, the author of Terrapin Logo. As Logo evolves, I will write about new Logo features, drop a hint or two, or cover a Logo topic in more detail.

Send me an email! Do you have any ideas for improvement? Are you frustrated because something does not work as expected? Do you see a JavaScript error? Please let me know! Send me an email to michael@terrapinlogo.com!

2023/04/11: Accessibility

Logo 5.3 has been released. This new release does not really have any fundamental changes. Pro-Bot support has been removed entirely, because I was not able to figure out how to access a serial port from within a Web page.

The biggest change, however, is better support for visually-impaired people. With the help of a blind Logo user, Logo has been overhauled to better respond to screen readers like VoiceOver for the Mac. You can invoke that version of Logo with the following links:




Doing so will give you larger fonts, a simplified Listener, and a very simple procedure editor. The editor that Logo uses (CodeMirror) does not respond well to screen readers.

2022/04/01: Less fonts, but more fonts

My announcement below has become true. Logo does not have built-in support for Google Drive and Dropbox anymore. Also, the commands GOOGLEFONTS and LOADFONT have been removed.

On the other hand, all modern browers now support more fonts, so the FONTS command lists several new fonts available for you, including the font BRADLEY for a handwriting lookalike, and LUMINARI for an antique-looking font.

These changes are major changes; therefore, the version number of Logo has been updated to 5.2.

2022/03/10: No more external storage, and no more Google fonts

We will drop support of direct access to external storage services like Dropbox and Google Drive. Also, we will terminate support for Google Fonts.

The main reason behind this decision is that the EU imposed strict regulations for data privacy, making it difficult for Web apps to follow data privacy guidelines.

Since both Google Drive and Dropbox can be integrated into the file system of your operating system, you can still load files from these locations, so the loss of these services should not be a big issue.

Not being able to use Google Fonts limits the available fonts to those offered by the browser you are using. The number of these fonts is small, but in most cases sufficient.

2021/02/03: New Ways to Save a Picture

Until now, you could not select what parts of a drawing you would like to save; Logo would always combine the background and the drawing and save the resulting image.

This has changed. Now, when you select “Save Picture” or “Print Picture”, you can select if you want to save or print the background, the drawing or both. There is even a checkbox that lets you decide if you want to save all turtles, bitmaps and controls into that image as well. When you load an image, you can choose whether to load it as a background or as a drawing.

The SNAP, LOADPIC and SAVEPIC commands also have a new input that lets you select wich parts to save, or where to load an image.

2021/01/17: Copy/Paste Fix

When you marked a text from right to left, the text was never copied to the clipboard on a Copy or Cut command.

2020/09/02: A New Select Layout Dialog

Logo now has a dialog that lets you select a layout for your Logo panels. Just click the Layout button in the icon bar or select “Select Layout…” from the “Window” menu.

Also, you can now view your current help page in a separate browser tab for better reading. Just click this button .

2020/08/19: Tuff-Bot Commands

Logo finally supports Tuff-Bot! I’ve added a set of commands to control Tuff-Bot. These commands are very similar to the Blue-Bot commands, plus a few commands to support Tuff-Bot’s additional buttons, and its obstacle avoidance subroutine.

Logo’s days of free trials are over. Instead, you can now order a free license code that is valid for two weeks. If you like Logo, you can extend your login code simply by going to the page https://www.terrapinlogo.com/logo-renew.html and choosing how long you would like to extend your login code.

2020/06/21: Loading Files in the Web Version

Browsers continue to increase security. Unfortunately, such a change has more or less killed the way that commands like LOAD worked. Nowadays, opening a file select dialog requires a user gesture like a click. Opening a file selection dialog from within a program just fails silently, letting Logo hang until stopped.

Therefore, I was forced to cut off all load operations by a Logo command. If you now try to use LOAD, Logo throws an error message if you attempt to load a disk file in the Web version. Note that desktop versions still work.

But there is a solution. You now have a new FILECHOOSER control that opens the file select dialog when clicked. Once you have selected a file, the file is stored into the control’s FILE property, and you can feed the value of that property to all commands that load files from disk. You may want to set the control’s RUN property to a runlist that does what you want.

Here is an example for a control that loads a Logo file.

2020/02/25: Rotating text and bitmap printing

Due to popular demand, I’ve added a few features to Logo:

Rotating Text: The TURTLETEXT command now also uses the turtle’s heading to print text. You can now print text in any direction.

Graphics Printing and Saving: When you use the SAVEPIC command to save your graphics, or when you print the Graphics panel, it also prints all turtles and other bitmaps. It does not print controls, however. There is a new setting in the Settings dialog that lets you turn off this feature, or simply hide all bitmaps that you would not like to print. Also, the “PREFS property list has a new property PRINT.BITMAPS that controls the printing of bitmaps and turtles.

VELOCITY is back! The commands VELOCITY and SETVELOCITY are back. Setting the velocity of a widget to a value greater than zero causes the widget to move independently at a speed of approximately the given number of pixels (dots) per second. The command works with a new VELOCITY property, which is different from Logo 4.1.

2020/01/05: Drag&Drop enhancements, and extended saving

The new year has brought a few exciting enhancements. For starters, if you use the Chrome browser, you can now save files to almost any disk location! Note that this is an experimental Web technology that may also be removed again. Currently, it does not work in any other browser than Chrome.

Another exciting improvement: you can now drag disk files from your desktop into the Logo editor or the Listener. Logo will be happy to either load the file into the editor, or load the file into the Logo workspace when you drag it into the Listener (after asking for permission, of course).

This is also true for files dragged from the Files folder. As with any other items dragged from the Files folder or the Toolbox, Logo will drop the file or resource name as before. If you, for example, drag a picture from the Toolbox to the Editor, Logo drops the name of the picture or resource so you can use it in your Logo program.

Another thing: I have renamed a few shapes in the Shapes toolbox. They had numbers as names, which collided with turtle names:

  • 0.png ⇒ logoturtle.png (is now the Logo turtle shape)
  • 1.png ⇒ dot.png
  • 18.png ⇒ row1.png
  • 19.png ⇒ row2.png
  • 28.png ⇒ train.png

2019/12/08: FILL revisited

I need to apologize, because I’ve changed the FILL command once again. FILL now works better without having to tweak the tolerance value. Actually, the tolerance value now only affects the way FILL overwrites transparent colors, which is good for anti-aliased lines (which Logo uses).

You may remember that Logo supports transparency. A color value is a four-element list of [red green blue alpha], where red, green and blue are values between 0 and 255, and alpha is a value between 0 and 1; 0 is invisible, and 1 (the default) is fully opaque.

FILL now picks the colors at the turtle position and replaces all pixels with that color with the fill color until it hits pixels with a different color. It uses the tolerance value to determine if it should ignore the color and check the alpha value against the tolerance value instead. The default tolerance value is 0.5, meaning that FILL fills all pixels that are more than half-transparent (an alpha value between 0 and 0.4999) regardless of its color.

This helps to create better filled areas, because Logo adds semi-transparent colors to a line to make it appear more smooth. FILL can now fill these semi-transparent pixels to create better fills.

Please refer to the FILL command for more details.

Now, this Logo code works just fine:

2019/11/23: Google Fonts

Logo has been limited by the number of available fonts, because it does not have access to the fonts that have been installed on your PC. But now, you can load any Google font. The new LOADFONT command takes a font name or a list of font names and loads these fonts from Google Fonts.

Google offers almost 1,000 fonts for free. Please visit https://fonts.google.com to see all of these fonts and to select the fonts that you may want to load. Google font names are case sensitive and may contain spaces like “Lobster Two”. Logo helps you by accepting font names where all characters are converted to upper case, and spaces are replaced with underlines; so, insead of using “Lobster Two”, you can use LOBSTER_TWO, which is much more Logo-like.

Here is an example:

If you want the complete list of available fonts, use the GOOGLEFONTS command.

Stan Munson has created a Logo app that displays all Google fonts. Here is the link:


2019/11/17: FILL Revisited

Logo’s flood fill algorithm (the code behind the FILL command) was not very good. I’ve now integrated a better algorithm that leaves fewer white pixels. Also the FILL tolerance is interpreted in a better way. Unfortunately, FILL is now restricted to PENDOWN mode, which actually makes sense - after all, you want to fill an area with the current pen color without any fancy side effects. Therefore, FILL does nothing if the pen mode is not PENDOWN.

For more details, please see the FILL command.

2019/10/10: New Classrooms, and New Load/Save

Uh-oh. I forgot to maintain my blog. So let me start right away. The new classroom management code is up and running, and classroom storage as well as the chat server have been turned off. The changes are too numerous for my tiny blog; in short, there is a new configuration page that you need to know about. The page is here: https://resources.terrapinlogo.com/weblogo/manual/config_campus

I also changed the way Ctrl+O and Ctrl+S (on the Mac, it is Cmd+O and Cmd+S). They now invoke the correct load and save dialogs depending on which panel is active. If, for example, the Graphics panel is active, Ctrl+O lets you load a background image. If the editor is active, Ctrl+O loads a file into the editor and so on.

2019/05/05: WHEN Is Back!

Believe it or not: I removed WHEN two years ago, because it was over-engineered. Now, it is back, and much easier to use.

Why? Because of two reasons: First, the event handling with PPROP "EVENTS “some-name [command-list] was also not easy to use, and the event handlers lived forever. If you, for example, created a keyboard handler, there was almost no way of removing that handler because you could not really type anymore. Now, the WHEN command stops these handlers when a program ends.

I’ve rewritten the chapter about event handling. It is now called WHEN Something Changes, and it is highly recommended reading.

The current way to handle events with the PPROP "EVENTS way will be removed along with the :EVENTDATA and :EVENTSOURCE properties! I expect the code to be removed in June. If you have written code that uses event handling, please rewrite that code and use WHEN instead!

I am sorry for the additional work that this causes people who have written event handlers.

2019/04/24: Property List Editors

Logo now has a built-in editor for properties! For most visible objects, like panels, turtles, buttons, and the like, simply right-click the object to open its property editor.

The property editor displays the most important properties of an object. If you would like to edit all of its properties, click the small list icon in the editor’s header bar.

Once you change a property, the change takes effect immediately. Try, for example, to right-click turtle #0 and to change its pen color. Also, if you enter a PPROP command into the Listener, the property editor displays the change immediately.

If a property has been changed, a small red X appears next to the value. If you click this arrow, the property resets to its initial value.

A word about colors. When you click a color, the browser’s color picker appears. It does not let you select the opacity of the color, unfortunately. Therefore, transparent (invisible) colors appear as black in the property editor, and if you change the property to black, the color actually appears as black, because its alpha (transparency) value is gone.

For objects and property lists that are not visible, use the new EDPLIST command as in EDPLIST “PREFS to invoke the property list editor.

Logo apps do not have a property list editor.

2019/03/15: Blushing Turtles

Would you like to see a turtle blush? Then set its pen color to red with the command SETPC "RED!

Per public demand, I’ve changed turtles a little. As soon as you select a pen color other than black, the turtle’s shape draws in the selected color so you can always see which pen color you are using. The “PREFS property COLORED.TURTLES controls the behavior. Initially, it is set to TRUE, but you can turn it off by setting it to FALSE, or via the Settings dialog.

Please note that the “PREFS property COLORED.SHADOWS has been replaced with COLORED.TURTLES.

2019/03/09: More Editor Enhancements

Due to public demand, I’ve switched the hot keys for Open and Save between the workspace and the editor. Logo V4 used Ctrl-O (Cmd-O on the Mac) to load a file into the editor, and Ctrl-S/Cmd-S saved that file again. Now, the hot keys work as Logo 4 users knew them.

The Find and Replace “dialogs” in the editor were awful at best. Now, you have a nice Find/Replace dialog that makes more sense. All find/replace menu items in the Edit menu have been replaced by a single Find/Replace menu item,

Finally, the editor now tracks any loaded file, and displays the file name in the title bar. To get rid of a loaded file, there is a new “Erase” button that erases the entire editor so you can start over. The editor’s Save button saves that file again; if you want to save to a different storage location, use the File/Save menu.

2019/03/06: Editor Enhancements and New Layout Options

A few small, but interesting, enhancements have been added to the editor:

  • You can now double-click a text file in the Files panel (e.g. a classroom file), and it loads into the editor.
  • The editor has a Save button, which is actually just a convenience button for the “Save/Editor Contents” menu item in the File menu. It saves you from having to navigate through the menu to save your editor contents.
  • And you can drag a file into the editor or the Listener to copy the file’s full path name.

I’ve introduced two new global variables so you can fine-tune the layout of Logo panels.

The Initial Layout

After Logo loads and initializes, the classroom version attempts to load an INIT.LGO file from the classroom server, which could change the layout. Also, Logo tries to auto-load any layout that Logo has saved previously using the Autosave settings in the Settings dialog.

As soon as Logo has finished its initialization phase and just before the Listener is ready to accept user input, Logo saves the layout found so far into the global :INITIAL.LAYOUT variable. Users can return to Logo’s initial panel layout in one of the following ways:

  1. Enter the command MAKE "LAYOUT :INITIAL.LAYOUT
  2. Select the Window menu item “Initial Layout”
  3. By clicking the Initial Layout toolbar icon

The Default Layout

Logo’s default panel layout is available in the global :DEFAULT.LAYOUT variable. This variable is read-only, but you can always use that variable to reset the layout to the default.

  1. Enter the command MAKE "LAYOUT :DEFAULT.LAYOUT
  2. Select the Window menu item “Original Logo Layout”

2019/02/23: Background Programs

Now, Logo can run background programs. A background program is a Logo program that detaches from the Listener, leaving the Listener free for you to enter commands or run programs while the other program runs. A background program has the same access to Logo as every other program; it can print to the Listener, move turtles, and more. Event handlers were a sort of background program, but an executing event handler blocked a Logo program while executing. This time is over, because event handlers now run in the background and leave Logo programs free to continue running.

I won’t go into details here; please visit the section about background programs in the Logo manual for more details. See also the new commands LAUNCH and HALT.

And yes, Logo has become even faster. Just try https://moas.logoapps.net to see how quickly 300 turtles move across the screen.

2019/02/03: A Change in Classrooms

This minor change affects only classroom licensees. The “Delete Contents” button used to leave all students. Now, it also wipes the list of students and resets it to the sample entries so you can reload the entire classroom.

Other than that, I am working on changes to classroom licenses that all current licensees will benefit from. Stay tuned.

2019/01/04: More Fine-Tuning

Still working on event handling! I’ve found that the event data for floor robots needed to be split up. Before, it was a two-element list, where the first element was the sensor value and the second element was the device name that triggered the event.

To me, it was tedious that you had to use FIRST :EVENTDATA to access the sensor value.

Therefore, I split the data. Now, the :EVENTDATA variable contains the sensor value only, which makes much more sense. If you want to know which device actually triggered the event, there is a new global variable :EVENTSOURCE that contains that name.

I apologize to everybody who has written event handlers for floor bots!

There is more: I’ve also been working on the Logo Blocks page. I added a new tab “Events” so you can pull together an event handler, and I’ve added a new tab for the Root robot.

Finally, there is a change for classroom users. If you do not want to create passwords for students, that is fine. Just leave the password field blank for a student to have the student log in to the classroom name and their own name instead.

2018/12/30: Fine-Tuning InO-Bot

I’ve had the first inquiry about how to program InO-Bot’s obstacle sensors. During my answer, I wrote sample code, and found that event handlers for obstacle and line sensors were hard to program. Therefore, I changed the property names for these sonsors. Instead of OBSTACLE and LINE properties, I split up the OBSTACLE property into distinct properties FRONTLEFT, FRONTRIGHT, REARLEFT and REARRIGHT. The LINE property has been split into LINELEFT and LINERIGHT. All of these properties contain either TRUE or FALSE depending on the sensor status.

The event handlers have been split and renamed in the same way. Please see the InO-Bot and Advanced Floor Bots page for details.

Let me show you a short example; if you want to respond to the detection of an obstacle for the front right sensor:

2018/12/12: Icon Bars, Undo and More

Terrapin Logo 4’s icon toolbar was sorely missed, so I’ve added it back in. It offers quick access to the most used menu items, and makes life easier for students. You can remove that toolbar with a single click.

You can now undo your drawings! Every time Logo returns to toplevel after running a command or a procedure, it creates a snapshot of the Graphics panel and the location and heading of every turtle. Use the Undo and Redo buttons or menu items to revert your drawing. The undo is limited to the last 10 drawing operations, though.

2018/11/01: Logo speaks!

The new SAY command speaks everything that you supply as input. You can feed it either a word or a list of words. Of course, your computer must have a speech synthesizer module (most computers have one). Often, computers have a lot of voices installed. Select a different voice for fun results. You can, for example, select a German voice to listen to Logo speak English with a terrible German accent!

The new menu item Tools/Select Voice… or the SELECT.VOICE command lets you select a voice.

Note that the desktop version currently offering only one voice. We will change this with the next release of the desktop executable.

2018/10/24: Chrome 70 has been released

So why does this affect Logo? Because finally, Chrome 70 for Windows offers a full implementation of the Bluetooth functionality that Logo needs to talk to Bluetooth robots. For other platforms, Chrome has supported Bluetooth already, but Windows support has been missing. Now (I think that you need a newer version of Windows 10, however), you can use the Web version of Terrapin Logo to talk to Blue-Bot and InO-Bot on Windows!

See the Blue-Bot page for Blue-Bot commands, and the InO-Bot page for InO-Bot commands.

2018/09/16: Debugging Made Easier

We have converted the Debugger panel to a modal dialog box and made it simpler to use. Often, the Debugger panel would open when a Logo program ran into an error, and people would simply click it away and attempt to fix and rerun the affected procedure. In the meantime, the debugger would stay active, and the current Logo program would continue to pause.

Now that the debugger is a dialog, it pops up “in your face” and forces you to view the error. It comes with its own copy of a Listener so you can enter commands, like checking or changing the values of a variable, or redefine a procedure.

Please read the manual chapter Crush the Bugs! for more information.

2018/09/08: Two New Commands

This Logo release contains mostly bug fixes, but I’ve added two new commands:

  • SELECT.BLUETOOTH lets you select a Bluetooth device.
  • XLIST creates a list much like the well-known LIST command, but the created list is enclosed in parentheses instead of square brackets, making it executable.

2018/08/31: Classroom Tweaks

We have tweaked the classrooms a little. First, you may have noticed that we have split up the login dialog to make things clearer. For classroom users, there is a small, but significant change. As a classroom license holder, you could use your license code to log in, which let you create classroomns and manage the list of students for each classroom. The Files panel displayed all classrooms and their student folders. Students could log in using the classroom name and their assigned password. They could only view their student folder.

We have added a new login for teachers. Teachers can login using the classroom name and an assigned password. They can see their own classroom and their student folders, but none of the other classrooms that someone who logged in with a license code could see. The teacher’s name and password is part of the list of students that a license code login would see.

So, now we have three levels:

  • Admins: Login with a license code. You can see all classrooms, create and delete classrooms, and set the teacher’s name and password along with the students’ names and password for each class.
  • Teachers: Login with a teacher password. You can see your own classroom and set the students’ names and passwords.
  • Students: Login with a student password. You can see your own student folder.

All users can change their own password in the Settings dialog, including students. If a student changes the password, the teacher (and admins) can see the new password in the list of students. If a teacher changes the password, admins can see that password.

IMPORTANT: We have created an entry with “Teacher’s Name” as the user name and “Teacher’s Password” as the password. If you want to save the student list as an Admin, you must change these entries before you update the list of students.

We’ll update the documentation ASAP.

2018/08/18: Logo 5.1 Released

Well, I did not expect to ever increase the Logo version, but the additional features that Logo has received are so many that I’ve decided to bump the version number to 5.1.

So, what’s new? Indeed, there is a lot:

New Classroom Concept

During the first months of our classroom offering, we found that is difficult for students to save their work, and difficult for teachers to monitor their students.

Therefore, we decided to offer our own cloud storage. The Terrapin Classroom storage comes with 1/2 gigabytes of disk space, which should be enough to handle several classrooms, and it is free of charge for classroom licensees.

You may already be familiar with Logo’s concept of storage services. The Terrapin classroom storage is another cloud service like e.g. Google Drive or Dropbox.

Each classroom has its own folder; for single-classroom licenses, there is only one folder, and for Site or Campus licenses, Logo creates a separate classroom folder for each sub-classroom.

The Classrooms dialog has been simplified, and entering student names and passwords is now easier. When you create a student login for a classroom in the Classrooms dialog, Logo creates a folder for each student inside the classroom folder. When the student logs in, Logo connects to that folder and redirects all load and save functionality to that folder. The student can work with that folder as if it was a local hard drive.

You as the teacher have full access to the classroom and all of its student folders. You can even set up your classroom storage as an external drive in Windows or Mac OS so you can use your favourite tools to manage your classes.

We dropped support for Logo apps inside a classroom. Now, there are other and hopefully easier ways to prepare initial settings and material for your class; for example, if you want to create a special environment for your students, you save your workspace as INIT.LGO at the classroom level, and every student will find that file (and any other files that you save) inside their student folders as read-only files. If you previously have created an “init” app to set up your students, we’ve copied the “Workspace.lgo” file from that app into “INIT.LGO” so you do not lose your settings.

Please visit the “Classrooms” page for more information and examples.

Logo Blocks

We have integrated Google’s Blockly programming environment to make it easy to teach basic programming concepts. Simply drag and drop small blocks together to create your first Logo program! See the chapter about Logo Blocks for details.

Save Your Environment

You can now save your entire environment to a Zip archive. This archive contains your Logo workspaces, your turtles and controls, the contents of the Logo Editor plus your graphics. You can load that archive file anytime to restore your complete Logo environment.

Integration of Cloud Services

We have added support for Google Drive in addition to Dropbox. You can now connect and disconnect from these services via the File menu. Logo will automatically attempt to connect to a cloud service when trying to access a file or folder on that cloud service, so it is not strictly necessary to connect manually anymore.

All cloud services display their contents in the Files Panel. These are the Logo names for these services:

  1. Dropbox: ~DROPBOX
  2. Google Drive: ~GDRIVE
  3. Classroom storage: ~CLASS (only available to classroom licensees and students)

Please see also the Logo manual’s chapter “Where are my files?” for how a storage service works.


This feature is the solution to the problem that people frequently hit the Refresh button of their browser, which causes Logo to be reloaded, and losing all of their work.

Logo’s AUTOSAVE functionality is now fully available. AUTOSAVE saves the Logo workspace and much more very frequently, so nothing is lost when your browser crashes, or if you by accident hit the Reload button to reload Logo’s web page. You can either use the Settings dialog to define the amount of data that Logo saves, or you set the “PREFS property AUTOSAVE. That property accepts four different values:

  1. OFF turns off AUTOSAVE completely. This is the default.
  2. WORKSPACE saves all procedures, names, and property lists plus the contents of the Editor panel.
  3. TURTLES saves the Logo workspace plus all turtles and the contents of the Graphics panel.
  4. ALL saves everything, including the contents of the Listener panel, all controls, and all global built-in names.

Dropping a Color

When dragging a color from the Toolbox and dropping it on to the Graphics panel, this used to set the panel’s background color. Now, the color instead starts a FILL operation, filling the parts of the Graphics panel that are bordered by a drawing. If you want to set the panel’s background color, press and hold the Ctrl key when dropping the color.

Please note that this behavior has changed from Logo 5.0 back to what it was in Logo 4.1, where dropping a color also caused a fill operation.

The Print dialog has an additional option that lets you print the Graphics Panel.

2018/06/24: Printing, Auto-Saving and no more Helper App

As discussed before, the Logo Helper app is gone. To work with Pro-Bot, you will now need the desktop version for Windows and Mac. For Bluetooth devices, you will either need the desktop version, or the Chrome browser (this is not valid for Windows and iOS, unfortunately, because Chrome does not support the Web Bluetooth technology on these platforms).

I’ve heard complaints about accidentally losing your work by refreshing the page when working with the Web version of Logo. To a certain extent, these days are over! Logo will not very often saved the contents of your Logo workspace (procedures, names and property lists) as well as the contents of the Editor panel, and restore them when you refresh the page. It does currently not save the Graphics panel, nor does it save any turtles. But you have at least your procedures back! I am working on saving more of Logo, so expect to be able to save and restore the Graphics panel at a later time.

When you log out, Logo asks you if you want to keep your data. If you are a student, this may not be a good idea if the next student uses the same password to log in to the PC; he/she will be able to pick up your work!

You can turn off auto-saving with this command:

Turn it on again with:

See also the explanation of the AUTOSAVE property.

Finally, we have a Print dialog. You can choose between printing the contents of the Editor panel, the Listener contents, or a screen shot of your Logo window. Note that printing the Editor contents or the Listener does not print any colors; Logo only prints the contents without any extra formatting.

A side note: For the time being, I’ve removed support for the SBrick (see the announcement below for 2017/10/30).

2018/06/09: The End of the Helper App

In 2016, Google has announced that they will stop supporting Chrome apps for desktop browsers. Although Google has not published the final end date for Chrome apps support, the Robots Helper app appears to be more and more instable, maybe because Google does not pay sufficient attention to maintaining the hooks and APIs that the Helper apps uses.

Therefore, we decided to remove our Robots Helper app in the near future.

What does this mean for you if you use Terrapin Logo to connect to a robot? This depends on the robot that you connect to.

  • Pro-Bot users will have to use the desktop version for Windows or the Mac, because no browser supports access to the computer’s serial port.
  • Users of Bluetooth-based devices like Blue-Bot, InO-Bot or SBrick are not affected if they use the Chrome browser, except for Windows users. Windows users need to use the desktop version, and Mac users can decide whether to use the desktop or the browser version. There is a way to install Bluetooth support for Windows Chrome users, which we will publish more details about later, but this requires some manual fine-tuning and is not for the technically unsavvy.


  • Windows users need to use the desktop version.
  • Mac users need to use the desktop version for Pro-Bots, and they can use the Chrome browser for Bluetooth devices.
  • Chromebook, iOS, and Android users cannot access the Pro-Bot, but Bluetooth devices are OK.

2018/05/25: GDPR and the new Listener

We changed the login dialog slightly today. Now, there is an explicit “Got it!” button to acknowledge that you are OK with browser cookies. Logo stores your session data (like your login information) in a browser cookie. This lets Logo skip the Login dialog if you reload the page. This is a GDPR requirement (General Data Protection Regulation) that the EU has issued, and it should not affect you in any way.

We will also remove the previous Listener code (do you even remember the Listener where you had just a single line to type in your commands?) by June 1. If you still use that Listener, please let us know!

2018/03/31: The “old” Listener is back!

I’ve received a few comments about the Listener panel, which is very different from the one that you have been used to in Logo v4. From now one, you have the good old Listener panel back! If you mistyped a command, just place the cursor where the command is, edit it and press Enter to rerun the command! You can even highlight some text and press Enter, and Logo will happily execute whatever you have highlighted.

2018/02/01: Breakpoints, Settings and More

Today, Logo received a major internal overhaul. First of all, Logo has become up to four times faster, which will please the more hard-core programmers among you. But wait, there is more:

Breakpoints! Yes, We have breakpoints now. You will soon discover that breakpoints are a fantastic debugging aid. In the editor or debugger panels, just click the line number where you would like Logo to pause. A red dot appears next to the line number indicating that Logo is now monitoring that line. And as soon as Logo hits that line during program execution, it pauses and lets the debugger take over.

You can set a breakpoint at just any line, but Logo will only pause on that line if there is any executable code there. It will not pause if there is no code, or if you click the very first line of a procedure: the line with the TO command. A procedure’s code begins at line 2 of a procedure—that’s why.

Click on a line again to remove a breakpoint or, to remove all breakpoints, enter the new BPCLEAR command.

More info can be found here.

Change your settings! The Settings dialog (menu Tools/Settings) now displays the global settings; you can view them there and save them back to Logo. Licensed users can even tell Logo to remember these settings for the next launch! Essentially, the dialog exposes Logo’s “PREFS object.

2017/11/30: PLAY notes is back!

I’ve added MIDI music to Logo. In Terrapin Logo 4, a whole new manual chapter is dedicated to making music, including the first few bars of Jimi Hendrix’s Purple Haze.

2017/11/09: Let the turtles glow!

We have changed this behavior. Now, use the “PREFS property COLORED.TURTLES to make turtles display their pen color.

After having a nice chat with Olivier M., I’ve added a new feature. You could always have a widget cast a shadow. Use the SETSHADOW command to see a shadow. Now, you can select whether you prefer a shadow, or a glow effect. Set the new widget property GLOW to TRUE to have a glow effect rather than a shadow. Try this:

Keep in mind that these commands work for bitmaps and controls as well.

But wait, there is more. You can make turtles display their shadows in the current pen color! You can set the PREFS property COLORED.SHADOWS to TRUE, and all of a sudden, all turtles that cast a shadow cast it in the current pen color. Controls and bitmaps are not affected, because they cannot draw, and they do not have a pen color.

This is a PREFS property, meaning that its setting is recorded when you SAVE your workspace.

2017/10/30: Exciting New Features!

Today, I’ve posted a new release containing a number of exciting new features!

InO-Bot support: If you have the InO-Bot manual page for details.

VIDEO and WEBCAM controls: Would you like to embed a YouTube or Vimeo video in your Logo program? The VIDEO control does this for you. It supports all of the major video streaming sites. And the WEBCAM control displays the video feed of your webcams. So if you have one, the Controls manual page has the details.

Web Bluetooth support: The Chrome browser supports the brand new WebBluetooth technology on most computer systems except for Windows and iOS. You do not need a helper app anymore to access your Bluetooth robots. You can run robots even on your Android devices!

I also posted new desktop releases that fully support Bluetooth, also on Windows. The Windows version is 64-bit only; it cannot run on 32-bit computers anymore. Please go to our Downloads page to download and install a copy.

2017/10/16: A few menu shortcut keys needed to change

I admit that I did not pay enough respect to the Mac version of Logo. Only now, I found out that the Option key together with other keys likes to produce extended characters. This makes a key combination like Option+E for the editor panel unusable, because that key produces the Euro sign instead.

Well, sometimes you have to bite the bullet and change the hot keys so they work on all systems. This has now happened. If you are a fan of hot keys, I ask for forgiveness while you learn the new key combinations.

2017/09/03: Pre-Release of Terrapin Logo for the Desktop!

I am excited to announce our pre-release of Terrapin Logo for the desktop! This is an exact match of the Web version, but you have full file handling and other features that you would expect from a desktop program.

But there is more: Once installed, it auto-updates itself. No more hassle with downloading and installing new versions (well, more info is below). An Internet connection is not required once you have logged in for the first time. Please go to the Terrapin Downloads page for the latest copy. Your license code will work just fine with the desktop version as well.

Occasionally, I will have to update the Logo loader itself; this would require you to download and install a new release in order to fix crucial bugs, or to take advantage of new features that are hardware dependent (all hardware drivers reside in the Logo loader itself).

2017/07/30: WHEN: The Swiss Army Knife (OBSOLETE)

UPDATE: The WHEN command has been around for a while, and it turned out that it is way too intimidating for the casual user. Well, Logo is a dynamic language, so I’ve decided to remove the WHEN command again, and to re-instantiate the event handling via the "EVENTS property list. Please refer to the Manual page about event handling for more info.

OBSOLETE! See above I’ve introduced the WHEN command to Logo, which greatly simplifies event programming. WHEN lets you tell Logo to monitor any global variable or any property for changes, and execute a runlist when the value changes. For standard events, I have added these properties for you to monitor:

  1. Mouse coordinates: GRAPHICS panel’s MOUSE property
  2. Mouse button: GRAPHICS panel’s BUTTON property
  3. Touch events: GRAPHICS panel’s TOUCH property
  4. Keyboard input: LISTENER panel’s KEY property
  5. Menu commands: LISTENER panel’s MENU property

Please read the new manual chapter “Working with Input Data” for details.

Please note that the previous way to handle events via the "EVENTS property list is still present; it will, however, be removed in a future release of Logo.

2017/07/25: Connecting to robots

A small, but significant change happened today. If you have been working with Terrapin’s robots, you have also launched the Robots Helper Chrome app. For a while, this app offered a list of Bluetooth devices to pick from. As of today, this list has become part of Terrapin Logo itself. You have a new menu item when you select the Tools menu. The Robots… menu item opens a small dialog that lists all robots known to the system (actually it may list other devices, but it is safe to ignore these). Select the robot that you want to connect with and have fun!

The manual page “Connect to Robots” has more details about how to connect to robots.

2017/05/02: New Help

Today, I posted a new, updated Help panel. Now, you can browse the entire Logo documentation, not only the command or property reference. You can read the manual, or skim the Quick Reference. At the top (or to the left if your Help panel is larger), you have the sidebar that lets you select what to read.

Actually, the Help panel now displays the official documentation that we have on this site, and not a subset anymore!

You can enter your command name into the text field at the top, and Logo will search for the command or property. If Logo does not find what you entered, it searches the entire Logo documentation and reports a list of hits.

Logo is somewhat special about what you type. If Logo recognizes your input to be a command or property, it displays the description of that command or property. If the input does not exactly match the command, Logo will start a search. So, if you, for example, want to search for the word (not the command) FORWARD, you will have to trick Logo; add a space as in ” FORWARD ”, for example; or use double quotes as in ““FORWARD””.

If you enter multiple words, Logo searches for all occurrences of these words.

Did you know? If you want to use a Logo command that requires a file name, like e.g. SETSHAPE, save the typing! Just drag the files that you want to access from the Toolbox, and drop it either into the editor, or the Listener input field.