# turtle-world **Repository Path**: mirrors_brion/turtle-world ## Basic Information - **Project Name**: turtle-world - **Description**: Logo interpreter and turtle graphics environment for the web - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Turtle World Turtle World is a Logo interpreter and turtle graphics environment for the web. **TURTLE WORLD IS INCOMPLETE. USE AT YOUR OWN RISK.** See [on-web demo page](https://brionv.com/misc/turtle-world/) to try it out so far. It is intended for use in interactive programming theory demos on the web. Currently it is more or less functional but incomplete. Needs cleanup in the engine, parser, and standard library, and more work on the interactive program flow visualization and debugging. Currently it requires an ES2017-level browser engine with support for `async`/`await` and modules for direct loading, or without modules for `require` usage through a Node bundler. It can probably be transpiled further to support ES5 (IE 11) but this is not currently a priority. The Logo engine may be used in Node.js as well without the turtle graphics component. # Introduction [Logo](https://en.wikipedia.org/wiki/Logo_(programming_language)) is a LISP-based language, with the primary datatypes: * linked lists * words (strings) * numbers * booleans It is best known for its association with "turtle graphics", a drawing metaphor where cursors called "turtles" are virtually driven around the screen with simple commands. It's pretty awesome. Procedure definitions look something like this: ``` to factorial :n if :n > 0 [ ; Each procedure's argument length is known at ; interpretation time, so this is unambiguous. ; The - operator binds more tightly to :n than ; to the * operator. output :n * factorial :n - 1 ] output 1 end ``` ## Goals * Fun "turtle graphics" coding environment for the web * Logo language interpreter, for that classic 1980s feel * Introspect and debug code within the web page, for that 2010s feel * Minimize coupling between the turtle graphics, debugger frontend, and interpreter * Run well in modern web browser engines (ES2017) * Few or no dependencies * Able to run inside an isolated environment such as a sandboxed `