Draw objects and run programs in the ARENA using Python!
Project description
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:
pip3 install arena-py
Hello ARENA
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/conix-center/ARENA-core which runs in a browser. That forms a layer, in turn, on top of A-Frame and THREE.js javascript libraries.
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
Changelog
Changelog can be found here.
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.
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 Distribution
Hashes for arena_py-0.1.44-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0bb147b2180866d4a2a59e79472aeeb257f1c082e1e88305ba584b75568d009 |
|
MD5 | 803d5669a6177d85dba2094fd1650b49 |
|
BLAKE2b-256 | 030e5539690552c86b65147d87aec1126db52868964fa1b0763c7a3a9f13bec7 |