Building and Running - NetLogo/Tortoise GitHub Wiki
In order to get started contributing to Tortoise, you'll need to get your system setup to do the building of the libraries (JVM and Javascript) and handle the running of tests. You'll need to install some tools, prep the repository, get GraalVM setup, and then you should be ready to hack away.
Tools
-
Install Git, which is our source control client.
-
Install SBT, which is our build and testing tool.
-
Install Node and NPM, which is used by the the Tortoise engine project. Version 14 is required and 16 recommended.
-
Install SDKMAN!, which is used to manage the GraalVM installation.
-
Install GraalVM CE 25 via SDKMAN!:
sdk install java 25.0.2-graalceThis installs GraalVM Community Edition 25.0.2 (Java 25), which is the Java runtime and JavaScript environment used by Tortoise. The
sbt.shscript will automatically select this version when building.
Repository Setup
- Clone the repository:
git clone https://github.com/NetLogo/Tortoise.git - Navigate into the root of the Tortoise repository directory,
cd Tortoise. - Run
git submodule update --initto make sure themodelssubmodule is initialized.
GraalVM Setup
Tortoise uses the GraalVM SDK in order to use the Graal Javascript compiler and runtime to test the Javascript code that Tortoise generates. The sbt.sh script handles selecting the correct GraalVM version automatically via SDKMAN!.
- In your terminal of choice, browse to the Tortoise repository folder and run
./sbt.shto start thesbtbuild tool for Tortoise.- Run
./sbt.shand notsbt. The./sbt.shshell script uses SDKMAN! to activate GraalVM CE 25 and handles some pathing and other issues that you probably don't want to deal with.
- Run
In the sbt.sh console you started, try running compilerJVM/compile or netLogoWeb/testOnly *TestReporters to confirm everything is working.
GraalVM Versions
We try to keep Tortoise up-to-date with the GraalVM releases, but sometimes there are breaking changes that we haven't accommodated yet. If you have problems getting things working you may try downgrading to a version that was known to work. As of March 2026, Tortoise has been updated to work with GraalVM Community Edition 25.0.2, Java 25 (SDKMAN! identifier: 25.0.2-graalce).
Next Steps
Read over the Tortoise Project Setup and the Architecture for necessary background information. Also, check out the Tortoise Tests you can run to validate your changes.