Skip to main content

Building from Source

This page covers the build procedure for each SIMPLE component from a freshly cloned repository. Each component has a fully independent build system.


WebPlatform

Prerequisites

RequirementVersionNotes
Node.js≥ 22The production packager (@yao-pkg/pkg) targets a node24 runtime internally
npmbundled with Node.js

Development build

npm install
npm start

npm start uses concurrently to run two processes simultaneously:

  • The Vite dev server for the React frontend (with hot-module reload).
  • The Node.js backend via tsx (requires a manual restart on backend file changes).

The admin UI is served at http://localhost:8000 and the WebSocket ports are live immediately.

Production build

For the full production build procedure (executables for Linux, Windows, macOS, Brotli compression, runtime requirements), see Building the WebPlatform Executable.


GAMA Plugin

Prerequisites

RequirementVersionNotes
JDK21Tested with Adoptium distribution
Maven3.xStandard Maven installation; Tycho is fetched from Maven Central
NetworkP2 repositories are fetched at build time

Repository layout

The Maven build is rooted at GAMA Plugin/eu.project-simple.parent/. The parent POM declares three child modules:

ModuleContents
gaml.extension.unityEclipse plugin bundle — all GAML source code and models
gaml.feature.unityEclipse feature descriptor for installation
eu.project-simple.siteP2 update site generation

Build

cd "GAMA Plugin/eu.project-simple.parent"
mvn verify

The build resolves dependencies from two remote P2 repositories at build time:

RepositoryURL
Eclipse 2025-03https://download.eclipse.org/releases/2025-03
GAMA 2025-06https://updates.gama-platform.org/2025-06

The plugin requires GAMA version 2024.6.0 or later (declared as [2024.6.0,) in the parent POM).

Build output

The P2 update site is produced in eu.project-simple.site/target/repository/. To install the locally built plugin into GAMA for testing, use Help > Install New Software and point it at that directory path (as a file:// URL).

Target platforms

Tycho builds the plugin for four platform configurations:

OSWindowing systemArchitecture
LinuxGTKx86_64
WindowsWin32x86_64
macOSCocoax86_64
macOSCocoaaarch64

Unity Template VR

Prerequisites

RequirementVersionNotes
Unity Editor6000.3.0f1Exact version required — see warning below
Android Build SupportInstall as a Unity module via Unity Hub
Visual Studio CodeRecommended C# editor module
warning

Unity Editor version 6000.3.0f1 is required exactly. Newer Unity 6 patch releases may break compatibility with the template's package dependencies. Install this specific version from the Unity Hub archive.

Obtaining the project

The Unity Template is distributed as a ZIP of the Unity Template VR/ project directory. Download it from the GitHub Releases page of the simple.toolchain repository, or clone the Unity-6 branch:

git clone --branch Unity-6 https://github.com/project-SIMPLE/simple.toolchain.git

Then open Unity Template VR/ as a project in Unity Hub.

Windows-specific setup

On Windows, Assets/Plugins/websocket-sharp.dll must be present. The repository already includes it. If it is missing after a manual file operation, download the DLL from the websocket-sharp GitHub releases and copy it to Assets/Plugins/.

Building the APK for Meta Quest

  1. Open the Unity Template VR/ project in Unity Editor 6000.3.0f1.
  2. Open Build > Build Profiles.
  3. Select Android in the platform list.
  4. Click Switch Platform and wait for the asset import pipeline to complete.
  5. Connect your Meta Quest headset via USB with developer mode enabled.
  6. Click Build and Run to compile and deploy the APK.
tip

Developer mode must be enabled on the headset before deploying. See the Meta Quest Developer Mode guide for setup instructions.


Documentation site

Development

cd documentation
npm install
npm start

The site is served locally at http://localhost:3000.

Production

npm run build

Output is a static site in build/. Serve it with any HTTP server or deploy it as a static site.