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.
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:
-
Confirm
satsim@0.15.1has been published to npm/jsDelivr. -
Bump
versioninpyproject.toml. -
Build and validate locally:
uv pip install --upgrade build twine uv run python -m build uv run twine check dist/*
-
Publish:
- Manual:
twine upload dist/*(requires a__token__PyPI API token)
- Manual:
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.