Nav Tool – FeaturelisteNav Tool – Feature List
v1.1.1 · Code-verifiziert · Stand Oktober 2026v1.1.1 · Code-verified · As of October 2026
Diese Liste dokumentiert alle implementierten und quellcode-verifizierten Features des DTNR Nav Tool in Version 1.1.This list documents all implemented and source-code-verified features of the DTNR Nav Tool in version 1.1.
NAV TOOL — FEATURES
DTNR Nav Tool
Die zentrale Desktop-Anwendung (PyQt6) für Karte, Navigation, Routenplanung, Tracking und Rennteilnahme auf dem Mond Daymar.
| Eigenschaft | Details |
|---|---|
| Framework | PyQt6 mit Dark Theme und dunkler Windows-Titelleiste |
| Auflösung | Min. 1920×1080, Max. 2560×1440 |
| Tabs | Team · POIs · Routen · Nav · Track · Progress |
| Menüs | Datei · Karte · Rennen · Einstellungen |
| Splash Screen | Daymar-Landschaft mit Logo und Ladebalken beim Start |
DTNR Nav Tool
The central desktop application (PyQt6) for map, navigation, route planning, tracking and race participation on the moon Daymar.
| Property | Details |
|---|---|
| Framework | PyQt6 with dark theme and dark Windows title bar |
| Resolution | Min. 1920×1080, Max. 2560×1440 |
| Tabs | Team · POIs · Routes · Nav · Track · Progress |
| Menus | File · Map · Race · Settings |
| Splash Screen | Daymar landscape with logo and loading bar on startup |
Anmeldung, Lizenz & Sprache
- Anmeldung mit dem DTNR-Konto direkt in der App (Profilbereich im Seitenpanel oder Einstellungen → Anmelden / Lizenz…)
- Profilbereich mit Name, Avatar, Supporter-Badge und Lizenzstatus
- Hardwaregebundene Lizenz (Ed25519-signiert) — gilt nur für den Rechner mit der übermittelten Hardware-ID
- Lizenzdialog: Hardware-ID mit Kopieren-Button, Lizenz anfordern direkt aus der App, Lizenzschlüssel eingeben und aktivieren
- Lizenzdialog öffnet sich nach der Anmeldung automatisch, wenn noch keine gültige Lizenz vorhanden ist
- 48-h-Testphase einmalig pro Rechner (Hinweis mit Restzeit)
- 48-h-Offline-Modus: Ist der Lizenzserver nicht erreichbar, bleibt eine bereits bestätigte Lizenz 48 Stunden gültig
- Ohne gültige Lizenz ist die Oberfläche gesperrt — nur Anmelden / Lizenz… und Beenden sind verfügbar
- Abmelden deaktiviert die lokale Lizenz und sperrt die Oberfläche
- Nav Tool und Race Tool werden getrennt lizenziert
- Benutzeroberfläche auf Englisch oder Deutsch (Einstellungen → Sprache), Standard: Englisch; vollständig wirksam nach Neustart
Sign-in, License & Language
- Sign-in with the DTNR account directly in the app (profile area in the side panel or Settings → Login / License…)
- Profile area with name, avatar, supporter badge and license status
- Hardware-bound license (Ed25519-signed) — only valid for the computer whose hardware ID was submitted
- License dialog: hardware ID with Copy button, Request License directly from the app, Enter License Key and activate
- License dialog opens automatically after sign-in if no valid license is present yet
- 48 h trial once per computer (notice with remaining time)
- 48 h offline mode: if the license server cannot be reached, a previously confirmed license stays valid for 48 hours
- Without a valid license the user interface is locked — only Login / License… and Quit are available
- Logout deactivates the local license and locks the user interface
- Nav Tool and Race Tool are licensed separately
- User interface in English or German (Settings → Language), default: English; fully effective after restart
Karte & Viewport
- Interaktive Satellitenkarte (Mercator-Projektion) via QGraphicsView
- Zwei umschaltbare Kartenebenen: Daymar Primary und Daymar Secondary
- Horizontale Endloskarte — nahtloses Wrap-Around-Rendering in X-Richtung
- Mausrad-Zoom mit Anchor under Mouse + vertikaler Zoom-Slider
- Panning via Drag (ScrollHandDrag)
- Kartengitter (Breiten-/Längengradnetz) ein-/ausschaltbar
- Koordinatenanzeige an Mausposition
- Rechtsklick → Koordinaten in Zwischenablage kopieren
- Animierte Ansichtszentrierung (650 ms, InOutCubic-Easing) bei POI-/Waypoint-Auswahl
Map & Viewport
- Interactive satellite map (Mercator projection) via QGraphicsView
- Two switchable map layers: Daymar Primary and Daymar Secondary
- Horizontal infinite map — seamless wrap-around rendering in X direction
- Mouse wheel zoom with Anchor under Mouse + vertical zoom slider
- Panning via drag (ScrollHandDrag)
- Map grid (latitude/longitude grid) toggleable
- Coordinate display at mouse position
- Right-click → Copy coordinates to clipboard
- Animated view centering (650 ms, InOutCubic easing) on POI/waypoint selection
Navigation
- Navigation Ein/Aus mit Routen-Waypoint oder POI als Zielquelle
- Auto-Heading-Modus — automatischer Sprung zum nächsten Waypoint bei konfigurierbarem Abstandsschwellwert
- Follow-Modus — Karte zentriert sich auf Position; nach manuellem Pan Rezentrierung nach 5 s
- Nav-Tab-Anzeige: Nächstes Ziel, Peilung, Kurs, Entfernung, ETA
- Kartenvisualisierung: Positionsmarker, Ziellinie, Kompassring mit Gradmarkierungen und Kurslinie
- Mini-Kompass-Widget im Status-Overlay (Peilwinkel, Kursmarker)
- Einstellungen → Navigation: Auto-Heading-Schwellwert konfigurierbar
Navigation
- Navigation On/Off with route waypoint or POI as target source
- Auto-Heading mode — automatic jump to next waypoint at configurable distance threshold
- Follow mode — map centers on position; after manual pan, recenters after 5 s
- Nav tab display: Next target, Bearing, Heading, Distance, ETA
- Map visualization: Position marker, Target line, Compass ring with degree markings and heading line
- Mini compass widget in the status overlay (bearing angle, heading marker)
- Settings → Navigation: Auto-heading threshold configurable
Routenverwaltung
- Laden und Bearbeiten von bis zu 10 gleichzeitigen Routen
- Routen laden/erstellen/entfernen, Lock/Unlock-Modus pro Route
- Farbauswahl pro Route via Color Picker
- Dirty-Status-Tracking (ungesicherte Änderungen markiert mit *)
- Baumansicht mit Route + Waypoints, editierbare Waypoint-ID
- Waypoint-Neuordnung via Rechtsklick-Drag-Reorder
- Waypoints einfügen: darüber/darunter, via Kartenpunkt, nahe Segment
- Waypoints auf der Karte verschieben (Rechtsklick-Drag auf Marker)
- Dynamische Neunummerierung und Entfernungsberechnung (Haversine)
- Kontextmenü: Für Navigation verwenden, Speichern, Speichern unter, Entfernen, Sperren/Entsperren
Offizielle Rennstrecke
- Laden/Anzeigen einer separaten offiziellen Route, unabhängig von Bearbeitungsrouten
- Rendering: Breiter Korridor, dünne Mittellinie, Richtungspfeile, Flaggen (Start/Ziel), Labels an Waypoints
- Im Nav-Tab: Richtung/Entfernung zum nächsten Etappenziel + verbleibende Gesamtdistanz
- Wrap-Rendering über Kartengrenzen
Route Management
- Load and edit up to 10 routes simultaneously
- Load/create/remove routes, Lock/Unlock mode per route
- Color selection per route via color picker
- Dirty status tracking (unsaved changes marked with *)
- Tree view with route + waypoints, editable waypoint ID
- Waypoint reordering via right-click drag reorder
- Insert waypoints: above/below, via map point, near segment
- Move waypoints on the map (right-click drag on marker)
- Dynamic renumbering and distance calculation (Haversine)
- Context menu: Use for navigation, Save, Save as, Remove, Lock/Unlock
Official Race Route
- Load/display separate official route, independent of editing routes
- Rendering: Wide corridor, thin center line, direction arrows, flags (start/finish), labels at waypoints
- In the Nav tab: Direction/distance to next stage target + remaining total distance
- Wrap rendering across map boundaries
Points of Interest (POIs)
- Geladen aus CSV-Datei (Daymar_POIs.csv)
- POI-Tab mit Suchfeld, Alle aktivieren/Alle deaktivieren, Checkbox pro POI
- Spalten: POI-Name, Peilung (Bearing), Entfernung
- Marker-Rendering auf Karte mit Wrap-Unterstützung
- Selektions-Synchronisation zwischen Liste und Karte (Hervorhebung mit Ringen)
- Ausgewählter POI als Navigationsziel verwendbar
Points of Interest (POIs)
- Loaded from CSV file (Daymar_POIs.csv)
- POI tab with search field, Enable all/Disable all, checkbox per POI
- Columns: POI name, Heading (bearing), Distance
- Marker rendering on map with wrap support
- Selection synchronization between list and map (highlighting with rings)
- Selected POI usable as navigation target
Tracking — Routenaufzeichnung
- Tracking Ein/Aus, automatische Erstellung einer neuen Track-Datei
- Duplikat- und Sprungfilter für Bereinigung unplausibler Punkte
- Tracking-Baum mit Punktnummer, Lat/Lon, Zeitstempel pro Punkt
- Kontextmenü: Punkt entfernen, Umbenennen, Speichern, Speichern unter
- Track als Route speichern (Konvertierung)
- Rendering: Gestrichelte Linie mit hohem Kontrast (schwarze Basis + farbige Striche)
- Farbe und Sichtbarkeit konfigurierbar
- Entfernungsberechnung entlang des Trackpfads
Tracking — Route Recording
- Tracking On/Off, automatic creation of a new track file
- Duplicate and jump filter for cleaning implausible points
- Tracking tree with point number, Lat/Lon, timestamp per point
- Context menu: Remove point, Rename, Save, Save as
- Save track as route (conversion)
- Rendering: dashed line with high contrast (black base + colored dashes)
- Color and visibility configurable
- Distance calculation along track path
Tag/Nacht-Rendering
- Dynamische Terminatorlinie (gestrichelt) an der Tag-/Nachtgrenze
- Nacht-Overlay — halbtransparente Abdunklung, prozedural berechnet
- Astronomisches Zeitmodell: Simulationsstart, Zeitskala, Rotationsparameter (Daymar-Quaternion)
- Konfigurationsdialog: Terminator sichtbar, Nacht-Overlay sichtbar, Aktualisierungsintervall (Sekunden)
- Sanfter Dämmerungsübergang (kein harter Schnitt)
- Daymar-Rotationskorrektur nach dem SC-Patch vom Mai 2026 (Δ = −70,52°) für Live-Position und Tag/Nacht-Overlay
Day/Night Rendering
- Dynamic terminator line (dashed) at the day/night boundary
- Night overlay — semi-transparent darkening, procedurally computed
- Astronomical time model: simulation start, timescale, rotation parameters (Daymar quaternion)
- Configuration dialog: Terminator visible, Night overlay visible, Update interval (seconds)
- Soft twilight transition (no hard cut)
- Daymar rotation correction after the SC patch of May 2026 (Δ = −70.52°) for live position and day/night overlay
Status-Overlay
- Halbtransparentes, frei verschiebbares Panel (DraggableOverlayPanel)
- Ein-/ausschaltbar via Karte → Overlay, persistente Einstellung
- Statusanzeigen: Positionsupdate, Transponder, Tracking, Navigation, Auto-Heading, Follow-Modus
- Mini-Kompass mit Richtung und Peilung zum Ziel
- Countdown bis zur nächsten Positionsabfrage (große rote Warnanzeige in den letzten 10 s)
- Navigationswerte (Ziel, Richtung, Entfernung) bei aktiver Navigation
Status Overlay
- Semi-transparent, freely movable panel (DraggableOverlayPanel)
- Toggleable via Map → Overlay, persistent setting
- Status indicators: Position Update, Transponder, Tracking, Navigation, Auto-Heading, Follow Mode
- Mini compass with direction and bearing to target
- Countdown until next position query (large red warning display in the last 10 s)
- Navigation values (target, direction, distance) when navigation is active
Progress-Tab — Leistungsanalyse
- Durchschnittsgeschwindigkeit aktuell (gleitender Durchschnitt) und gesamt
- Diagramm: Geschwindigkeit über Distanz (SpeedDistanceGraphWidget)
- Diagramm: Routen-Geschwindigkeitsprofil (RouteSpeedProfileGraphWidget) mit Waypoint-Markern
Progress Tab — Performance Analysis
- Average speed current (moving average) and overall
- Chart: Speed over Distance (SpeedDistanceGraphWidget)
- Chart: Route Speed Profile (RouteSpeedProfileGraphWidget) with waypoint markers
Integrierter Transponder
- Vollständig integriert — kein eigenständiges Transponder-Tool erforderlich
- Steuerung via Team-Tab: Transponder Ein/Aus
- Automatische Positionsabfrage via /showlocation
- Positionsquellen: Clipboard-Parsing + UDP-Empfang (Queue + Receiver Thread)
- XYZ → Lat/Lon/Höhe-Transformation mit Rotationsmodell
- Einstellungen → Positionssystem: Update-Intervall, Chat Delay, Key Delay, Freeze Workaround
- Hotkeys: Einzelne Positionsabfrage, Positionsupdate Ein/Aus, Tracking Ein/Aus, Transponder Ein/Aus
- Race-UDP-Presets (z.B. DTNR-Europe)
- Tray-Icon-Unterstützung via pystray (optional)
- Laufzeitplan mit next_position_update_unix für Deadline-orientiertes Senden
Integrated Transponder
- Fully integrated — no standalone Transponder Tool required
- Control via Team tab: Transponder On/Off
- Automatic position query via /showlocation
- Position sources: Clipboard parsing + UDP reception (Queue + Receiver Thread)
- XYZ → Lat/Lon/Height transformation with rotation model
- Settings → Position System: Update interval, Chat Delay, Key Delay, Freeze Workaround
- Hotkeys: Single position update, Position Update On/Off, Tracking On/Off, Transponder On/Off
- Race UDP presets (e.g. DTNR-Europe)
- Tray icon support via pystray (optional)
- Runtime schedule with next_position_update_unix for deadline-oriented sending
Rennteilnahme
- Renndialog: Geplante Rennen ansehen, registrieren, beitreten
- WebSocket-Kommunikation mit dem Race Server (race_list, register, join, leave, ready)
- Bei Beitritt automatische Übernahme: offizielle Route, Update-Intervall, Transponder-Pflicht
- Rennsteuerung im Team-Tab: Route teilen, Team Ready
- Countdown-Overlay (RaceCountdownOverlay) mit Großschrift-Anzeige
- Automatische Aktivierung von Transponder + Positionsupdate bei Rennstart
- Race-Heartbeat-Timer: periodische Team-Updates an den Server
- Schutz-/Sperrlogik: Transponder/Positionsupdate können serverseitig gesperrt werden
- Bei Rennende: Leave an Server, Wiederherstellung der vorherigen offiziellen Route
Race Participation
- Race dialog: View scheduled races, register, join
- WebSocket communication with the Race Server (race_list, register, join, leave, ready)
- On join, automatic adoption: official route, update interval, transponder requirement
- Race controls in Team tab: Share route, Team Ready
- Countdown overlay (RaceCountdownOverlay) with large-font display
- Automatic activation of Transponder + Position Update at race start
- Race heartbeat timer: periodic team updates to the server
- Protection/lock logic: Transponder/Position Update can be locked server-side
- On race end: Leave to server, restoration of the previous official route
Experimentell: Screen OCR, HUD-Erkennung & Autopilot
Experimentell: Diese Funktionen sind noch in Entwicklung — Verhalten und Einstellungen können sich in kommenden Versionen ändern. Der Autopilot sendet Tastatureingaben an Star Citizen; nur unter ständiger Beobachtung verwenden.
Screen OCR — Positionsgewinnung
- Zweite Positionsquelle neben /showlocation: Bildschirm-OCR (Tesseract, separate Installation) liest CamPos x/y/z aus dem SC-Overlay r_DisplayInfo
- Automatische Kalibrierung mit Multi-Monitor-Erkennung (erfasst das SC-Fenster, sucht die Textregion)
- Kalibrierungs-Ergebnisdialog: Screenshot-Vorschau, erkannter Bereich, Testlesung, OCR-Rohtext; Aktionen Speichern, Erneut versuchen, Schließen
- Auto-Kalibrierung beim Aktivieren der Screen-OCR-Quelle, falls noch keine Kalibrierung vorhanden ist
- Automatisches Senden von r_displayinfo 1 / r_displayinfo 0 an die SC-Konsole beim Quellenwechsel
- Positionsquelle zur Laufzeit umschaltbar: showlocation (Clipboard) ↔ Screen OCR (Einstellungen → Positionsgewinnung)
- Kalibrierungsdaten (Region, Monitor-Index) in der Config persistiert
HUD OCR — Kurs, Geschwindigkeit, Höhe
- Live-Erkennung von Kompasskurs, Geschwindigkeit und Höhe aus dem SC-HUD via RapidOCR (ONNX Runtime)
- Drei parallele OCR-Engines (Kompass, Speed, Altitude)
- Otsu-Binarisierung und Sliding-Window-Medianfilter zur Ausreißer-Unterdrückung
- Pitch- und Roll-Erkennung über die Pitch-Ladder-Linien
- Konfigurierbarer OCR-Takt (Standard 5 Hz)
HUD-Kalibrierung — Parallax-Assistent
- HUD kalibrieren (Parallax-Assistent): Multi-Snapshot-Kalibrierung über mehrere Fahrmanöver (neutral, beschleunigen, bremsen, rollen, pitchen)
- Union-Bounding-Box aller beobachteten HUD-Positionen
- Interaktive, farbcodierte Regions-Platzierung (Kompass, Speed, Ladder) auf dem Screenshot
- HUD-OCR-Debug ein/aus: Debug-Overlay mit erkannten Bildausschnitten und Live-Messwerten
Autopilot
- AUTO NAV (Kurshaltung, F5) — hält den Kurs auf das aktuelle Navigationsziel über Links-/Rechts-Pfeiltastenimpulse
- ALT HOLD (Höhenhaltung, F6) — hält die Höhe beim Einschalten über Hoch-/Runter-Pfeiltastenimpulse
- PID-Regler (P/I/D mit Integral-Limit) für Kurs und Höhe
- Einstellungen → Autopilot in Tabellenform: PID-Parameter (Kp, Ki, Kd) für Heading und Höhe, Toleranzen (Standard 1° / 50 m), Tastenpuls min/max (Standard 20 / 150 ms), Regelintervall (Standard 500 ms)
- Zustand im Status-Overlay; Hotkeys im Hotkey-Dialog konfigurierbar
Experimental: Screen OCR, HUD Recognition & Autopilot
Experimental: These features are still in development — behaviour and settings may change in upcoming versions. The autopilot sends keyboard input to Star Citizen; only use it under constant supervision.
Screen OCR — Position Capture
- Second position source alongside /showlocation: screen OCR (Tesseract, separate installation) reads CamPos x/y/z from the SC r_DisplayInfo overlay
- Automatic calibration with multi-monitor detection (captures the SC window, searches the text region)
- Calibration result dialog: screenshot preview, detected region, test reading, OCR raw text; actions Save, Retry, Close
- Auto-calibration when activating the screen OCR source if no calibration exists yet
- Automatically sends r_displayinfo 1 / r_displayinfo 0 to the SC console on source switch
- Position source switchable at runtime: showlocation (clipboard) ↔ Screen OCR (Settings → Position Source)
- Calibration data (region, monitor index) persisted in the config
HUD OCR — Heading, Speed, Altitude
- Live recognition of compass heading, speed and altitude from the SC HUD via RapidOCR (ONNX Runtime)
- Three parallel OCR engines (compass, speed, altitude)
- Otsu binarisation and sliding-window median filter for outlier suppression
- Pitch and roll detection from the pitch ladder lines
- Configurable OCR rate (default 5 Hz)
HUD Calibration — Parallax Wizard
- Calibrate HUD (Parallax Wizard): multi-snapshot calibration across several manoeuvres (neutral, accelerate, brake, roll, pitch)
- Union bounding box of all observed HUD positions
- Interactive, colour-coded region placement (compass, speed, ladder) on the screenshot
- Toggle HUD OCR Debug: debug overlay with detected image regions and live readings
Autopilot
- AUTO NAV (heading hold, F5) — holds the course to the current navigation target via left/right arrow key pulses
- ALT HOLD (altitude hold, F6) — holds the altitude at activation via up/down arrow key pulses
- PID controllers (P/I/D with integral limit) for heading and altitude
- Settings → Autopilot as a table: PID parameters (Kp, Ki, Kd) for heading and altitude, tolerances (default 1° / 50 m), key pulse min/max (default 20 / 150 ms), control interval (default 500 ms)
- State shown in the status overlay; hotkeys configurable in the hotkey dialog
Hotkeys
- Systemweite Hotkeys — funktionieren auch im Hintergrund
- Aktionen: Einzelne Positionsabfrage, Positionsupdate Ein/Aus, Tracking Ein/Aus, Transponder Ein/Aus
- Autopilot (experimentell): AUTO NAV Ein/Aus (F5), ALT HOLD Ein/Aus (F6)
- Key-Capture-Dialog für freie Tastenbelegung
- Standardwerte-Reset-Button
- Timer-basiertes Hotkey-Polling
Hotkeys
- System-wide hotkeys — work even in the background
- Actions: Single position update, Position Update On/Off, Tracking On/Off, Transponder On/Off
- Autopilot (experimental): AUTO NAV On/Off (F5), ALT HOLD On/Off (F6)
- Key capture dialog for free key assignment
- Defaults reset button
- Timer-based hotkey polling
Dateien & Persistenz
- Dateiformate: .route (JSON mit WPoints), .track (JSON mit Zeitstempeln)
- Konfiguration: config.json unter %LOCALAPPDATA%/DTNR-NavTool/config/
- Standard-Ordner für Routen und Trackdaten konfigurierbar
- Dev vs. Frozen-Mode Pfadlogik (PyInstaller)
- Logging unter %LOCALAPPDATA%/DTNR-Tool/logs/
- Lizenz-Envelope-Format unter %LOCALAPPDATA%/DTNR-Tool/licenses/
Files & Persistence
- File formats: .route (JSON with WPoints), .track (JSON with timestamps)
- Configuration: config.json under %LOCALAPPDATA%/DTNR-NavTool/config/
- Default folders for routes and track data configurable
- Dev vs. Frozen mode path logic (PyInstaller)
- Logging under %LOCALAPPDATA%/DTNR-Tool/logs/
- License envelope format under %LOCALAPPDATA%/DTNR-Tool/licenses/