It has been a busy year for turtleSpaces. Here are the highlights. You can try all of them in the turtleSpaces IDE, which runs in your browser with nothing to install.

A new IDE in your browser

The web IDE has been rebuilt from the ground up. When you open it, you land straight in a running example project to play with. You only need to sign in when you want to save or publish your work.

The menu bar has been decluttered, and the full changelog now lives under Help → Changelog.

For a guided walk through the newest features, see Using the IDE.

Beginner and Advanced modes

New to turtleSpaces? Turn on Settings → Beginner mode for a simpler IDE. It hides the expert settings (Live Coding, Auto Update, Code Completion, Show System Procedures and the printer) along with the Debug, History and Printer tabs. Turn it off again for the full Advanced IDE. The IDE remembers your choice in this browser. More about the two modes.

Phones and tablets

The IDE now fits smaller screens:

  • On a tablet, or any window that is narrow or taller than it is wide, the 3D view sits on top of the editor instead of squeezing in beside it.
  • On a phone, you see one view at a time. Switch between them with the Canvas | Code | Blocks tabs, and the Execute (Pause/Continue), Stop and Reset buttons stay pinned along the bottom.
  • If you’d rather pinch and zoom around the full desktop IDE, choose Desktop view from the ☰ menu. Phone layout takes you back.

More about phones and tablets.

Blocks from the keyboard

You can now build with Blocks without a mouse. Tab into the workspace and use the arrow keys to move between blocks. Alt+Up/Down moves a block, Enter inserts a new block after it, F2 edits its first input and Delete removes it. In the palette, press Enter on any block to place it at the selected spot without dragging. See all the Blocks keys.

Share your projects

The new Share dialog gives you everything you need to show off a published project: a link to play it, code to embed it on a web page, an Open in the IDE link and a QR code to scan with a phone. Links take the form /weblogo/pubplayer.html?pub=123, and index-react.html?pub=123 opens the project straight in the IDE. These replace the old embed player page; old embed links still work. More about sharing.

Shelly helps with errors

When your code hits an error, Shelly the turtle pops up to help. If you’re signed in, Shelly can ask Claude to explain the error, either on its own or in your code. If you’re not signed in, Shelly gives you a plain-language hint about what went wrong, plus a button to sign in for more help. If you’d rather Shelly stayed out of the way, tick Don’t show this again. You can bring Shelly back any time with Settings → Shelly error help.

Classroom is in the user menu

Teachers now find Classroom in the user menu at the top right, once they’re signed in. It opens the same groups and classroom tools as before.

A friendlier console

  • Free-form lines. The console no longer chops long lines at 80 columns. Each line runs as long as it needs to and wraps to fit the console, and the console shows as many lines as fit. Up and Down move through a wrapped line before stepping through your history. Click anywhere in the line you’re typing to move the cursor there. To get the classic fixed grid back, add ?repl=grid to the IDE’s address.
  • Sized to fit. When the IDE loads, the console picks a font size that fits 80 columns. After that the text stays the same size, and lines wrap when you make the console narrower.
  • settextsize and setcursor are locked in the console. In the normal split-screen console, settextsize no longer changes the console’s size, setcursor has no effect and cursor reports [0 0]. They still work as before in textscreen and overlayscreen.

More about the console.

Blocks

Not ready to type Logo yet? The Blocks editor lets you build programs by snapping visual blocks together, and it stays in sync with the Logo code.

Five languages

The IDE and this website now speak English, Japanese (日本語), French (Français), Spanish (Español) and Polish (Polski). In the IDE, choose yours under Settings → Language.

Classrooms and groups

Teachers can create a group for their class from Classroom, and mark it as a classroom. Students join with a registration link, plus a group password if the teacher sets one. They don’t need an email address. Teachers can also turn off sharing and publishing for a classroom.

Published projects and examples

The Published and Examples browsers now open full-page inside the IDE, so it’s easier to find something to remix.

A wave of shader effects

The setshadertype family grew enormously. Try shader then setshadertype "bokeh, or chain up to 16 effects together, like setshadertype [pencil scanlines].

Each effect in a chain now keeps its own settings, even when the same effect appears twice. setshadersettings no longer takes a shader name. Instead it takes one list, with one entry for each effect in chain order, and the values in each entry go in the order shaderparameters lists them:

setshadertype "pencil
setshadersettings [[100 100 150 45]]

That sets the pencil’s pressure, grain, patch size and stroke jitter. For a chain, give one entry per effect, like setshadersettings [[150 100] [40 200] [5 100]] after setshadertype [charcoal charcoal toon]. shadersettings reports the whole chain in the same form. Programs that used the old setshadersettings "type [...] form need updating. More about shader chains.

  • Hand-made looks: pencil, oil and crayon strokes that follow the forms in your scene, plus sketch, daub, watercolor and emboss.
  • Camera and light: photo, bokeh, gloss, ao, shadow, reflection, fog, outline and sharpen.
  • Retro displays: CMYK halftone, led dot-matrix walls, shadowmask, scanlines, dither, pixel and hexpixel mosaics, glitch, noise and frosted glass.
  • Motion and warp: true long-exposure motionblur (the old CRT ghosting is now its own phosphor type), water, ripple, swirl and kaleidoscope.
  • Squish and fuse: turtlemochi, mochi, merge, blend and focus.

setshaderbackground false keeps effects off the background, so they apply only to what you draw.

New pen styles

  • setpenstyle "rope: a twisted four-strand tube in your pen and fill colours.
  • setpenstyle "looserope: rope that sways gently, as if underwater.
  • setpenstyle "ledrope: a glowing rope light with colour-swapping bulbs.
  • setpenstyle "particle: a stream of drifting, fading sparks.

Terraform: instant planets

The new terraform mode adds fractal noise to the shapes you draw, so an icosphere becomes a planet with seas, continents and plateaus. It works on spheres, cubes, cones, cylinders, funnels and filled 2D shapes. Tune it with setterraformsettings, and turn it off with noterraform.

Live sliders

newslider puts real sliders on top of your running program. Drag one and the bound value changes live. You can bind a container, or a turtle property like heading or pen colour. The companion commands are slider, setslider, sliderp, deleteslider and deletesliders. You’ll also find slider blocks in the Blocks editor’s Environment palette.

Recording and export

  • savemp4 and savewebm now use a much faster encoder. Recording no longer makes your animation stutter, and they cope with fullscreen or window resizes mid-recording.
  • downloadpng captures exactly what’s on screen, including active shaders and animated pen styles.
  • Switching to another browser tab pauses your program and any recording.

Fixes and polish

  • If a procedure is missing a ], you now get a clear error. It can no longer swallow the rest of your program.
  • The new pinmesh command builds a solid 3D shape from your current pins. 3D pinfill shapes also keep their true outline now.
  • randomfillcolor and randompencolor no longer pick the background colour.
  • Big drawing programs run faster, and the camera sees much farther by default. You can tune the view distance with setviewfar and setviewnear.

There are dozens of smaller fixes too. If you find something odd, write to help@turtlespaces.org.