Elysium UI
Python UI without the rectangles.
Status: 1.0 — production / stable. The public API follows strict semver; see the CHANGELOG.
A GPU-accelerated framework for borderless, shaped, animated Python
desktop applications. Skia + wgpu hybrid rendering, designer-and-
developer split via .esk skin files, animation as a first-class
citizen, and a dedicated authoring app (Elysium Designer).
It targets Qt/PySide6 parity for desktop UI while deliberately staying focused on the UI layer — see the scope statement for what's in and what's left to the Python ecosystem.
Documentation
- Framework: docs.elysiumui.com (the
elysiumPython package) - Designer: designer.elysiumui.com
(the
.eskauthoring app)
Both sites build from this repo: docs/ and docs-designer/.
Quick start
pip install elysium-ui
Run the minimum borderless ellipse window:
import elysium as ely
ELLIPSE = "M 0,180 A 180,180 0 1 0 360,180 A 180,180 0 1 0 0,180 Z"
app = ely.App(title="Hello", identifier="dev.example.hello")
window = app.window(transparent=True, title_bar=False,
resizable=False, initial_size=(360, 360))
window.set_hit_test_path(ELLIPSE)
app.run()
A 360 by 360 transparent ellipse window appears with no chrome, clipping clicks to the ellipse.
Four lead demos
The Getting Started tutorials walk through four flagship apps:
| Demo | Time | What you build |
|---|---|---|
| Aurora Clock | 30 min | Borderless transparent ellipse clock with breathing aurora glow |
| Pomodoro Timer | 25 min | Rounded-rect Pomodoro with radial progress + popover settings |
| Stylized Music Player | 90 min | Late-1990s-style irregular faceplate music player skin |
| Butterfly Banner | 20 min | The Elysium logo: a butterfly descends and unfurls the wordmark |
Together they exercise the entire public API: App, Window,
shaped windows, skins, signals, effects, Tweens, Springs,
Timelines, themes, components, brush, PBR, AI, marketplace.
The Designer
The companion authoring app ships as a signed standalone executable per OS:
- macOS:
Elysium Designer.app - Windows:
ElysiumDesigner.exe - Linux:
Elysium-Designer.AppImage
Download from releases, or build from source (see the build-from-source guide).
The Designer's lead tutorial is the
Blue Morpho to Monarch butterfly
texture-transfer workflow, which produces the same .esk the
Butterfly Banner framework demo loads.
Architecture
| Layer | Crate / Package |
|---|---|
| Pure-Rust primitives (geometry, display list, color, time) | ely-core |
| Windowing + input + a11y (winit) | ely-platform |
| Skia paint + wgpu compositor + WGSL effects | ely-render |
.esk parser + naga shader sandbox + Ed25519 signatures |
ely-skin |
| Hot-reload IPC | ely-ipc |
PyO3 bindings (the _native module) |
ely-py |
| Pure-Python framework | python/elysium/ |
| Standalone visual designer | elysium-designer/ |
Build from source
# Native + Python in one command:
maturin develop --release
# Rust workspace tests:
cd elysium-native && cargo test --workspace
# Python suite:
pytest python/elysium/
# Live-window end-to-end test (gated on a display):
ELYSIUM_RUN_WINDOW_TEST=1 pytest tests/test_smoke.py::test_phase0_live_window_end_to_end
Contributors: see CONTRIBUTING.md and the contributing guide on the docs site.
Where the artifacts land
| What | Where | For |
|---|---|---|
| Framework | elysium-native/target/wheels/ |
pip install consumers (developers building apps with the library) |
| Designer (Mac) | dist/macos/ElysiumDesigner.app |
End-users on macOS |
| Designer (Win) | dist/windows/ElysiumDesigner.exe |
End-users on Windows |
The framework directory holds the pip-installable wheel +
universal sdist produced by maturin build --release --sdist. The
Designer directories hold the single-file PyInstaller bundles
produced by scripts/build-designer.sh (or .ps1 on Windows) — no
Python install required to run, since each bundle ships its own
interpreter and the compiled native extension.
Cross-platform wheels + Designer binaries also come out of CI:
trigger release-library.yml for wheels (Win/Mac arm64+x86_64/Linux),
or build-binaries.yml for the Designer matrix.
Examples
| Folder | Purpose |
|---|---|
examples/hello/ |
Minimum-viable app; smoke test |
examples/butterfly/ |
Blue Morpho reference + Monarch model used by both lead tutorials |
examples/components/ |
Single-window showcase of every built-in component |
examples/agent-cursor/ |
Aether-driven borderless cursor companion |
examples/snapshot-relay/ |
Headless /snapshot HTTP relay for tests |
License
Permissive. See LICENSE.
Links
- docs.elysiumui.com (framework)
- designer.elysiumui.com (Designer)
- GitHub Releases
- PyPI
- Issues
- Discussions
Metadata
Release files for elysium-ui 1.3.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 | |
|---|---|---|---|
| elysium_ui-1.3.0.tar.gz | 831.0 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| elysium_ui-1.3.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| elysium_ui-1.3.0-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| elysium_ui-1.3.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| elysium_ui-1.3.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 47.1 MB
Release files / elysium_ui-1.3.0.tar.gz
| Download URL | elysium_ui-1.3.0.tar.gz |
|---|---|
| Size | 831.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
077cb76e87d6880d79f41942a384441c4a0255d9eb50aa1339be1244fb97c6c1
|
|
BLAKE2b-256 checksum How to use checksums |
8118f6772d0ed14ed86772d2b9ca2148b72ee8dda85c9580bda8d1d640a0128d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / elysium_ui-1.3.0-cp310-abi3-win_amd64.whl
| Download URL | elysium_ui-1.3.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 11.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5afe34c58002ee39b500f834a6136f3b048509cb727bb0f722b7387f6038e316
|
|
BLAKE2b-256 checksum How to use checksums |
68b468bc2bce96fdb25e40408ce6c2429ee4bd27afe3be8041ccba7bbb07482f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / elysium_ui-1.3.0-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | elysium_ui-1.3.0-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 15.1 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
ecc2102cc5dd88367806b5128cf4675e4fce41e66af201c914a10ef8d54346a0
|
|
BLAKE2b-256 checksum How to use checksums |
ec1e3b8f6a84ce2f9be7bc0d2b097864f80966f6f7177fac6a74ec4bdf2148fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / elysium_ui-1.3.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | elysium_ui-1.3.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 9.9 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
479065caba025104c46212d3bd1a9e0de5f79517de0689a84be03a32163a4c60
|
|
BLAKE2b-256 checksum How to use checksums |
960f1f4504d3345c1e78d747ecdd3a6dade4d55eda9e9060a4d3c154b5f76011
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / elysium_ui-1.3.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | elysium_ui-1.3.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 10.2 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
9e623c7b8235444d10f30916f351beb05425227bcf85de3e2246f12d6d245d81
|
|
BLAKE2b-256 checksum How to use checksums |
66c4142f376a46f04d6cc4d57d6fd7015a491b6b9fc45f6eceba0032f0a1eafa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log