Vendors
Smart-glasses vendors Extentos supports. Meta smart glasses are the production target as of 2026-07; Android XR is in preview (transport built and emulator-proven, module unpublished, no shipping hardware); Brilliant Labs is in preview (transport built and published, but no hardware has run it and there is no emulator); Apple is a tracked roadmap vendor.
This whole section is the device path — camera, display and vendor device sessions. If you're building a voice app, you need none of it: the microphone and speaker are reached through the phone's own Bluetooth audio routing with no vendor SDK. See choose your path.
Extentos is a smart-glasses development layer that abstracts vendor-specific SDKs behind one capability surface. Today, Meta is the only production vendor — every Meta smart-glasses model (each Ray-Ban Meta and Oakley Meta variant) is supported through the Meta Wearables Device Access Toolkit (DAT, a public developer preview). Android XR is the second vendor — its projected transport is built and proven end-to-end on Google's Android XR emulator, but the module is deliberately unpublished while the platform is in developer preview and no Android XR glasses are buyable yet. Brilliant Labs is the third — its BLE transport is built and published, but nothing has run it on a device and, unlike Android XR, no emulator stands in either. Future Apple smart glasses remain a tracked roadmap vendor — supported in the architecture (vendor-agnostic Kotlin/Swift SDK, swappable GlassesTransport interface) but not implemented as a transport. This page is the consolidated status, the vendor model, and what "Extentos supports vendor X" actually means at any given point.
Status — as of 2026-07
| Vendor | Status | Hardware | What it means today |
|---|---|---|---|
| Meta smart glasses | ✅ Production | Ray-Ban Meta (Gen 1 / Gen 2), Ray-Ban Meta Optics, Ray-Ban Display, Oakley Meta HSTN, Oakley Meta Vanguard, Meta Glasses (2026 line) | Build and ship today. Four transports live (SystemAudioTransport for the vendorless audio baseline, RealMetaTransport for hardware, BrowserSimTransport for the browser simulator, LocalSimTransport — Extentos's own in-memory deterministic local sim, no DAT SDK, no network). |
| Android XR | 🟡 Preview | None buyable yet (audio-first devices expected first) | Projected transport built (:glasses-xr) and proven on Google's Android XR emulator. Module deliberately unpublished — you cannot ship against it today. Simulator sessions accept an Android XR device identity, so app behaviour under it is testable now. |
| Brilliant Labs | 🟡 Preview | Halo orderable ($399; Brilliant says first units ship early August 2026) — the only Brilliant product sold; Frame is the earlier model, no longer sold but still supported | BLE transport, on-device Lua bundle and display translation built and published on both platforms — shipping inside com.extentos:glasses on Android and GlassesCore on iOS — nothing to add on either platform, because Brilliant charges nothing for access. Nothing resolves into it automatically: it claims a session only when a Brilliant device is already bonded. Wire protocol verified byte-for-byte against the vendor's own implementation, but no hardware has run it and there is no emulator either, so you can build against it without yet knowing it works. Simulator sessions accept both devices, so a round 256×256 panel, a display-with-no-speaker, and hardware that cannot traverse focus are all testable now. |
| Apple smart glasses | 🟡 Roadmap | Pending Apple platform availability | No third-party smart-glasses SDK yet; a transport follows once Apple ships one — ecosystem view. |
The status above is verifiable rather than asserted: glassesEnum in mcp-server/src/tools/definitions.ts is DERIVED from the device registry, and accepts "meta", its "meta_rayban" legacy alias, "android_xr" and "brilliant" — the last two marked preview because simulator sessions can be minted for them while their transports ship unpublished. Meta remains the only vendor you can ship against.
The vendor model
Extentos's vendor-portability is a structural property of the architecture, not a marketing promise. Three layers cooperate:
| Layer | What it does | Vendor-specific? |
|---|---|---|
| Customer handler code | Your app's behaviour — wake-phrase matching, photo capture, AI calls, TTS response | No — written against vendor-agnostic SDK primitives (glasses.audio.transcriptions(), glasses.camera.capturePhoto(), glasses.audio.speak(), etc.) |
| Capability vocabulary | The set of abstract primitives the SDK exposes | No — same vocabulary across every vendor |
GlassesTransport interface | The library's internal contract — connect, capturePhoto, videoFrames, speak, etc. | Each vendor has one transport implementation |
Result: a handler written today against meta_rayban runs unchanged on a future android_xr target by switching the transport. No code rewrite, no migration. The transport is the only piece that's vendor-aware.
This is verified in code:
android-library/glasses-core/src/main/java/com/extentos/glasses/core/GlassesTransport.kt— the interfaceSystemAudioTransport.kt,RealMetaTransport.kt,BrowserSimTransport.kt,LocalSimTransport.kt— four implementationsios-library/Sources/GlassesCore/Transport/GlassesTransport.swift— iOS parity
A future Android XR vendor adds RealAndroidXrTransport.kt and RealAndroidXrTransport.swift that implement the same interface against that platform's SDK. Existing apps targeting meta_rayban are unaffected.
For the deep dive on the abstraction, see concepts/capabilities — the vocabulary itself — and concepts/architecture — how the layers fit together.
What "supports vendor X" means at any point
This is worth pinning down explicitly because the word "supports" is doing a lot of work:
| Stage | What's true |
|---|---|
| Architecture-supported | The capability vocabulary and transport interface accommodate the vendor. Meta, Brilliant Labs, Android XR and Apple are all architecture-supported today. |
| Transport-implemented | A concrete transport exists that translates abstract calls to the vendor's SDK or protocol. Meta, Brilliant Labs and Android XR are transport-implemented today. |
| Published | The transport is reachable from a real build. Meta needs com.extentos:glasses-meta (its artifacts sit behind Meta's credentialed repo, so that step is the vendor's toll, not ours). Brilliant needs nothing — it ships inside the SDK on both platforms. :glasses-xr is deliberately withheld: alpha androidx.xr dependencies would force compileSdk 36 on every consumer. |
| Simulator-coverage | The browser simulator reproduces the vendor's runtime behavior. All three vendors' devices are selectable (setSimDevice) with their real panel geometry and input hardware; a vendor with genuinely novel capabilities (say gaze tracking or spatial anchors) would need simulator extensions. |
| Production | Transport-implemented, simulator-covered, validated end-to-end on real hardware. Only Meta is production today — that last step is what Brilliant and Android XR are missing, and for both it is gated on hardware that does not yet exist in our hands. |
Saying "Extentos supports Android XR" today means stages 1, 2 and 4 — built and simulatable, but not installable and not hardware-verified. It does not mean a developer can ship against it. The page for each non-Meta vendor opens with the same eleven-row status table so you can see exactly which stage applies, row by row.
Why vendor portability matters for developers
The strategic case for building on Extentos rather than directly on a vendor SDK:
- One code base, future hardware coverage. When Android XR ships broadly, your existing Extentos handler code runs on it without a rewrite. Apps written directly against Meta DAT need a separate Android XR implementation.
- One simulator, every vendor. The Extentos browser simulator (
BrowserSimTransport) is vendor-agnostic at the protocol layer. Adding a vendor adds support to the same simulator the developer already uses. Apps written directly against vendor SDKs need a different test harness per vendor. - One agent integration. The MCP server's deterministic tool surface generalizes across vendors. The agent uses the same
getPlatformInfo,getCapabilityGuide,validateIntegration,createSimulatorSessionwhether the target ismeta_raybanorandroid_xr. No re-learning the tooling per vendor. - One SDK surface. The capability vocabulary is shared. A developer who has built one Extentos app for Meta knows the SDK for every future vendor. No starting over.
- Bounded vendor lock-in. If Extentos ever doesn't fit, your handler classes are normal Kotlin/Swift code you own. Switching off Extentos is a manageable migration — rewrite the handler calls against the vendor SDK directly.
The cost: vendor-specific features that aren't in the shared vocabulary (e.g., Meta's reserved "Hey Meta" wake word, or custom tap/swipe gestures that aren't in DAT's public surface) aren't accessible through Extentos. Apps that need those features need to use vendor SDKs directly. Most apps don't — most apps use camera, microphone, voice triggers, audio output, and display rendering, all of which are in the shared vocabulary.
How a new vendor gets added
This is bounded engineering work, not a rewrite, because the architecture defines the seams:
- Implement
GlassesTransportfor the new vendor against its SDK —RealXxxTransport.kton Android,RealXxxTransport.swifton iOS. Estimated scope: similar toRealMetaTransport(~1500 lines per platform). - Declare the capability manifest — which abstract capabilities the vendor exposes, with tier markers (
stable,preview, etc.). - Extend the
glassesEnuminmcp-server/src/tools/definitions.ts. - Extend the simulator backend — add the vendor's hardware-event injection UI if it has novel capabilities.
- Validate end-to-end on real hardware.
The SDK surface doesn't change. The MCP tools don't change. Existing developer handler code doesn't change. The new vendor is a drop-in addition.
The reason the roadmap exists rather than the implementations: each vendor's SDK has its own maturity, its own developer-program access requirements, and its own hardware availability. Extentos adds a vendor when adding it makes a real product (transport + simulator + tested hardware), not when the architecture could accept it.
Platforms with a build guide
Extentos ships a production transport for Meta, and a preview transport for Android XR:
-
Meta smart glasses → — the Extentos build guide: capability matrix, hardware tiers, development setup, distribution state, the Meta DAT toolkit, and the launch-partner picture. (For Meta's neutral platform view alongside every other vendor, see Meta in the ecosystem.)
-
Android XR → — the preview status page: what is built, what is deliberately withheld, what you can test today, and why vendor support is opt-in. (Neutral platform view: Android XR in the ecosystem.)
Apple remains on the roadmap and is not buildable with Extentos, so it has no build guide — its neutral coverage lives in the landscape: Apple. Every third-party smart-glasses platform (Snap, Rokid, RayNeo, Vuzix, and more) is mapped in the ecosystem section.
Cross-vendor capability matrix
Comparison across vendors will land here once a second vendor is transport-implemented. Today, with Meta as the only production vendor, the matrix would be one column — see vendors/meta for the full Meta capability table. The shape of the future matrix mirrors the abstract capability vocabulary: rows = capabilities (capture_photo, voice_command, etc.), columns = vendors, cells = tier (production / preview / not exposed).
Frequently asked questions
Which smart glasses can I build for with Extentos today?
Today, only Meta smart glasses — every Ray-Ban Meta variant (Gen 1, Gen 2, Optics, Display) plus Oakley Meta HSTN, Oakley Meta Vanguard, and the 2026 Meta Glasses line. On Meta Ray-Ban Display you can also render UI to the heads-up display via glasses.display.* (see the display capability) — the wearer drives it with captouch + the Neural Band, delivered to your app as abstracted tap events. Meta keeps its first-party system experiences (navigation, WhatsApp, captions) and raw Neural Band access to itself — not third-party rendering. See vendors/meta for the full picture.
Will my Extentos app run on Android XR when it ships?
Architecturally yes — your handler code is vendor-agnostic and the abstraction is built for portability. The Android XR transport now exists and is proven on Google's emulator, so the remaining gaps are publishing the module and Google shipping hardware. No code changes are required on your side; the transport is selected at app start based on which hardware is present. See Android XR for the exact status.
What about Vuzix, RealWear, Even Realities, or other vendors?
Not on the current Extentos support roadmap — but we map the whole third-party smart-glasses landscape (Snap Spectacles, Brilliant Labs, Rokid, RayNeo, Vuzix, Even Realities, INMO, Solos and more) in the ecosystem section, with each platform's SDK, app model, distribution, and AI story. Roadmap inclusion here (a shipped Extentos transport) requires the vendor to have a public SDK Extentos can target, sufficient developer-program access, and meaningful hardware availability. Suggest a vendor by emailing hello@extentos.com with the [vendor] prefix.
Can Extentos add display-rendering support for the Ray-Ban Meta Display variant?
Yes — it already exists. Meta's DAT opened a third-party display path, and Extentos exposes it as glasses.display.* (a declarative node tree on the Ray-Ban Display, shipped in both SDKs and fully sim-testable; on-glasses rendering is live on Android via DAT 0.8.0, with iOS on-glasses delivery in progress). See the display capability. What stays Meta-only is the first-party full-screen system experiences (navigation, WhatsApp, captions — Meta's own apps), not third-party rendering.
Is Extentos vendor-locked to Meta?
No, technically. The architecture is vendor-agnostic by design. In practice, Meta is the only currently-implemented vendor, so today an Extentos developer is targeting Meta. The lock-in is bounded: your handler classes are normal Kotlin/Swift you own. Switching off Extentos is a manageable migration — rewrite the SDK calls against the vendor SDK directly — if it ever becomes necessary.
When will Android XR / Apple be production-supported?
No committed timelines. Vendors are added when adding them makes a real product (transport implementation + simulator coverage + tested hardware), which depends on each vendor's SDK maturity and hardware availability. Android XR has cleared the transport and simulator steps but not the hardware one — nothing is hardware-verified because no Android XR glasses are buyable. See the changelog for actual release activity.
Does my Extentos app target the Meta companion app or run on the glasses?
Extentos apps are phone apps that talk to the glasses over Bluetooth. The phone runs your Android or iOS app; the glasses run Meta's firmware. This is the same model Meta DAT uses — see vendors/meta § Audio architecture for the audio-routing details and concepts/architecture for the system overview.
Related
- Capabilities — the vendor-agnostic vocabulary every vendor's transport implements
- Architecture — how the SDK, library, transports, and backend fit together
- Transport vs app simulation — what each transport actually does, why the layering enables vendor portability
- Quickstart with an AI agent — install Extentos and target Meta today
Related
Meta smart glasses (Meta DAT)
Meta smart glasses developer guide: Wearables Device Access Toolkit (DAT 0.8.0) capabilities, supported models (Ray-Ban Meta, Oakley Meta, Ray-Ban Display), 2026 distribution state, and how Extentos abstracts the toolkit.
Android XR (preview)
Android XR support in Extentos: the projected transport is built and proven on the Android XR emulator, the module is deliberately unpublished while the platform is in developer preview, and no Android XR glasses are buyable yet. What you can test today, and what you can't.
Brilliant Labs (preview)
Brilliant Labs support in Extentos: the BLE transport, on-device Lua bundle, display translation, still capture and microphone ship inside the SDK on both platforms — nothing to add on Android, TransportChoice.brilliant on iOS — but no hardware has run any of it and there is no emulator either. Video is unsupported permanently. Halo and Frame are selectable in the simulator today with their real panel geometry and input.
The third-party smart-glasses landscape
Can you build third-party apps for smart glasses today? A platform-by-platform comparison — Meta, Snap Spectacles, Brilliant Labs, Rokid, RayNeo, Even Realities, Vuzix, Android XR, Apple and more: which have an official SDK, how apps are built and distributed, and whether you can publish publicly.
Android XR
Android XR for third-party developers — SDK access, app model, distribution, capabilities & AI, and where it sits in the 2026 smart-glasses landscape.
Apple smart glasses
Apple smart glasses for third-party developers — SDK access, app model, distribution, capabilities & AI, and where it sits in the 2026 smart-glasses landscape.
Capabilities
The Extentos capability vocabulary — the vendor-agnostic SDK primitives (audio, camera, voice, assistant, display, hardware events) your handler subscribes to.
Architecture
How Extentos fits together — AI agent, MCP server, native Kotlin/Swift SDK, four transports (system audio, Meta DAT, browser sim, local in-memory sim), and the backend.
Transport vs app simulation
Meta's Mock Device Kit simulates the transport layer; Extentos simulates the app layer — voice, photo capture, and the wearing experience. Both matter.
The display capability
Render UI on the Ray-Ban Display with the glasses.display builder DSL in Kotlin and Swift — text, images, buttons, media, and Neural Band input. Gated per device. Beta.
Quickstart with an AI agent
Install the Extentos MCP server and let your AI agent scaffold Meta Ray-Ban smart-glasses capabilities into a native iOS or Android app. Free to start.
Android runtime internals
How the Extentos Android SDK is a thin Kotlin shell over a shared Rust core (uniffi + jniLibs), the four transports and how TransportChoice.Auto resolves, and the Meta DAT bridge.
Meta smart glasses (Meta DAT)
Meta smart glasses developer guide: Wearables Device Access Toolkit (DAT 0.8.0) capabilities, supported models (Ray-Ban Meta, Oakley Meta, Ray-Ban Display), 2026 distribution state, and how Extentos abstracts the toolkit.