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
-
arena/: The ARENA Python library.
-
examples/: Canonical examples of ARENA functions from the documentation.
-
examples/objects: Examples on how to create various arena-py objects.
-
examples/attributes: Examples on how to declare an add various arena-py object attributes.
-
examples/legacy/: Deprecated demos for arena-py < 0.1.0.
-
examples/legacy/digital-twins/: Deprecated demo of digital twins of physical spaces for arena-py < 0.1.0.
-
system-tests/: Workouts and tests for arena-py.
-
tools/: Reusable tools for any ARENA scene.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| arena_py-1.6.0.tar.gz | 95.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.