Skip to main content

Scientific desktop application for lunar rover traversal planning and terrain analysis.

Project description

Cynthium

Scientific desktop application for lunar rover traversal planning and terrain analysis, focused on the lunar south pole.

Cynthium enables loading lunar elevation data (20 m/px LOLA/LRO GeoTIFFs), defining rover traversal paths, and computing terrain statistics along those paths. It is designed for scientific use cases where map resolution, numerical accuracy, and reproducibility are critical.

Note: Cynthium is still in beta. Things may break, change, or be missing. If something doesn't work or you have an idea, open an issue at github.com/osh3276/cynthium/issues and describe what you ran into.

Features

  • Multi-dimensional Visualization: 2D map views and 3D terrain visualisation using GeoTIFF data (LOLA / LRO).
  • Layer Manager: Checkable, reorderable map layers with automatic refresh when the visible layer or preset changes.
  • Advanced Pathfinding: Optimal path routing using A* or Dijkstra, considering distance, terrain slope, solar illumination, meteor flux, and temperature.
  • Rover Simulation: Physics-based traversal simulation including energy consumption, velocity, and slope-based hazards.
  • Illumination Analysis: Sun position calculation and shadow mapping for specific lunar dates and times using NASA SPICE.
  • Site Management: Automated handling of lunar site rasters and data products.
  • Data Export: Export manual paths, autopaths, simulation statistics, and full session settings for further scientific analysis.
  • Custom Data Import: Import GeoTIFF rasters with CRS validation, or load custom sites directly through the file picker.

Installation

Prerequisites

  • Python 3.12 or newer.

pip Install (from PyPI)

pip install cynthium

Editable Install (from source)

git clone https://github.com/osh3276/cynthium.git
cd cynthium
pip install -e .

Key dependencies include: PySide6, numpy, rasterio, pyqtgraph, PyVista, and spiceypy.

Usage

Launch Cynthium from the terminal:

cynthium

Or equivalently:

python -m cynthium

The main window opens with a sidebar on the left, a 2D map view in the centre, and a menu bar at the top.

Workflow

  1. Load a Site — In the sidebar, select a preset lunar site (e.g. Haworth, Shackleton rim, Nobile rim 1). A 20 m/px elevation tile loads automatically, and the display updates immediately.
  2. Select a Map Layer — Use the layer manager to toggle layer visibility and reorder layers. Switching the active layer or preset updates the map automatically.
  3. Plan a Path — Click on the 2D map to place start and goal points, then click Autopath. The optimal route is overlaid on the map. You can tune pathfinding with weights for slope, sun, meteor flux, and temperature, and choose between A* and Dijkstra, two cost strategies (Weighted cost / Minimax), and two path modes (Waypoint-to-waypoint / Start-to-finish). Use Clear path to remove all waypoints, autopath results, and failure markers at once.
  4. Configure the Rover — Select a preset (Curiosity, Perseverance, Apollo LRV, or Artemis SR) or adjust mass, power, wheel friction, and rolling resistance manually in the rover settings panel.
  5. Run a Simulation — Hit Run Simulation to execute a physics-based 1D rover traverse. Results include distance, velocity, traversal time, solar energy received, and feasibility.
  6. Inspect in 3D — Switch to the 3D Terrain View tab to see the path draped over the digital elevation model.
  7. Export Results — Save manual paths, autopaths, simulation statistics, or full settings bundles for external analysis and later reuse.

Troubleshooting

No path found / path too short The start or goal may be on an untraversable pixel (e.g. a shadowed crater interior). Try moving the points to a ridge or sunlit area.

Rover gets stuck on a seemingly gentle slope The friction coefficient determines max climbable slope. Increase friction or reduce rover mass.

Data files not found Cynthium will attempt to download missing files via pooch on first use. Ensure you have an internet connection for the initial fetch.

Related Work

SEXTANT is a MATLAB-based tool with similar capabilities. Cynthium aims to provide an open-source Python alternative with a focus on extensibility, high performance, and modern GIS compatibility.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cynthium-1.5.1b0.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cynthium-1.5.1b0-py3-none-any.whl (83.5 kB view details)

Uploaded Python 3

File details

Details for the file cynthium-1.5.1b0.tar.gz.

File metadata

  • Download URL: cynthium-1.5.1b0.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cynthium-1.5.1b0.tar.gz
Algorithm Hash digest
SHA256 e0d3bc14dc8082e5b165ff8ddb20edbaaaed91c49023f84a4f1a09059a903b1b
MD5 da9c0e94fa0a91bcaa0d964375e362f0
BLAKE2b-256 624e6b905c5455f87e3473b5c62eeea1e89f1e639d3b94aa9fb7a7a6099ccc31

See more details on using hashes here.

File details

Details for the file cynthium-1.5.1b0-py3-none-any.whl.

File metadata

  • Download URL: cynthium-1.5.1b0-py3-none-any.whl
  • Upload date:
  • Size: 83.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cynthium-1.5.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d3aa1efb4eaef429474b877e9f9042af8725423f062c33b8bba260b0a50d2b7
MD5 44d2019564f1046d2d39145da0c600b7
BLAKE2b-256 7c6c9aba8b385d91710b3d6ea03dfd9fc70c14f40ccf9e5005929f377d5bb763

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page