Skip to main content

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 (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.

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

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

arena-py-0.9.2.tar.gz (61.1 kB view details)

Uploaded Source

Built Distribution

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

arena_py-0.9.2-py3-none-any.whl (92.0 kB view details)

Uploaded Python 3

File details

Details for the file arena-py-0.9.2.tar.gz.

File metadata

  • Download URL: arena-py-0.9.2.tar.gz
  • Upload date:
  • Size: 61.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for arena-py-0.9.2.tar.gz
Algorithm Hash digest
SHA256 df77588fd23ab3c938c32b20bd3271aa64829248b68cc4727ce334e282a4833a
MD5 1f3e1a480b4dc70b9092ba792ef477fc
BLAKE2b-256 8e7dabddd92a47e0700e451e16cd7577205c14d13d2a9f03e20757ff0278ddbc

See more details on using hashes here.

File details

Details for the file arena_py-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: arena_py-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 92.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for arena_py-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b0d34e63c8c0bd8d6d51487d69a5d3382f1bf355a6238f23d38fc604fbd33cbb
MD5 15bbe477bf585b82412a52de0e1f2248
BLAKE2b-256 f73fa7b0c298a3f8caf677c0ee8040f170c3acc970f985c290480e63d9fde545

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