A comprehensive exploration of Logitech MX Ink stylus integration across multiple platforms and frameworks for XR applications.
Hand + Controller + Stylus Detection
|
Trigger Pressure Sensitive Spatial Drawing
|
Tip Pressure Sensitive Surface Drawing
|
This repository contains multiple demos showcasing the Logitech MX Ink stylus integration with different technologies for creating interactive 3D drawing experiences in virtual and mixed reality. Each demo demonstrates different approaches to stylus input handling, 3D rendering, and platform integration.
A WebXR demo using A-Frame framework for AR applications. Features real-time 3D stroke rendering with custom stroke geometry and MX Ink controller integration. It includes personal work on A-Frame's source code (PR #5756) to support brush stroke size variation based on controller input pressure and other improvements!
A WebXR demo using Three.js for VR/MR applications. Utilizes TubePainter for creating 3D tube-like strokes with MX Ink stylus integration.
A Unity demo using OpenXR for Meta Quest passthrough applications. Features real-time line drawing with pressure sensitivity and haptic feedback.
A Unity demo using Meta's XR SDK for Quest applications. Provides alternative integration approach using Meta's native XR framework.
All demos share these core capabilities:
- MX Ink Stylus Integration: Full support for tip pressure, front/middle/back buttons
- 3D Drawing: Real-time stroke creation and rendering
- Controller Support: Left and right-handed operation
- XR Integration: Support for VR/AR headsets and passthrough modes
- Logitech MX Ink Stylus: Primary input device for all demos
- XR Headset: Meta Quest 3/3S or other WebXR/OpenXR compatible device
- Development Setup: Varies by project (see individual READMEs)
- Web: A-Frame, Three.js, WebXR Device API
- Unity: Unity 6000.0 LTS+, OpenXR / MetaXR Plugins, XR Interaction Toolkit
- Build Tools: Vite (web), Unity Build System
- XR Standards: WebXR, OpenXR, Meta XR SDK
This work builds on top of:
- Logitech's mxink documentation for Unity
- Diego Marcos's mx-ink-controls native integration for A-Frame
- Fabio Cortés's mx-ink-webxr template for Three.js
For further information, feel free to reach out.


