GPU-accelerated, freeform Python UI framework.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elysium_ui-1.1.2.tar.gz.
File metadata
- Download URL: elysium_ui-1.1.2.tar.gz
- Upload date:
- Size: 605.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
765500d6f84d67263260357e6d1423cdaf470566694b52e39300be4316733914
|
|
| MD5 |
c1fa468e7caee8e8810b7b3e75126c48
|
|
| BLAKE2b-256 |
a261a2348478fa2855ace7eca6095d4b2d063f2ee97e9f23c06506cd2fecc292
|
Provenance
The following attestation bundles were made for elysium_ui-1.1.2.tar.gz:
Publisher:
release-library.yml on elysiumui/elysium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elysium_ui-1.1.2.tar.gz -
Subject digest:
765500d6f84d67263260357e6d1423cdaf470566694b52e39300be4316733914 - Sigstore transparency entry: 2064094604
- Sigstore integration time:
-
Permalink:
elysiumui/elysium@c2e18d555fb7b2765ab9e6a633cdfe6ddcf9eabc -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/elysiumui
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-library.yml@c2e18d555fb7b2765ab9e6a633cdfe6ddcf9eabc -
Trigger Event:
push
-
Statement type:
File details
Details for the file elysium_ui-1.1.2-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: elysium_ui-1.1.2-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6508c10111c4af8a97473a5f34bee15881e46baf897d7af8c640f159a30b5fc0
|
|
| MD5 |
a15d1e1e8c74a55eaaabe32f2654ff45
|
|
| BLAKE2b-256 |
003943c23809e8b896c917316483ffbce95d2bf2f3c57873c4c824b8aa9c3151
|
Provenance
The following attestation bundles were made for elysium_ui-1.1.2-cp310-abi3-win_amd64.whl:
Publisher:
release-library.yml on elysiumui/elysium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elysium_ui-1.1.2-cp310-abi3-win_amd64.whl -
Subject digest:
6508c10111c4af8a97473a5f34bee15881e46baf897d7af8c640f159a30b5fc0 - Sigstore transparency entry: 2063677157
- Sigstore integration time:
-
Permalink:
elysiumui/elysium@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/elysiumui
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-library.yml@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Trigger Event:
push
-
Statement type:
File details
Details for the file elysium_ui-1.1.2-cp310-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: elysium_ui-1.1.2-cp310-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 13.6 MB
- Tags: CPython 3.10+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8456016d738d0212c0109e4994918614771253293e9aeb948baa30c0a9753e26
|
|
| MD5 |
7aa9628fd1c5b2c58a0169d6e5f466b5
|
|
| BLAKE2b-256 |
52107ee4d5fb3b8c8dc42ca6cad3433b6a0d4e6048aadcea96ac2173b09a1c96
|
Provenance
The following attestation bundles were made for elysium_ui-1.1.2-cp310-abi3-manylinux_2_28_x86_64.whl:
Publisher:
release-library.yml on elysiumui/elysium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elysium_ui-1.1.2-cp310-abi3-manylinux_2_28_x86_64.whl -
Subject digest:
8456016d738d0212c0109e4994918614771253293e9aeb948baa30c0a9753e26 - Sigstore transparency entry: 2063677542
- Sigstore integration time:
-
Permalink:
elysiumui/elysium@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/elysiumui
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-library.yml@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Trigger Event:
push
-
Statement type:
File details
Details for the file elysium_ui-1.1.2-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: elysium_ui-1.1.2-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 9.7 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
903cdd36cf142f1bb5cdd4f1585bf55742885d90532980bf65d2c6a7e8bdd675
|
|
| MD5 |
f4c25e83be1c649efd7cd62833d468e9
|
|
| BLAKE2b-256 |
2d8905295110ecd45b595dbc5ab03f52216863da617bb73480fea4870561e3f7
|
Provenance
The following attestation bundles were made for elysium_ui-1.1.2-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
release-library.yml on elysiumui/elysium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elysium_ui-1.1.2-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
903cdd36cf142f1bb5cdd4f1585bf55742885d90532980bf65d2c6a7e8bdd675 - Sigstore transparency entry: 2063677347
- Sigstore integration time:
-
Permalink:
elysiumui/elysium@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/elysiumui
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-library.yml@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Trigger Event:
push
-
Statement type:
File details
Details for the file elysium_ui-1.1.2-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: elysium_ui-1.1.2-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f33dec17c2cdb5162ae676c12dc146f52340a67aa3ebefd3af829d9eb24fcd4
|
|
| MD5 |
d30522c60ce2c49d9270061a839d1b89
|
|
| BLAKE2b-256 |
48840a35b4763f655d9c3229222f9e746417b8ef164a03025cdf61d777921cfa
|
Provenance
The following attestation bundles were made for elysium_ui-1.1.2-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
release-library.yml on elysiumui/elysium
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elysium_ui-1.1.2-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
2f33dec17c2cdb5162ae676c12dc146f52340a67aa3ebefd3af829d9eb24fcd4 - Sigstore transparency entry: 2063677744
- Sigstore integration time:
-
Permalink:
elysiumui/elysium@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/elysiumui
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-library.yml@67e85a60402164029eb7bb3f4f4757c890c84d67 -
Trigger Event:
push
-
Statement type: