GitPedia

Tortoise

Compiler and runtime engine for NetLogo models that runs in JavaScript ๐Ÿข

From NetLogoยทUpdated May 20, 2026ยทView on GitHubยท

NetLogo Web is a JavaScript implementation of the NetLogo programming language and simulation environment. It runs entirely in a web browser, no plugins or installs required. Run it now at [netlogoweb.org](https://netlogoweb.org) or get more information at [netlogo.org](https://netlogo.org). The project is written primarily in Scala, distributed under the Other license, first published in 2013. Key topics include: netlogo, netlogo-web.

Tortoise

NetLogo Web is a JavaScript implementation of the NetLogo programming language and simulation environment. It runs entirely in a web browser, no plugins or installs required. Run it now at netlogoweb.org or get more information at netlogo.org.

If you're encountering an error with NetLogo Web:

See CONTRIBUTING.md for build setup, testing, and contributing guidelines.

Libraries

The following lists the JavaScript runtime libraries used by Tortoise and the licenses they are released under:

Key Scala libraries include scalaz, play-json, and Scala.js.

Requirements

Tortoise requires GraalVM CE 25 (Java 25). The recommended way to install it is via SDKMAN!. The sbt.sh script will automatically activate the correct GraalVM version via SDKMAN! if it is installed. The ./sbt.sh wrapper also pins the Node.js binary to avoid conflicts with GraalVM's bundled node. Use it instead of invoking sbt directly to avoid any oddities.

Compiling

There are several sbt builds within the Tortoise project. Run them via ./sbt.sh:

  • compilerJVM builds the JVM compiler project, used for running some tests.
  • compilerJS builds the Scala.js compiler project, which creates tortoise-compiler.js that can turn NetLogo models and code into javascript.
  • engine builds the combination CoffeeScript and Scala.js engine project, creating tortoise-engine.js, which is required to actually run the result of compiling a NetLogo model to javascript.
  • netLogoWeb contains a JVM project which runs end-to-end tests against the artifacts of compilerJS and engine, using the Graal JS javascript runtime. It also contains the task to publish the finished JavaScript compiler and engine artifacts as a package.
  • macrosJS/JVM contain macros used by Tortoise in widget serialization/deserialization.

For more information see the Tortoise architecture wiki page

Hosted By: Cloudsmith

Package repository hosting is graciously provided by Cloudsmith.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub โ†’

This article is auto-generated from NetLogo/Tortoise via the GitHub API.Last fetched: 6/28/2026