Skip to content

Vision: Build Hololand in VR with Brittney

Date: February 15, 2026 Status: Planning Source of Truth: This document (HoloScript repo) + TrainingMonkey


The Vision

Put on a headset. Brittney is there. Tell her what you want. She writes HoloScript, it compiles, and the world materializes around you in real time.

Hololand stops being a TypeScript codebase maintained by hand. It becomes a HoloScript application that Brittney builds, modifies, and evolves — from inside VR.

You (in VR) → Voice/Gesture → Brittney (spatial AI agent)

                              Generates .hsplus/.holo

                              HoloScript Compiler (R3F target)

                              Hololand Runtime (Three.js + WebXR)

                              World updates live around you

Current State Assessment

What Works Today

ComponentStatusDetails
HoloScript Parser✅ v3.4.0Lexer, parser, AST — handles composition, template, object, traits
18 Compiler TargetsR3F, Three.js, Unity, Unreal, WebGPU, USD, URDF, etc.
2,000+ Traits73+ module files, scientific computing, robotics, VR interaction
Runtime Engine50+ subsystems: physics, navigation, WebXR, voice, hot-reload
MCP Server✅ 122 tools (at time of writing)Parse, validate, generate, graph, IDE features, browser control
Studio✅ v0.1.0Next.js scene builder with 5 templates, AI generation
Plugin SystemPluginAPI (sandboxed), PluginLoader, ModRegistry
Brittney Model✅ v4Fine-tuned on ~50K HoloScript examples, Ollama inference
Brittney MCP (IDE)Code generation, diagnostics, autocomplete, explain, fix
Hololand Platform✅ 43+ packagesThree.js/Babylon/PlayCanvas adapters, physics, networking, AR
TrainingMonkey✅ v1.08 MCP coordination tools, knowledge base, multi-agent protocol

What Hololand Is Today (The Legacy Problem)

Hololand Central is ~50 TypeScript/React files that should be ~50 HoloScript files. A migration spec exists (HOLOSCRIPT_FIRST_MIGRATION.md) but hasn't been executed. The 43+ platform packages (@hololand/*) stay TypeScript — they're infrastructure. The application layer on top is what gets rebuilt.

What's Missing

#GapBlocksSeverity
G1system keyword not in parserMigration spec uses system TutorialSystem {} everywhere🔴 Critical
G2Inter-file import not supportedCan't compose multi-file apps (import { X } from "./Y.hsplus")🔴 Critical
G3Browser execution not verified E2E.hsplus → compiled output → running in browser with WebXR🔴 Critical
G4R3F compiler → Hololand bridgeR3F compiler exists, Hololand uses R3F, but no confirmed connection🟡 High
G5Brittney has no spatial/VR interfaceAll tools are IDE-based MCP. No in-world agent presence.🟡 High
G6No VR code workspace compositionNobody has written the .holo that defines a VR dev environment🟡 High
G7Live hot-reload in WebXRHotReloader.ts exists but unverified with active VR sessions🟡 High
G8component keyword for UIMigration spec uses component MobileControls {} — not in grammar🟡 Medium
G9Hololand-specific training dataTrainingMonkey has the plan but 4,200 examples not yet generated🟡 Medium
G10Storage/device APIsstorage.get/set, device.isMobile referenced but unimplemented🟠 Medium

Implementation Plan

Phase 0: Language Foundations (Weeks 1-2)

Goal: HoloScript can express multi-file Hololand applications.

Owner: HoloScript repo (packages/core)

TaskGapDetails
Add system keyword to parserG1New AST node type. Systems are named trait+logic containers that auto-initialize. Syntax: system Name { state {}, on_init() {}, on_update() {} }
Add component keyword to parserG8UI component declarations. Syntax: component Name { props {}, render() {} }
Add import/export module resolutionG2File-level imports: import { X } from "./path.hsplus". Compiler resolves dependencies, bundles output.
Add storage and device built-in APIsG10Runtime built-ins: storage.get(key), storage.set(key, val), device.isMobile, device.prefersReducedMotion()

Validation: Parse and compile the migration spec's app.hsplus root composition without errors.


Phase 1: End-to-End Pipeline (Weeks 3-4)

Goal: A .hsplus file compiles to working browser code via the R3F compiler and runs inside Hololand's runtime.

Owner: HoloScript repo (compiler) + Hololand repo (integration)

TaskGapDetails
Verify R3F compiler outputG3Compile a multi-object composition → verify valid React Three Fiber JSX output
Build Hololand runtime bridgeG4Connect R3F compiler output to @hololand/core runtime initialization. Entry point: createRuntime(composition, { target, mode })
Verify browser executionG3Full loop: .hsplus → R3F → @hololand/renderer → Three.js scene in browser
Verify WebXR sessionG3Same loop but entering immersive-vr mode via @hololand/core's WebXR manager
Hot-reload in VRG7HotReloader.ts watches .hsplus files, recompiles, patches scene graph without dropping WebXR session

Validation: Edit a .hsplus file on disk, see the change reflected in a running VR session within 2 seconds.


Phase 2: Brittney Training (Weeks 3-6, parallel with Phase 1)

Goal: Brittney can generate correct Hololand application code, not just generic HoloScript.

Owner: TrainingMonkey repo

TaskGapDetails
Implement generate_hololand_training MCP toolG9TrainingMonkey enhancement #3: 9 categories, 4,200 examples target
Generate training data for Hololand patternsG9World composition, multiplayer state, portal navigation, UI systems, NPC behaviors, quest chains
Include system/component/import patternsG1,G2,G8Training data must reflect the new grammar additions from Phase 0
Fine-tune Brittney v5G9Incorporate Hololand-specific training into next model version
Validate generation qualityG9Brittney generates valid multi-file Hololand apps that compile and run

Validation: Prompt Brittney with "Create a multiplayer lobby with portals to 3 zones" → she generates valid .hsplus files that compile and render.


Phase 3: Spatial Brittney (Weeks 5-8)

Goal: Brittney exists as an agent inside VR, not just in the IDE.

Owner: HoloScript repo (composition) + Hololand repo (integration)

TaskGapDetails
Create brittney-workspace.holoG6Root composition: VR dev environment with code panels, 3D preview area, Brittney avatar, voice input zone
Implement voice → MCP pipelineG5SpeechRecognizer.ts (exists) → intent extraction → MCP tool calls → result display in VR
Implement gesture → MCP pipelineG5Point at object → suggest_traits. Grab + move → reposition. Pinch → scale.
Brittney avatar with spatial audioG5Animated avatar using @animated @spatial_audio traits, lip-sync with TTS responses
Live code panel in VRG6Floating .hsplus source view that updates as Brittney generates code. Uses @billboard trait.
Scene preview zoneG6Designated area where generated compositions render in real-time as Brittney writes them

Validation: In VR, say "Brittney, add a glowing portal to the casino zone." Brittney's avatar responds verbally, a code panel shows the generated .hsplus, and a portal materializes in the preview zone.


Phase 4: Migration Execution (Weeks 7-10)

Goal: Hololand Central rebuilt in HoloScript.

Owner: Hololand repo

TaskGapDetails
Migrate Main PlazaMainPlaza.tsxmain_plaza.hsplus (per migration spec)
Migrate Casino zoneCasino.tsxcasino.hsplus
Migrate Tutorial systemTutorialOverlay.tsxsystems/Tutorial.hsplus
Migrate Easter EggsEasterEggs.tsxsystems/EasterEggs.hsplus
Migrate Themesthemes/*.tssystems/Themes.hsplus
Migrate MultiplayerNetwork state → systems/Multiplayer.hsplus
Migrate Mobile ControlsMobileControls.tsxcomponents/MobileControls.hsplus
Migrate AccessibilityAccessibility layer → systems/Accessibility.hsplus
Bootstrap entry pointSingle main.ts + app.hsplus root composition

Validation: Hololand Central runs from app.hsplus root composition. ~5 TypeScript files remain (bootstrap only). All content, logic, and behavior is HoloScript.


Phase 5: Self-Building World (Weeks 9-12)

Goal: Brittney can modify the running Hololand from inside it.

Owner: All repos

TaskDetails
Brittney writes to .hsplus files on disk from VRVoice command → generate code → write file → hot-reload picks it up
Version control integrationEach Brittney edit creates a git commit with descriptive message
Rollback mechanism"Brittney, undo that last change" → git revert → hot-reload
Collaborative editingMultiple users in VR, each with Brittney, non-conflicting edits via CRDT
Self-improvement loopBrittney logs failed generations → TrainingMonkey harvests them → next fine-tune improves

Validation: In VR, tell Brittney to add a new zone. She generates the files, the zone appears, you walk into it. Tell her to change the skybox — it changes. Tell her to undo — it reverts. All without leaving VR.


Dependency Graph

Phase 0 (Language)

    ├──→ Phase 1 (Pipeline) ──→ Phase 4 (Migration) ──→ Phase 5 (Self-Building)
    │                                                         ↑
    └──→ Phase 2 (Training) ──→ Phase 3 (Spatial Brittney) ──┘
  • Phase 0 is prerequisite for everything
  • Phase 1 and Phase 2 can run in parallel
  • Phase 3 needs Phase 2 (trained model) + Phase 1 (working pipeline)
  • Phase 4 can start after Phase 1, doesn't need Brittney
  • Phase 5 needs Phase 3 (spatial Brittney) + Phase 4 (migrated Hololand)

Success Criteria

MilestoneMetric
"It Parses"app.hsplus from migration spec parses without errors (Phase 0)
"It Runs"Multi-file .hsplus app renders in browser with WebXR (Phase 1)
"She Knows"Brittney generates valid Hololand-specific code (Phase 2)
"She's Here"Brittney exists as a spatial agent in VR (Phase 3)
"Dogfooding"Hololand Central runs from HoloScript root composition (Phase 4)
"The Dream"Build Hololand from inside Hololand, with Brittney, in VR (Phase 5)

Repository Responsibilities

RepoRole
HoloScriptLanguage features (Phase 0), compiler pipeline (Phase 1), spatial compositions (Phase 3)
TrainingMonkeyTraining data generation (Phase 2), quality validation, knowledge base
HololandRuntime bridge (Phase 1), migration execution (Phase 4), platform packages
AI_WorkspaceBrittney model fine-tuning (Phase 2), uAA2++ protocol coordination

Key Principles

  1. Hololand's 43+ platform packages stay TypeScript. They're infrastructure. Only the application layer migrates.
  2. HoloScript is the source of truth for language capabilities. If the parser can't handle it, the migration can't happen.
  3. TrainingMonkey is the source of truth for training data. Brittney's quality depends on what TrainingMonkey generates.
  4. Don't migrate before the pipeline works. Phase 1 must be validated before Phase 4 begins.
  5. Brittney builds Hololand, not humans. Phase 5 is the end state — manual migration in Phase 4 is temporary scaffolding.

References

Released under the MIT License.