Tortoise
Compiler and runtime engine for NetLogo models that runs in JavaScript ๐ข
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:
- For reporting issues with the NetLogo Web engine or compiler: https://github.com/NetLogo/Tortoise/issues
- For reporting issues with the NetLogo Web site and UI: https://github.com/NetLogo/Galapagos/issues
- If you're not sure, go with Galapagos and we'll move the issue if necessary.
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:
- Mori [source] [info] [license]
- BrazierJS [source]
- crypto-js [source] [license]
- csv-parse [source] [license]
- iframe-phone [source] [license]
- Tone.js [source] [license]
- vectorious [source] [license]
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:
compilerJVMbuilds the JVM compiler project, used for running some tests.compilerJSbuilds the Scala.js compiler project, which createstortoise-compiler.jsthat can turn NetLogo models and code into javascript.enginebuilds the combination CoffeeScript and Scala.js engine project, creatingtortoise-engine.js, which is required to actually run the result of compiling a NetLogo model to javascript.netLogoWebcontains a JVM project which runs end-to-end tests against the artifacts ofcompilerJSandengine, using the Graal JS javascript runtime. It also contains the task to publish the finished JavaScript compiler and engine artifacts as a package.macrosJS/JVMcontain macros used by Tortoise in widget serialization/deserialization.
For more information see the Tortoise architecture wiki page
Package repository hosting is graciously provided by Cloudsmith.
Contributors
Showing top 12 contributors by commit count.
