Skip to main content

Python library to visualize data in Virtual and Extended Reality using Aframe components.

Project description

AFrameXR

PyPI License

AFrameXR is a declarative Python library for building immersive 3D and XR data visualizations — directly in your browser, with no 3D experience required.

Inspired by Vega-Altair and Vega-Lite, AFrameXR lets you define interactive 3D charts using a simple grammar, and render them directly in the browsers and XR devices — without low-level 3D programming.

Live Demos

https://davidlab20.github.io/TFG/examples/index.html

AR Demo GIF

Features

  • Declarative API — Define charts using a high-level grammar
  • XR Visualization — Explore charts in immersive environments
  • Notebook Integration — Works with Jupyter and Marimo
  • Browser Rendering — Visualize charts directly in the browser
  • Interactive Exploration — Navigate and interact with your data

Why AFrameXR?

AFrameXR brings the declarative visualization paradigm to 3D and XR environments.

  • No need to learn complex 3D engines
  • Inspired by proven visualization tools like Vega-Lite
  • Built for the web and XR from the ground up
  • Clean and concise API for rapid prototyping

Installation

pip install aframexr

Simple example

import aframexr
from aframexr.datasets import data

# Load dataset
cars = data.cars()

# Create a 3D chart
aframexr.Chart(
    cars,
    position="0 2 -5"
).mark_bar().encode(
    x="model",
    y="sales",
    z="doors:N",  # :N indicates a categorical (nominal) field
    color="motor"
)

Simple Example Chart

Supported Environments

  • Jupyter Notebook
  • Marimo Notebooks
  • Modern web browsers (Chrome, Firefox)
  • XR devices

Documentation

Full documentation: https://davidlab20.github.io/TFG/

User Study

Try AFrameXR in a short usability study (~15 min).

If you'd like to participate: Go to experiment instructions

What you'll do

  • Complete a few small visualization tasks
  • No prior 3D experience required

Your feedback is extremely valuable!

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

aframexr-1.0.0.tar.gz (47.4 kB view details)

Uploaded Source

Built Distribution

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

aframexr-1.0.0-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file aframexr-1.0.0.tar.gz.

File metadata

  • Download URL: aframexr-1.0.0.tar.gz
  • Upload date:
  • Size: 47.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aframexr-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2e0e8d26835649d7652be8c804b4b31b3fb9c9a03a282b331d49bafd4c3fea41
MD5 2216facfdd5b2de25285aeb05c7e431f
BLAKE2b-256 a89b1d75849af4d0b55ef6b71d6dc92ada203d9e41337769b4e7353d0838a015

See more details on using hashes here.

File details

Details for the file aframexr-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: aframexr-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for aframexr-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7e138b482520d5c395777b55b232f1ad56cefe4e0fcc7bc555e51b8051063e5
MD5 87838db9132c1525b4ec07e8a81c8055
BLAKE2b-256 2679825f494a23d9a9e5aeaefd11b4eee50c10edb66fcf10706eb4978d572f71

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