Skip to main content

Luvatrix runtime and plotting toolkit

Project description

Luvatrix

Luvatrix is a Python app protocol and rendering runtime for building custom apps that can run headless, on macOS, as static browser-side web apps, and through scaffolded native Android/iOS projects.

Install

Base install:

pip install luvatrix

Optional platform/runtime extras:

pip install "luvatrix[macos]"
pip install "luvatrix[vulkan]"
pip install "luvatrix[macos,vulkan]"
pip install "luvatrix[web]"
pip install "luvatrix[android]"
pip install "luvatrix[ios]"

The base package intentionally includes common raster/data dependencies (numpy and Pillow). Platform-specific renderers still live behind extras.

Create An External App

Create a standalone app outside this repository:

luvatrix init-app my_app
cd my_app
luvatrix validate-app . --render headless
luvatrix run-app . --render headless --ticks 1

Build and serve a browser-side app:

luvatrix build-web . --out dist/web
luvatrix serve-web .

Run with macOS rendering:

pip install "luvatrix[macos,vulkan]"
luvatrix validate-app . --render macos
luvatrix run-app . --render macos

Native Scaffolds

Native Android and iOS projects are app-owned. Scaffold them into your app repository when you need native targets:

luvatrix init-native . --target android --out android
luvatrix init-native . --target ios --out ios

Then run with the app-owned native project:

luvatrix run-app . --render android-emulator --native-project android
luvatrix run-app . --render ios-simulator --native-project ios

Native prerequisites:

  • Android: Android SDK, ADB, Gradle/Android Gradle Plugin support, and a configured emulator or device.
  • iOS: Xcode, xcodegen, signing for physical devices, and the iOS Python support assets prepared by the scaffold's ios/scripts/setup_ios.sh.
  • Vulkan on macOS: the Python vulkan binding plus a native Vulkan SDK/loader such as Vulkan SDK or MoltenVK.

App Layout

A minimal Luvatrix app is just:

my_app/
├── app.toml
└── app_main.py

app.toml declares the app id, protocol version, entrypoint, capabilities, platform support, display metadata, and render preferences. The Python entrypoint returns an object compatible with init(ctx), loop(ctx, dt), and stop(ctx), or a subclass of luvatrix.app.App.

Public app-developer API:

from luvatrix.app import App, AppContext, validate_app_install

See docs/app_protocol.md in the repository for the detailed protocol contract.

Project details


Download files

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

Source Distribution

luvatrix-0.1.2.tar.gz (779.2 kB view details)

Uploaded Source

Built Distribution

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

luvatrix-0.1.2-py3-none-any.whl (830.6 kB view details)

Uploaded Python 3

File details

Details for the file luvatrix-0.1.2.tar.gz.

File metadata

  • Download URL: luvatrix-0.1.2.tar.gz
  • Upload date:
  • Size: 779.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for luvatrix-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2b6a53845d0c69da8ae88267574f3164da5688ddf02702b49303a6f9771921ef
MD5 6e46facacb6943e1cf8054923e4813ce
BLAKE2b-256 7d53c29c5c58cc694d5891c8243f10110884826983a36017e1ab0b96dfde3be6

See more details on using hashes here.

File details

Details for the file luvatrix-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: luvatrix-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 830.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for luvatrix-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ffe6db95336eccdb7917da5d5b737daf48f4134659ee80007bb7c182d4c74040
MD5 80028d31dbb516b65386b45d95a11c54
BLAKE2b-256 f1770d603c37802ba09548aba6a0d7120a4c26656f40a9c96f8fa0389c3ab5a2

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