Skip to content

Open-source AR assistant for smart glasses - voice control, AI agents, and seamless integrations

License

Notifications You must be signed in to change notification settings

Feras797/matrix-ar

Matrix-AR

Open-source SDK for Even Realities G1 smart glasses.

License: MIT Python 3.10+

Features

  • BLE Connection - Connect to G1 glasses via Bluetooth Low Energy
  • Text Display - Send text to the HUD instantly
  • Image Rendering - Display BMP images and ASCII art
  • Live Transcription - Real-time speech-to-text (G1 mic or computer mic)
  • Voice Assistant - Wake-word activated AI assistant ("Jarvis")
  • Touch-to-Talk - Temple arm gesture control
  • Extensible Tools - Places, transit, weather, calendar integrations

Architecture

Architecture

Quick Start

Installation

git clone https://github.com/Feras797/matrix-ar.git
cd matrix-ar

# Core only
pip install -e .

# With all features
pip install -e ".[all]"

Environment

# Required for transcription
export ELEVEN_LABS_API=your_key

# Optional for AI agent
export ANTHROPIC_API_KEY=your_key
export GOOGLE_MAPS_API_KEY=your_key

Run

matrix-ar
# or
python -m matrix_ar

Commands

Command Description
/jarvis Voice assistant ("Jarvis Start/Stop")
/jarvis-touch Touch-to-talk mode (hold temple arm)
/live G1 microphone transcription
/live-local Computer microphone transcription
/img [fast|turbo] Display ASCII art image
/sample1, /sample2 Display sample BMP
/clear Clear display
/status Connection status
/quit Exit

Architecture

matrix_ar/
├── core/              # BLE + display
│   ├── connection.py  # G1Connection, scan, connect
│   ├── display.py     # send_text, send_image
│   └── protocol.py    # Packet building
├── audio/             # Mic + transcription
│   ├── microphone.py  # enable_mic, AudioBuffer
│   └── transcription.py # ElevenLabs STT
├── agent/             # AI integration
│   ├── claude.py      # Claude API
│   ├── jarvis.py      # Voice mode
│   └── jarvis_touch.py # Touch mode
└── tools/             # Google API tools

Basic Usage

import asyncio
from matrix_ar.core.connection import scan_g1_devices, connect_to_pair
from matrix_ar.core.display import send_text

async def main():
    # Scan for glasses
    devices = await scan_g1_devices()
    pair = list(devices.values())[0]

    # Connect
    connection = await connect_to_pair(pair)

    # Display text
    await send_text(connection, "Hello from Matrix-AR!")

    # Disconnect
    await connection.disconnect()

asyncio.run(main())

Documentation

Document Description
Architecture System design and data flow
BLE Protocol G1 protocol specification
API Reference Public API documentation
Agent Integration Claude and MCP setup
Development Development guide

G1 Protocol Summary

Property Value
Service UUID 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
Display 576x136 pixels, 1-bit BMP
Audio LC3 codec, 16kHz, 10ms frames
Microphone Right lens only
Heartbeat Every 5 seconds

Requirements

  • Python 3.10+
  • Even Realities G1 glasses
  • Bluetooth adapter
  • ElevenLabs API key (transcription)
  • Anthropic API key (agent, optional)
  • Google Maps API key (tools, optional)

Optional Dependencies

pip install -e ".[glasses]"    # LC3 audio codec
pip install -e ".[agent]"      # Claude + MCP
pip install -e ".[local-mic]"  # Computer microphone
pip install -e ".[dev]"        # Testing + linting

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.

Links

About

Open-source AR assistant for smart glasses - voice control, AI agents, and seamless integrations

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages