Skip to content

Repository files navigation

Splash

Getting lost is optional.

Splash is a static, browser-only route planner for EVE Online. It calculates routes locally from a bundled EVE universe graph, connects multiple characters through EVE SSO, sends routes through ESI, and tracks each online pilot’s progress from live location data.

Routes, settings, character authorizations, and last-known locations are stored in the browser’s IndexedDB. The app has no application server or shared database.

What it does

  • Connects multiple EVE characters with Authorization Code + PKCE.
  • Checks character online status every 15 seconds.
  • Polls locations and ships for online characters every 8 seconds.
  • Calculates Shortest, Safest, and Less secure routes locally with A*.
  • Creates saved routes without requiring pilot assignments.
  • Sends one saved route to any number of online pilots; each pilot receives the complete route.
  • Sets direct, unsaved routes for one or more online pilots.
  • Supports ordered solar-system, NPC-station, and known structure stops.
  • Tracks station and structure destinations through docking completion.
  • Can automatically remove completed pilots from local tracking without changing their EVE autopilot route.
  • Generates region and constellation coverage routes.
  • Supports draggable ordered stops, autocomplete, system avoidance, and custom one-way connections.
  • Uses Jita as the initial default system to avoid; the default list is editable in Settings.
  • Uses active public Thera and Turnur connections from EVE-Scout when selected.
  • Stages route delivery around wormhole traversals and displays the signature to use.
  • Includes a local Tripwire-style wormhole chain map with live pilot presence, non-gate jump detection, signature import, and connection health.
  • Can submit every calculated gate system to override EVE's own route choice.
  • Imports and exports route plans without including character tokens.

See Routing and route delivery for the complete routing model.

Run locally

Requirements:

  • Python 3 for the local static server
  • Node.js 22 or newer for tests and SDE tooling

Start the app:

python3 serve.py

Open http://localhost:59832.

Run the test suite:

npm test

EVE application configuration

The EVE application uses the Authorization Code flow with PKCE and these scopes:

  • esi-location.read_location.v1
  • esi-location.read_online.v1
  • esi-location.read_ship_type.v1
  • esi-structures.read_character.v1
  • esi-ui.write_waypoint.v1

Registered callback URLs:

  • Local: http://localhost:59832/callback
  • Production: https://splash.zzeve.com/callback

Public client IDs, callback URLs, ESI endpoints, and attribution are deployment configuration in js/config.js. They are not user settings. The app does not use or store a client secret.

Every ESI request identifies the app with:

Splash / <deployment URL> / Squizz Caphinator

The local deployment uses http://localhost:59832; the production deployment uses https://splash.zzeve.com.

Universe data

The app ships data/universe.json, a compact browser graph built from CCP’s JSONL SDE. It contains:

  • Solar systems and stargate adjacency
  • Coordinates and security status
  • Regions and constellations
  • NPC station stops used by autocomplete
  • J-space class, environmental effect/type, and destination-labeled static wormhole codes from data/wormhole-systems.json

Regenerate the J-space metadata from a wh_effects.csv export:

node scripts/import-wormhole-systems.mjs \
  --input /path/to/wh_effects.csv \
  --out data/wormhole-systems.json

The importer reads sig2class.csv beside the input CSV by default; pass --destinations /path/to/sig2class.csv to override it.

Update the installed SDE locally:

npm run update-sde

Force a fresh download and rebuild:

npm run update-sde -- --force

The updater builds into a temporary directory, validates the graph, runs the tests, and replaces the installed data only after validation succeeds. The GitHub Action performs the same update automatically when CCP publishes a new build.

See Deployment and data maintenance for hosting, callback routing, SDE build commands, storage, and operational details.

Project layout

index.html                  Main application
auth.html                   EVE SSO callback UI
og-image.png                Open Graph and large-card social preview
css/app.css                 Application styles
js/app.js                   UI and workflow orchestration
js/domain.js                Route and progress domain logic
js/route-planner.js         Universe graph and A* routing
js/esi.js                   EVE SSO and ESI client
js/eve-scout.js             Thera and Turnur connection client
js/presence.js              Online, location, and ship synchronization
js/map-domain.js            Wormhole map data, scanner parsing, and layout
js/map-view.js              SVG chain map and system inspector
js/db.js                    IndexedDB storage
scripts/                    SDE build, validation, and update tools
tests/                      Node test suite

See Wormhole mapping for mapper behavior, auto-mapping safeguards, visual conventions, and the boundary between the local map and a future shared map.

Privacy

Character tokens remain in this browser and are sent only to EVE SSO and ESI as required. Route exports exclude tokens and character records. Removing a character deletes its authorization and assignments from the browser. Erase all local data removes the app’s IndexedDB database.

License

Zero-Clause BSD.

Releases

Packages

Contributors

Languages