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.
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.
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.
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.