Skip to main content

arena-py

Draw objects and run programs in the ARENA using Python!

Documentation

The ARENA Python library user guide and tutorials: ARENA Documentation: Python.

Setup

Install package using pip (https://pypi.org/project/arena-py/):

pip3 install arena-py

Hello ARENA Example Program

Run the hello.py example:

cd examples
python hello.py

hello.py

from arena import *

scene = Scene(host="arenaxr.org", scene="example")

@scene.run_once
def make_box():
    scene.add_object(Box())

scene.run_tasks()

arena-py Library

The above is the simplest example of an ARENA Python program. This library sits above the ARENA pub/sub MQTT message protocol: JSON messages described in more detail at https://github.com/arenaxr/ARENA-core which runs in a browser. That forms a layer, in turn, on top of A-Frame and THREE.js javascript libraries.

Alternate Server Usage

In addition to the above, you may deploy your own ARENA webserver if you do not wish to use our test deployment server at arenaxr.org. You can follow our setup guidelines in arenaxr/arena-services-docker, to run your own server.

Authentication

We have added protection to the ARENA MQTT broker to limit access to change your scenes, which requires Python programs to supply authentication through a Google account.

Sign-In Desktop OS

If you have a web browser available, the arena-py library Scene(host="myhost.com") will launch a web browser the first time and ask you for an account to authenticate you with, before opening a client MQTT connection.

Sign-In Server/Headless OS

For headless environments, the arena-py library Scene(host="myhost.com") will provide you with a url to cut and paste in a browser anywhere, ask you for an account to authenticate you with, and show you a code you can enter on the command line, before opening a client MQTT connection.

Scripts

Some helper script aliases have been added in this library to help you manage authentication and quick command-line (CLI) publish and subscribe to the ARENA.

Sign-Out

arena-py-signout

Show Permissions

arena-py-permissions

CLI Subscribe to Scene Messages

arena-py-sub -mh arenaxr.org -s example

CLI Subscribe to Custom Topic

arena-py-sub -mh arenaxr.org -t realm/g/a

CLI Publish a Scene Object Message

arena-py-pub -mh arenaxr.org -s example -m '{"object_id": "gltf-model_Earth", "action": "create", "type": "object", "data": {"object_type": "gltf-model", "position": {"x":0, "y": 0.1, "z": 0}, "url": "store/models/Earth.glb", "scale": {"x": 5, "y": 5, "z": 5}}}'

CLI Help

arena-py-pub --help
arena-py-sub --help

Documentation

arena-py Repository Files

Metadata

Release files for arena-py 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arena-py 1.6.0
File Size Uploaded Provenance
arena_py-1.6.0.tar.gz 95.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for arena-py 1.6.0
File Interpreter ABI Platform
arena_py-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 224.7 kB

Release files / arena_py-1.6.0.tar.gz

Download URL arena_py-1.6.0.tar.gz
Size 95.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8902e02a61666088ad312487cab71958f0d5111622251deb672cc5604258ec9d
BLAKE2b-256 checksum
How to use checksums
cb4b9172b54850dbf119971938ff1db8b8318075008f847188e6cda073cf9acd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / arena_py-1.6.0-py3-none-any.whl

Download URL arena_py-1.6.0-py3-none-any.whl
Size 129.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81d4c5faaa147c00f8076cd7855cb9ddec1962800e44aca7fb6a94fb7e7c54a7
BLAKE2b-256 checksum
How to use checksums
af049260fe22168835a4a303f29df3331b6df540f0d0d05d853ae05fdc0686f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for arena-py 1.6.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.

Release history Release notifications | RSS feed

This release

1.6.0 This release

2 release files No provenance

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