Skip to main content

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. Extras are target-scoped: installing luvatrix[ios] does not install macOS PyObjC bindings, Vulkan bindings, web socket runtimes, or Android-only helpers. iOS ABI-specific packages are prepared by the native scaffold's ios/scripts/setup_ios.sh and copied into the app-owned PyPackages bundle.

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

For an Android-only app, validate against the Android runtime from your development machine:

luvatrix init-app my_android_app --template camera
cd my_android_app
luvatrix validate-app . --render android-emulator
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.

Native package sync also prunes unrelated platform runtimes from app bundles. Android bundles keep the Android runtime tree, iOS bundles keep the iOS runtime tree, and sibling macOS/web/native-template trees are left out unless that target is being packaged.

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.

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.9.tar.gz (784.3 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.9-py3-none-any.whl (837.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: luvatrix-0.1.9.tar.gz
  • Upload date:
  • Size: 784.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for luvatrix-0.1.9.tar.gz
Algorithm Hash digest
SHA256 bdf74dd857d4b3bf2b5089eadb3acdfcb2d21df3a62d4654ee6d5feee9c3ced1
MD5 5f20c058cfd81d9ca70c7defed70e3d0
BLAKE2b-256 88ba5e4beedef8934053e4b6a564702bf715a3d7853d9adc480b5b10ab387f41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: luvatrix-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 837.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for luvatrix-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 228ab4d05663c33b796ecdb647765bef8054bcea44374f510c5a285e20dbdbc3
MD5 e12c010effd8c90b960e341d93f6f8e7
BLAKE2b-256 d430cd00bf3550ff6c30f8506d1a88ccdcf2cc9bde76d19f5a62c63859591e68

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.10

4 files

0.2.9

4 files

0.2.8

4 files

0.2.7

4 files

0.2.6

4 files

0.2.5

4 files

0.2.4

4 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

This release

0.1.9 This release

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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