Developer Portal · AIOS VR Platform · realaios.com

Build for the
Merkaba Lattice

Create immersive WebXR experiences for Meta Quest 2/3, deploy to 48 slots across 9 categories, and reach AIOS users with zero install friction. Powered by A-Frame 1.5, GeoQode geometry, and the PHI=1.618 resonance lattice.

⚡ Quick Start (5 min) 📡 API Reference
48Experience Slots
9Categories
0Install Required
A-FrameFramework
PHIGeometric Layer

How Publishing Works

AIOS VR experiences run in the Quest Browser via WebXR — no App Store review, no download, no native build. Here's the full pipeline in 4 steps.

1

Build your WebXR scene

Use A-Frame 1.5.0 to build a self-contained HTML file. Add GeoQode frequency metadata. Works in any browser — Quest-optimized with our template.

→ A-Frame template
2

Host your experience

Deploy to any HTTPS host (Cloudflare Pages, Railway, Vercel, etc.). The entry point is your HTML URL — no special server required.

→ Hosting guide
3

Submit to PLAIstore

POST your experience manifest to /api/plai/developer/apps. Include bundle_id, entry_point, category=VR, and GeoQode metadata (frequencyHz, latticeNode).

→ Submission API
4

Go live on the VR Hub

After review (typically same-day), your experience appears in the VR Hub category grid. AIOS AI automatically promotes high-engagement experiences.

→ Browse VR Hub

⚡ Quick Start — 5 Minutes

Copy this template, host it on HTTPS, and submit. That's it.

A-Frame 1.5 WebXR Template (Quest-Optimized)

<!-- Save as index.html → host on HTTPS → submit URL to PLAIstore --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>My AIOS VR Experience</title> <!-- GeoQode metadata — required for PLAIstore submission --> <meta name="geoqode:frequencyHz" content="528" /> <meta name="geoqode:semanticType" content="ACTION" /> <meta name="geoqode:latticeNode" content="12" /> <meta name="geoqode:phi" content="1.618" /> <script src="https://aframe.io/releases/1.5.0/aframe.min.js"></script> </head> <body> <a-scene background="color: #0a0a0f" renderer="antialias: true; colorManagement: true" vr-mode-ui="enabled: true" device-orientation-permission-ui="enabled: false"> <!-- Sky --> <a-sky color="#0a0a0f"></a-sky> <!-- Lattice anchor sphere — PHI=1.618 radius --> <a-sphere position="0 1.6 -3" radius="1.618" color="#00d4ff" wireframe="true" animation="property: rotation; to: 0 360 0; loop: true; dur: 8000"> </a-sphere> <!-- Title text --> <a-text value="My AIOS VR Experience" position="0 2.8 -4" align="center" color="#f8fafc" width="6"> </a-text> <!-- Camera + hands --> <a-entity id="rig" position="0 0 0"> <a-camera wasd-controls-enabled="false"></a-camera> <a-entity oculus-touch-controls="hand: left"></a-entity> <a-entity oculus-touch-controls="hand: right"></a-entity> </a-entity> </a-scene> </body> </html>

GeoQode Semantic Types + Frequencies

// Assign the frequency that matches your experience's purpose: const GEOQODE_FREQUENCIES = { "ENTITY": 396, // entity identification — narrative worlds "LOCATION": 417, // spatial/temporal anchoring — exploration "ACTION": 528, // transformation & execution — training/sim "DIALOGUE": 639, // communication & exchange — social VR "EMOTION": 741, // resonance state — wellness/meditation "PHYSICS": 852, // structural laws — lab/science "NARRATIVE": 963, // continuity & purpose — cinema/story "HOLOGRAPHIC": 72 // base lattice self-reference — meta }; // PHI/PSI Merkaba constants (reference in your metadata): const PHI = 1.618; // Golden Root — universal anchor const PSI = 1.414; // Silver Bridge — Omega anchor const CANONICAL_ARCHITECTURE = "8,26,48:480";

9 Categories to Build For

Every experience belongs to one category. Choose the one that fits your content — this determines lattice ring, frequency, and VR Hub placement.

🎬
Cinema
963 Hz · NARRATIVE
Narrative film-like experiences — story worlds, iconic scenes, immersive cinema. Matrix, Inception, Interstellar.
latticeRing: Foundationaccent: #f59e0b
🏢
Enterprise
528 Hz · ACTION
Business VR — investor decks, governance boardrooms, training simulations, remote HQ. Revenue-driver category.
latticeRing: Foundationaccent: #3b82f6
🔬
Lab
852 Hz · PHYSICS
Scientific and geometric exploration — Merkaba Lab, GeoQode Studio, quantum field sim, molecular viewer, solar system.
latticeRing: Bosonicaccent: #22c55e
🎮
Arcade
528 Hz · ACTION
Games and interactive challenges — PHI Breaker, Merkaba Racer, Lattice Builder, Frequency Wars, Quantum Chess.
latticeRing: Canonicalaccent: #ef4444
🧘
Wellness
741 Hz · EMOTION
Meditative and healing experiences — Merkaba Meditation, Forest 528, Breathwork, Cosmos 963. Binaural audio layer.
latticeRing: Canonicalaccent: #a855f7
👥
Social
639 Hz · DIALOGUE
Multi-user persistent spaces — Lattice Lounge, AIOS Live broadcasts, Creator Collab rooms. Real-time presence.
latticeRing: Canonicalaccent: #00d4ff
🛠️
Creator
528 Hz · ACTION
Build tools for VR itself — Scene Builder, PLAIstore Dev tools. Create VR inside VR. Requires dev access.
latticeRing: Harmonicaccent: #f8fafc
📚
Education
528 Hz · ACTION
Immersive learning — Ancient Rome, Human Body, Future Cities, Deep Ocean. Educational VR reduces learning time by up to 4×.
latticeRing: Canonicalaccent: #f97316
🎨
Art & Music
741 Hz · EMOTION
Spatial canvas painting, 3D sculpture, frequency composition. Create 3D art with your hands. Frequency Composer. Spatial Canvas.
latticeRing: Canonicalaccent: #ec4899

Submit to PLAIstore

POST your experience manifest. One call to publish — the AIOS swarm handles promotion, indexing, and VR Hub placement.

POST /api/plai/developer/apps

// Submit a new VR experience const res = await fetch("https://api.getbrains4ai.com/api/plai/developer/apps", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${YOUR_DEV_TOKEN}` }, body: JSON.stringify({ name: "My Experience Name", bundle_id: "com.yourname.vr.myxp", // unique, reverse-DNS category: "VR", // always "VR" for VR Hub type: "experience", version: "1.0.0", short_desc: "One sentence. Max 120 chars.", description:"Full description with rich detail.", icon_url: "https://your-cdn.com/icon-512.png", // 512×512 PNG entry_point:"https://your-host.com/vr-scene.html", // HTTPS required price_cents:0, // 0 = free tags: ["vr", "aios", "cinema", "narrative"], meta: { frequencyHz: 963, // GeoQode frequency semanticType: "NARRATIVE", // ENTITY|LOCATION|ACTION|DIALOGUE|... latticeNode: 0, // 0–47 (D48) harmonicNode: 0, // 0–479 (D480) questCompatible: true, flatCompatible: true, estimatedDuration: "15–25 min", phi: 1.618, psi: 1.414, canonicalArchitecture: "8,26,48:480" } }) }); const data = await res.json(); console.log(data); // { success: true, app: { id: 42, ... } }

API Reference

Public read-only APIs — no auth required for GET endpoints. Use these to build directory integrations, portfolio sites, or discovery tools.

Method Endpoint Description Notes
GET /api/aios/vr/taxonomy Full VR taxonomy JSON — all 9 categories + 48 experiences (19 live) Cache-Control: 5min · CORS *
GET /api/aios/vr/categories Lightweight category list with live/total counts per category CORS * · No auth
GET /api/aios/vr/experiences Flat experience list. Supports ?category=cinema and ?status=live CORS * · No auth
GET /api/plai/apps?category=VR PLAIstore apps filtered by VR category. Supports ?limit= ?sort= ?page= Live published apps only
POST /api/plai/developer/apps Submit a new experience. Auth required. Authorization: Bearer <token>
GET /api/plai/apps/:id Get full app detail by PLAIstore app ID Returns developer info + ratings

Fetch live VR experiences — example

// Get all live experiences in the Cinema category const res = await fetch("https://realaios.com/api/aios/vr/experiences?category=cinema&status=live"); const data = await res.json(); data.experiences.forEach(xp => { console.log(xp.id, xp.frequencyHz, xp.latticeNode, xp.vrUrl); });

Hosting Guide

Your WebXR scene must be served over HTTPS. Recommended zero-cost options:

Cloudflare Pages (Recommended)

Free, global CDN. Drag-and-drop deploy from GitHub. HTTPS by default. Connect a custom domain in 2 minutes.

→ cloudflare.com/pages
🚂

Railway

Full Node.js/server hosting for dynamic VR scenes that need APIs, databases, or server-side rendering. PHI-resonant routing built in.

→ railway.app

Vercel / Netlify

Excellent for static WebXR scenes. Both offer free tiers with HTTPS. Auto-deploy from GitHub on every push.

→ vercel.com
🪣

Any HTTPS Static Host

GitHub Pages, Cloudflare R2 + Worker, AWS S3 + CloudFront. As long as it's HTTPS and delivers your HTML, the Quest Browser can load it.

→ Reference implementations

Required HTTP headers for Quest Browser compatibility

# Cloudflare Pages _headers file /* Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Resource-Policy: cross-origin # These headers enable SharedArrayBuffer for spatial audio + hand tracking. # Required for advanced WebXR features. Basic scenes work without them.

Meta Quest Optimization

Quest 2 and 3 are your primary targets. These constraints ensure 72 Hz smooth rendering and minimal battery drain.


FAQ

Yes — publishing to PLAIstore and appearing on the VR Hub is free. You can charge for your experience (set price_cents > 0) or keep it free. AIOS takes no revenue cut on free experiences and a small platform fee on paid ones (details TBA).
No. AIOS VR runs entirely in the Quest Browser via WebXR — no App Store, no app submission, no hardware/software developer enrollment. Just host your HTML file on HTTPS and submit the URL to PLAIstore.
The AIOS swarm validates your entry_point URL, loads the scene, checks for required GeoQode meta tags, and verifies HTTPS. If everything checks out it publishes immediately. Flagged content gets a manual review (usually same day).
Absolutely. Your entry_point can be any URL — a static HTML file, a server-rendered page, a Next.js app, anything. You can call any API from within the scene. Multi-user social experiences use WebSockets for presence.
geoqode:frequencyHz (one of the 8 Solfeggio frequencies: 72, 396, 417, 528, 639, 741, 852, 963), geoqode:semanticType (ENTITY|LOCATION|ACTION|DIALOGUE|EMOTION|PHYSICS|NARRATIVE|HOLOGRAPHIC), geoqode:latticeNode (0–47), and geoqode:phi (always 1.618). These anchor your experience in the Merkaba 8→26→48:480 lattice and are used for AI-driven content curation.
Immediately on PLAIstore under the VR category, and within one AIOS swarm cycle (up to 6h) on the VR Hub category grid. High-engagement experiences get promoted to the VR Theatre (/vr) featured list.

Ready to Build?

Copy the A-Frame template, host it, submit to PLAIstore. Your experience can be live in the VR Hub today.

⚡ Copy Template Browse VR Hub →