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-1.0.0b1.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.0b1-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aframexr-1.0.0b1.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.0b1.tar.gz
Algorithm Hash digest
SHA256 fc10e11a8f779eea562f2e0e2a5828208fcef5c21f3c2184e301dec8ac7934b5
MD5 de01b2009c360bd9e6534c9a141dc25c
BLAKE2b-256 45723ed31fffa1e2369abd2c4cd827e878336b8582ae7817ba24278a50e0df15

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aframexr-1.0.0b1-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.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 8d151055759a0577b524d56f50f1b1c9e73848b67f157aaa808134eade1b28ca
MD5 70343369ee59437ee1295d35ec2f890e
BLAKE2b-256 a04873f643976ee72e5a9e5b9c593d5a36b1fc3492418557383e77036e609e06

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