Elite: Dangerous Long Range Router
Go to file
Daniel S. aec570d055 WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
.chglog chore: more cleanup 2019-09-20 17:44:33 +02:00
docs chore: Setup tox+appveyor, refomat python code, prepare rust code to add branch pruning to search 2019-09-20 17:40:56 +02:00
ed_lrr_gui WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
icon chore(formatting): ran black to format sources 2019-10-23 11:36:45 +02:00
installer feat(installer): switch from LZMA to LZMA2 2019-09-28 21:21:11 +02:00
rust WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
tests WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
.gitignore WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
CHANGELOG.md chore(changelog): Update changelog 2019-10-23 11:38:12 +02:00
LICENSE chore: Setup tox+appveyor, refomat python code, prepare rust code to add branch pruning to search 2019-09-20 17:40:56 +02:00
MANIFEST.in WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
README.md WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
appveyor.yml fix: switch inno setup version in appveyor 2019-09-21 21:25:02 +02:00
benchmark.py WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
benchmark_out.py WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
build_gui.py WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
celery_rabbitmq_setup.ps1 WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
celery_test.py WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
celery_worker.py WIP, to be cleaned and merged 2020-02-06 00:23:23 +01:00
pyproject.toml Initial commit 2019-08-05 01:26:43 +02:00
pytest.ini WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
setup.py WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00
tox.ini WIP 2, to be cleaned and merged 2020-02-06 00:24:24 +01:00

README.md

Elite: Dangerous Long-range router

Features

  • Three different routing algorithms:
    • Breadth-first search:, always finds the shortest route but is quite slow
    • A-Star: has an adjustable tradeoff between speed and quality
    • Greedy search: always picks the next reachable star that's closest to the destination, very fast but very poor quality routes
  • Nice GUI! (made with PyQt5)
  • Two themes! (Dark and Light)
  • Uses data from (EDSM)[https://edsm.net/] for star data
  • Only routes through scoopable systems, no more running out of fuel! (assuming you have a fuel scoop)
  • Precomputing of BFS routing graphs for near-instant routing from your home system to any destination!
  • Routing code written in Rust, so it's quite speedy!
  • Export routes as HTML, JSON, CSV and SVG (WIP!)
  • Automagically copy next jump destination into system clipboard (works by monitoring the player journal file)

Installation

Prerequisites

  • Python:
    • conda (miniconda/anaconda)
    • tox (conda install tox)
    • Inno Setup Compiler
      • Download from here
      • or install via scoop scoop install inno-setup)
  • Visual Studio 2019
  • nightly rust compiler (x86_64-pc-windows-msvc)

Building an installer

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run tox
  3. Grab the installer from installer/Output/

Manual installation

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run the following commands:
conda install pycrypto nuitka
pip install PyQt5 setuptools_rust
python build_gui.py
pip install .

then you can run ed_lrr -h from your command prompt to get help

TODO

Routing

  • Custom weights and filtering for routing

GUI

  • Implement estimate time to completion display for route computation and preprocessing
  • Export route as:
    • JSON
    • HTML (WIP)
    • CSV
    • SVG

Installer

  • Update PATH from installer

Preprocessing

  • Build index over systemsWithCoordinates.json instead of loading it into RAM (reuse modified LineCache from router.rs)

Misc

  • Luigi based Task queue for distributed routing
  • Full route tree computation
    • overlap elimination