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 (~10–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-0.10.5.tar.gz (47.3 kB view details)

Uploaded Source

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: aframexr-0.10.5.tar.gz
  • Upload date:
  • Size: 47.3 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-0.10.5.tar.gz
Algorithm Hash digest
SHA256 052d8d6cb82c3d84906631dd22f8147dfa58ed6935f789e4596335a389b3ee23
MD5 3e9afd6349cefb6e9c0741125d5c81c9
BLAKE2b-256 1e9b15961280e3bc1165c8d21b1e1cb1d7a22534039fc1022c3f9fd17ca6094b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aframexr-0.10.5-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-0.10.5-py3-none-any.whl
Algorithm Hash digest
SHA256 195e13d5d7bd04fe4a21fad5e7e853025900ac56ddbd4abb7b3775f39e510e4d
MD5 1bbf4de2474c4e56c42f1b3cc7dbf910
BLAKE2b-256 d62f75c2b8ff3ece87ed6c693f7dd6fca6132659bc186bbfa33f2dba333d7819

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