DNA //evolutions

Getting Started - Onboarding

This guide helps you reach a first successful run with JOpt in the fastest, least confusing way and points you to the right next steps.

JOpt is available in two consumption models:

  1. Java SDK (via dependency): Run the optimizer directly as a Java dependency (best for learning and full feature coverage). Jump to Option A to get started.
  2. REST / OpenAPI (service): Call TourOptimizer as a service from any client language (Java, Python, C#, …). Jump to Option B to get started.

AI Assistant

To ask anything about the docs and get custom examples, visit our JOpt AI Assistant (GPT). page.


Free license

You can get our free evaluation license here.

Quickstart Sandboxes

For copy/paste Docker commands, use the Quickstart Sandboxes. page.


Read the basics

Basic Elements: The basic elements of JOpt and the nomenclature.

Why start with Java SDK?

  • Maximum feature coverage (Base → Advanced → Expert examples)
  • Best way to understand how models are built and how constraints interact
  • No REST endpoint required (runs in-process)

Basic_Advandced_Expert Examples


Choose your environment

Follow these steps to get the examples running locally. Dependencies will be resolved automatically via Maven.

  1. Clone the repository:
  1. Open in your IDE
  • Import the project into IntelliJ IDEA, Eclipse, or VS Code as a Maven project.
  1. Run an Example
  • Locate any class containing a main() method and run it to see the optimizer in action.

Terminal Commands (if needed):

MethodCommand
HTTPSgit clone https://github.com/DNA-Evolutions/Java-TourOptimizer-Examples.git
SSHgit clone [email protected]:DNA-Evolutions/Java-TourOptimizer-Examples.git
GitHub CLIgh repo clone DNA-Evolutions/Java-TourOptimizer-Examples

What's next?

Proceed with our basic examples, learn more about basic elements or read our tutorial about your first optimization.


Option B — Use the browser sandbox (CodeServer)

If you don’t want to install Java/Maven/IDE yet, use the optional CodeServer sandbox. Everything will be downloaded and set up automatically.

CodeServer Sandbox UICodeServer preview


What success looks like

You should see:

  • an executed optimization run (no exceptions),
  • a result object / report,
  • and at least one route containing an ordered node sequence.

Next, open the Base Examples pages in the hub and follow an examples of your choice, for example First Optimization. The First Optimization Example has a first-optimization whitepaper.


2) Using any other language: REST endpoint + client examples

If you want to use JOpt from Python, C#, Java (generated client) or any other stack, use the REST integration.

The required architecture

  1. TourOptimizer REST endpoint (backend service)
  2. Client examples repo in your language (frontend/client)

The client repos are intentionally “thin” — they teach request creation, submission, and result parsing.
The backend endpoint does the actual optimization.

Step-by-step

Step 1 — Start a local TourOptimizer REST endpoint

Use the backend service repo:

Start it via Docker using the command from Quickstart Sandboxes.

Once running, Swagger UI is typically available at:

Swagger Endpoint UISwagger Endpoint UI

Step 2 — Choose a client repo (clone or sandbox)

Each repo contains:

  • the recommended endpoint configuration pattern,
  • and documentation on how the OpenAPI client models are generated/updated.

Step 3 — Configure the endpoint correctly

If your client runs inside a sandbox container and the REST endpoint runs on your host, use:

  • http://host.docker.internal:8081

Do not use http://localhost:8081 inside the sandbox (that points to the container itself).


Tutorial videos


3) RoutePlanner and GeoCoder (current availability)

JOpt.RouterPlanner and JOpt.GeoCoder are currently offered primarily as SaaS components.

If you want to:

  • geocode large address corpora (GeoCoder), or
  • use hosted routing / travel-time planning (RouterPlanner),

please contact us to discuss access, tenancy, and integration options:


Next steps inside the Documentation Hub

After your first run, we recommend this reading order:

  1. Feature List (capability map): The features JOpt.TourOptimizer supports as a sorted list or as atlas.
  2. Base Examples: Fundamentals and core modeling patterns
  3. Advanced Examples: Real-world constraints and feature combinations
  4. Expert Examples: Customization hooks, performance strategies, deep integration patterns

Troubleshooting checklist

  • REST endpoint running and reachable (check Swagger UI)
  • Correct endpoint inside Docker (host.docker.internal)
  • You are using the right repo for your integration model (SDK vs REST)
  • Start with Base Examples before jumping into complex constraints