Skip to main content

SatViz

SatSim source code was developed under contract with AFRL/RDSM, and is approved for public release under Public Affairs release approval #AFRL-2022-1116.

The SatSimJS widget for Jupyter and Marimo.

alt text

Installation

pip install satviz

or with uv:

uv add satviz

Usage

SatViz loads SatSimJS from https://cdn.jsdelivr.net/npm/satsim@0.15.1/dist by default. Override satsim_base to point at a mirrored or locally served SatSimJS bundle that contains satsim.js and Cesium assets.

Jupyter

from satviz import SatSimJS
w = SatSimJS(height="1000px")
w

SatViz is a browser-embedded scenario widget. It does not wrap SatSimJS SimulationRuntime; applications that need authoritative sessions, runtime commands, or external control should run that SatSimJS runtime separately.

Marimo

import marimo as mo
from satviz import SatSimJS

widget = SatSimJS(height="900px")
w = mo.ui.anywidget(widget)
w

Example Notebook

From a checkout of this repository, install the development dependencies:

uv sync --group dev

The example notebook reads SATSIM_BASE from the environment and defaults to http://127.0.0.1:8080/dist for local development.

For local SatSimJS development, serve the SatSimJS repository root in a separate terminal:

cd $SATSIMJS_PATH
npm run build:cdn
npm run serve

Then open the notebook:

SATSIM_BASE=http://127.0.0.1:8080/dist uv run --group dev env PATH="$PWD/.venv/bin" jupyter lab examples/satviz_example.ipynb

Configuring fullscreen rectangle

Reserve space for headers/footers by customizing the overlay fullscreen rectangle from Python. Values can be numbers (pixels) or CSS strings.

from satviz import SatSimJS

w = SatSimJS(
    height="600px",                      # height when not fullscreen
    fullscreen_rect={
        "top": 64,                       # e.g., top banner height
        "left": 0,
        "width": "100vw",                # or e.g., "100vw"
        "height": "calc(100vh - 96px)",  # subtract top+bottom banners
        "zIndex": 10000,                 # optional overlay stacking order
    },
)
w

Release

To build and publish a release to PyPI:

  1. Confirm satsim@0.15.1 has been published to npm/jsDelivr.

  2. Bump version in pyproject.toml.

  3. Build and validate locally:

    uv pip install --upgrade build twine
    uv run python -m build
    uv run twine check dist/*
    
  4. Publish:

    • Manual: twine upload dist/* (requires a __token__ PyPI API token)

Metadata

Release files for satviz 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for satviz 0.5.0
File Size Uploaded Provenance Actions
satviz-0.5.0.tar.gz 8.9 kB Without provenance Details for satviz-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for satviz 0.5.0
File Interpreter ABI Platform Actions
satviz-0.5.0-py3-none-any.whl Python 3 none any Details for satviz-0.5.0-py3-none-any.whl

Total release size: 18.5 kB

Release files / satviz-0.5.0.tar.gz

Download URL satviz-0.5.0.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5b9b9823a39d03eeca71336e68ee4a0eef56de53ddbf49ba0a1080ac48d2a3fa
BLAKE2b-256 checksum
How to use checksums
03fedf351438786bd2b17f4f85fc77dc94ddd068b504d1ad8669b827ef21324d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Release files / satviz-0.5.0-py3-none-any.whl

Download URL satviz-0.5.0-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c2e6f9333e40014cfde84b45b87599aa8d31d6f64684cc71b196e45240c37344
BLAKE2b-256 checksum
How to use checksums
45ecc5ec96598dbbc6e7095b92e81bed0cc6f974adcf7fb6e1c36ebfcefe4f87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.0

Security for satviz 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page