Skip to main content

Desktop sleep-EEG viewer and annotation interface for Luna

Project description

Lunascope

An interactive desktop application for sleep signal visualization, annotation, and analysis — built on the Luna ecosystem.

Lunascope interface


Lunascope is a native desktop application that puts Luna's full analytical engine — the same one used in command-line and Python workflows — behind an interactive graphical interface. Signals, annotations, and derived outputs can be inspected, modified, and re-analyzed within a single session, with changes propagated immediately between the visual layer and the underlying data model.

Lunascope is aimed at sleep researchers, clinical scientists, and trainees who need to review PSG recordings, manage annotations, run automated staging, or explore cohort-level summaries without leaving the graphical environment — while remaining able to drop into scripted or batch analysis at any point.


Features

  • Synchronized multichannel viewer — pan and zoom across hours of EEG, EMG, EOG, and other channels with responsive decimated rendering
  • Hypnogram display — color-coded sleep staging synchronized with the signal viewer
  • Spectral summaries — per-channel power spectra and spectrograms updated on the fly
  • Annotation editor — create, edit, and delete interval annotations; changes are immediately reflected in Luna's data model
  • Automated sleep staging — POPS and SOAP models accessible directly from the interface
  • Cohort-level Explorer — Hypnoscope alignment, annotation summaries, waveform displays, and table-based plots across a sample list
  • Moonbeam NSRR module — import recordings directly from the National Sleep Research Resource into the analysis context
  • Embedded scripting console — execute any Luna command and receive structured result tables without leaving the application
  • Command browser — searchable Luna command and parameter reference with embedded documentation
  • Multiday / actigraphy views — support for EDF+D gapped recordings and long-form waveform review
  • Session save/restore — full application state (layout, loaded files, annotations) persists across launches

Installation

Standalone binaries (no Python required)

Pre-built apps for macOS and Windows are available from the Latest Build release.

macOS

  1. Download Lunascope.app.zip and unzip it.
  2. Move Lunascope.app to Applications (or anywhere).
  3. First launch: right-click → Open to bypass Gatekeeper, then click Open. If you see "will damage your computer" with no Open option, run once in Terminal:
    xattr -dr com.apple.quarantine /path/to/Lunascope.app
    

Windows

  1. Download Lunascope-Windows.zip and unzip it.
  2. Open the Lunascope.dist folder and double-click Lunascope.exe.
  3. First launch: click More info → Run anyway if SmartScreen appears.

These binaries are unsigned. Browser or antivirus warnings are expected. The source is fully open and auditable here.

From PyPI

pip install lunascope
lunascope

If lunascope is on your PATH, that is the simplest launch command. If the console script is not available in your shell, the module entry point is equivalent:

  • python -m lunascope works when python points to the interpreter where lunascope was installed
  • python3 -m lunascope is often the right choice on macOS/Linux when the Python 3 executable is named python3
  • py -m lunascope is the usual Windows launcher form when using Python from python.org

Using a virtual environment (recommended)

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install lunascope
lunascope

Using pipx

pipx install lunascope
lunascope

Requirements

  • Python 3.9–3.14 (CPython; PyPy not supported)
  • Supported platforms: macOS (Intel & Apple Silicon), Linux (x86_64), Windows 10/11 (x86_64)
  • On macOS with Homebrew Python, use a virtual environment or pipx to avoid the "externally managed environment" error.
  • On Windows, install Python from python.org and check "Add Python to PATH".

Updating / uninstalling

pip install --upgrade lunascope   # upgrade
pip uninstall lunascope           # remove
# or with pipx:
pipx upgrade lunascope
pipx uninstall lunascope

Documentation

Resource URL
Luna ecosystem https://zzz.nyspi.org/luna/
Lunascope docs https://zzz.nyspi.org/luna/lunascope/
lunapi notebooks https://github.com/remnrem/luna-api/tree/main/notebooks
NSRR https://sleepdata.org

Contributing

See CONTRIBUTING.md for guidelines on bug reports, feature requests, and pull requests.

Questions / Support

Open an issue on GitHub or write to luna.remnrem@gmail.com.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

lunascope-1.6.4.post1-py3-none-any.whl (534.9 kB view details)

Uploaded Python 3

File details

Details for the file lunascope-1.6.4.post1-py3-none-any.whl.

File metadata

  • Download URL: lunascope-1.6.4.post1-py3-none-any.whl
  • Upload date:
  • Size: 534.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for lunascope-1.6.4.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 cdcbb5359e14159c2ae1e69098f5ebf58a64804e403b99395dc4ce33d4ca814f
MD5 b82a238834cbbd71830153ddd065bff2
BLAKE2b-256 0d45add75436f9151f166835419dd4381133f3fcc46f4b82e59f3a3374265ea4

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