BASEMENT OS

C:\BASEMENT\INTRO.TXT

Lower Level 2.0 — A VRChat Basement Reimagined Through AI-Assisted Development

Lower Level 2.0 is my ongoing experiment in applying AI-assisted workflows to real VRChat world development. What began as a nostalgic 2000s-inspired basement scene has evolved into a fully interactive environment powered by systems-level thinking, continuous iteration, and AI-enhanced tooling.

// SYSTEM NOTE:

To be clear—I didn't use AI to build the walls or the 3D furniture; I commissioned the 3D model base providing detailed plans to recreate the basement I hung out in in college.

I worked with AI to install a sort of smart home system, and make the basement 'alive'. The physical 3D space was a commissioned asset was a great canvas. What I built in with AI was the logic—the interactive terminal, the networking, and the systems that actually create a living, breathing place.

Lower Level 2.0 VRChat Basement World

C:\BASEMENT\DEVLOG.TXT

December 7, 2025 - Breakthrough: Full Stack AI Workflow achieved with 9-agent swarm + UdonSharpAssetRepair discovery. The missing automation link that completes the development loop. → Read the milestone
December 7, 2025

MILESTONE: Full Stack AI Workflow - The Complete System

Two breakthroughs in one day. This is the moment everything clicked.

Morning - The Assembly Line: Launched my first agent swarmMultiple AI agents working in parallel on different tasks simultaneously with custom agent.md persona files. Nine specialized agents building different Basement OS modules simultaneously - DT_Core, DT_Shell, DT_Theme, weather app, GitHub app, each with injected expertise. This is horizontal scaling - volume without sacrificing architecture.

First agent swarm with 9 parallel agents and custom agent.md files

The Gap: Agents could write perfect code, but Unity wouldn't compile it. Files sat on disk, ignored. I was still manually clicking "Compile" in the Inspector. The automation loop was broken.

Afternoon - The Missing Link: Found UdonSharpAssetRepair.cs - the linchpin I'd been missing. This utility script forces Unity to acknowledge programmatically-written files, generates the .asset files, and triggers compilation. It's the bridge between "AI writes code" and "Unity actually runs it."

Full automation achieved with UdonSharpAssetRepair as the missing link Creating comprehensive SOP documentation for autonomous agent workflow Documentation complete - CLOSED_LOOP_AGENT_SYSTEM.md and system files

The Complete System: Now Claude writes code → triggers UdonSharpAssetRepair → Unity compiles → enters Play mode → reads console logs → fixes errors → repeats. Zero human intervention. The swarm builds the car fast (volume). The automation pipeline ensures it doesn't explode when you turn the key (quality assurance).

The Learning: This is tooling engineering. The swarm was impressive, but useless without the testing loop. UdonSharpAssetRepair is a 200-line script that unlocks millions of dollars in productivity. Finding these linchpins - the small pieces that complete the system - that's the skill companies pay for.

Why It Matters: I went from "AI-assisted developer" to "AI workflow architect." The difference? I'm not just using tools - I'm building the automation that makes the tools useful. That's the career transition I'm chasing.

MILESTONE automation architecture ai Agent Swarm Unity MCP UdonSharpAssetRepair Claude Code
December 6, 2025

MILESTONE: Closed-Loop Agent System

This is a big one. I've been working with Claude CodeAn AI coding assistant by Anthropic that can read, write, and execute code autonomously to build out the Basement OS kernel, and we finally cracked the automation problem.

The Problem: With UdonSharpA C# to Udon compiler that lets you write VRChat scripts in familiar C# syntax instead of visual programming, AI can write perfect code that won't run. Unity needs to generate .asset files, attach them to GameObjects, and compile everything. My first two attempts failed because Claude would generate code with no way to test it. I was still the button-clicker.

The Solution: Unity MCPModel Context Protocol - a way for AI agents to communicate with Unity Editor directly gave Claude hands. Now it does the full loop: write script → trigger compilation → check errors → attach to GameObjects → enter Play mode → verify. Zero human intervention.

The Learning: This taught me that real automation isn't about speed - it's about eliminating the feedback loop. I went from "human as button-clicker" to "human as architect." That's the leadership transfer I'm after. As HumanLayer puts it, good AI tooling is about leveraging stateless functions correctly.

Why It Matters: This pattern applies beyond VRChat. Any runtime environment (web apps, mobile, game engines) needs autonomous test → fix → verify loops. Companies pay for people who build these internal tools.

MILESTONE architecture automation ai Unity MCP Claude Code Agent Swarm
December 6, 2025

Meta-Review: Terminal 2.1 Spec Quality

After building the Terminal 2.1 spec, I turned Claude on myself. "Review this spec against best practices - Spec-Driven Development, TDD guidelines, Hermeneutic Circle methodology. How does it hold up?"

The results were humbling. Strong marks for Hub-Spoke Architecture ✅, 600-line rule compliance ✅, and UdonSharp checks ✅. But big gaps: no TDD integration ❌, missing Hermeneutic Circle analysis ❌, incomplete pre-commit workflow ❌.

Alignment analysis showing Terminal 2.1 spec strengths and gaps

This is how you get better - critique your own work with the same rigor you'd apply to someone else's. The spec demonstrates solid architecture thinking, but I'm not validating it with tests or considering WHOLE ↔ PART impacts explicitly. Those are fixable gaps.

Using AI to review your own methodology is meta-learning at its finest. It's not about getting praise - it's about finding the blind spots.

meta-learning documentation methodology Spec-Driven Development Claude Opus
December 3, 2025

Refactoring CLAUDE.md

A coworker sent me HumanLayer's guide to writing good CLAUDE.md files, and I couldn't help myself - had to try it immediately.

Opened Claude Opus and fed it my entire 953-line CLAUDE.md for review, citing the HumanLayer article as the comparison benchmark. "How does mine stack up against their recommendations?"

Opus came back with a refactor plan: too many instructions causing "instruction-following decay," embedded code examples getting stale, mixed universal and task-specific rules. The solution? Modular structure - keep CLAUDE.md lean (~150 lines) and create reference documents in Docs/Reference/ that Claude can pull when needed.

Claude Opus refactor analysis showing before/after comparison

This is how I learn best. Read something interesting, apply it immediately while it's fresh. No analysis paralysis, just iteration. By the end of the session, I had a new doc structure that made every future Claude conversation more effective.

Meta-learning: using AI to improve how you work with AI. That's leverage.

documentation meta-learning ai Claude Opus Claude Code
November 29, 2025

Symbolic Games POC

Experimented with terminal-based games using unicode characters instead of sprites. Built breakout and pong prototypes that render using block characters.

Interesting concept, but after testing found sprites are significantly less resource-intensive on Quest. Keeping the code for reference but won't ship in prod.

Symbolic rendering engine working Symbolic breakout game
terminal games optimization TextMeshPro UdonSharp
November 7, 2025

MILESTONE: Claude Code + Documentation Sprint

Started my first session with Claude CodeAnthropic's AI coding assistant with direct file access and terminal execution - this is a game changer. Instead of copying code snippets back and forth, Claude can directly read my project files, write code, and even help with git commits.

Spent the session adding comprehensive XML docstringsDocumentation comments that describe what each method does - helps both humans and AI understand code to all major scripts. The AchievementTracker alone went from zero documentation to fully annotated with parameter descriptions and usage examples.

Also started setting up project automation - automatic UdonSharp validation before commits, organized GitHub issues with story points, and established milestones. Treating Claude like a jr developer is really showing how much leadership and project management coordination I have in this area.

Adding XML docstrings with Claude Code First git upload with Claude Code GitHub issue organization
MILESTONE documentation automation ai Claude Code GitHub Git
November 15, 2025

Terminal Menu System Complete

In a development instance I ran a POC that replaces the original auto-cycling display with an actual interactive menu. Players could use their movement controls to navigate up/down through options and select with the interact button.

Had to implement player immobilization when they're at the terminal - otherwise pressing up/down would move your avatar AND the cursor. Using VRCStationA VRChat component that locks a player in place and captures their input for this also solves the "walking away mid-interaction" problem.

Also extracted the weather module into its own script. The terminal now pulls real-time weather data from my GitHub PagesFree static website hosting from GitHub - I use it to serve weather data as JSON endpoint and displays it in the header. When it's actually raining in Fond du Lac, you'll see rain in the basement too once I figure out how to re-bake the lighting with the shader enabled windows.

terminal input weather VRCStation UdonSharp GitHub Pages API
October 20, 2025

MILESTONE: Achievement System Overhaul

Finally finished the Xbox 360-style achievement system! 19 achievements worth 420G implemented out of 1,000G leaves plenty of room for expansion with future ideas. This matches the original Xbox 360 gamer score point structure. The notifications pop up just like they did on the 360 - that satisfying sound effect and the animated banner!

Using VRChat's PlayerData APIVRChat's persistence system that saves player data across sessions - limited to basic types like int, float, string for persistence. This was tricky because you can't use fancy C# features in UdonSharpA C# to Udon compiler - no generics, no LINQ, no async, no try/catch - no List<T>, no Dictionary, no LINQ. Everything's done with arrays and careful indexing.

The FIFO queueFirst-In-First-Out - notifications appear in the order they were earned, like a live feed for notifications took a few iterations. Originally had a priority system but it felt weird when achievements popped up out of order. The chronological approach matches the "basement live feed" vibe I was going for.

MILESTONE achievements persistence xbox VRChat PlayerData API UdonSharp TextMeshPro
August 10, 2025

MILESTONE: World Launch Party

Opened Lower Level 2.0 to the public! Had about 8 friends show up for the launch. Watching the achievement notifications pop as people joined was incredibly satisfying - exactly the vibe I was going for.

Everything worked smoothly - notifications, persistence, the DOS terminal.

Launch party screenshot with 8 friends Achievement notifications during launch
MILESTONE launch social VRChat
August 7, 2025

Weather System + Rain Shaders

Integrated real-time weather from Fond du Lac, WI using a GitHub Pages JSON endpointFree static file hosting - I update a JSON file with current weather and VRChat fetches it. The terminal displays current conditions and when it's actually raining outside, the basement windows show rain effects.

Rain shader source: [PLACEHOLDER - Please specify the rain shader source (Unity Asset Store, GitHub repo, custom made, etc.)]

Thundery outbreaks weather condition Weather system working on terminal
weather api shaders GitHub Pages VRCUrlLoader UdonSharp
July 26, 2025

Achievement Icon Design

Finished designing custom icons for all 19 achievements using Photopea.com. Referenced actual Xbox 360 achievement art to match that 2000s gaming aesthetic.

Achievement icon sketches Custom achievement icons in Unity
art ui achievements Photopea Unity
July 19, 2025

Multi-TV Broadcasting System

Got notifications working on all 3 TVs simultaneously! The NotificationEventHub broadcasts to each display independently, so everyone in the basement sees achievements pop regardless of which room they're in.

Each TV maintains its own FIFO queue and animation timing. Had to be careful with the ProTV prefab integration - it uses a different Canvas setup than standard UI.

Notifications working on all 3 TVs Multi-TV setup in basement
notifications ui networking UdonSharp ProTV
July 13, 2025

MILESTONE: VRChat PlayerData Persistence

Finally got VRChat's PlayerData APIVRChat's cloud persistence system - stores int/float/string values per player across sessions working! Visit counts now persist between sessions. This took way longer than expected because of UdonSharp's limitations.

Can't use Dictionary or List in UdonSharp, so I'm tracking players with parallel arrays. Not elegant, but it works. Successfully tested with 3 visits - data persists across world reloads.

The 11-hour debugging marathon was worth it. This is the foundation for the entire achievement system.

PlayerData persistence working Successfully tracking 3 visits
MILESTONE persistence vrchat udonsharp VRChat PlayerData API UdonSharp
July 10, 2025

First Achievement Unlocked

First achievement notification popped in-world today! "First Time Visitor" - the notification banner slides in from the right with that Xbox 360 bloop sound. Feels exactly like it did on the 360.

The FIFO queue, animation timing, and sound cues all working together. This is the moment I've been building toward since starting this project.

First achievement notification in production First achievement unlocked screenshot
achievements ui audio UdonSharp VRChat SDK

C:\BASEMENT\AI_SKILLS.DIR

Lower Level 2.0 continues to serve as a proving ground for my ongoing transition from traditional development to structured, AI-assisted workflows. Each new feature informs the next iteration of my methodology, improving how humans and AI collaborate on complex, interactive VR/XR environments.

Below you will see AI tools and techniques I've learned and applied throughout this project. Each skill includes how I used it and links to relevant devlog entries.

────────────────────────────────────────────────────────────────────

[ Claude Code ] AI coding assistant with direct file access. Used for: automated documentation, code generation, git workflow, and project management. Reduced manual coding time by ~60%.

Autonomous coding agent that reads/writes files, executes terminal commands, and manages git workflow.

Used for: XML docstring generation, UdonSharp validation, automated commits, issue tracking

→ Nov 7: First Integration
→ Dec 6: Closed-Loop System

[ Unity MCP (Model Context Protocol) ] Protocol that lets AI agents communicate with Unity Editor directly. Used to: compile scripts, attach components, enter play mode, and read console errors - all without human intervention.

Bridge between AI agents and Unity Editor for full automation loop.

Used for: Automated UdonSharp compilation, component attachment, play mode testing, console error detection

→ Dec 6: Breakthrough Achievement

[ Agent Swarms ] Multiple AI agents working in parallel on different tasks. Used to: simultaneously update documentation, validate code, run tests, and commit changes - reducing iteration time from hours to minutes.

Parallel AI agents handling different aspects of development simultaneously.

Used for: Parallel code review, multi-file refactoring, concurrent testing, distributed documentation

→ Dec 6: Implementation Details

[ Prompt Engineering ] Crafting effective AI prompts to get consistent, accurate results. Key learnings: context windows, few-shot examples, constraint specification, and iterative refinement. Created custom CLAUDE.md with 1000+ lines of project-specific instructions.

Designing prompts and system instructions for reliable AI-assisted development.

Used for: UdonSharp constraint documentation, code review checklists, automated validation rules

→ Nov 7: Documentation Strategy

[ API Integration (VRChat PlayerData) ] Working within UdonSharp constraints (no generics, no LINQ) to implement cloud persistence. Learned: parallel array patterns, edge case handling, async data caching, and Quest optimization (5-second cache vs per-frame reads).

Cloud persistence API with severe language constraints.

Used for: Achievement tracking, visit persistence, leaderboard data, cross-session state

→ Jul 13: 11-Hour Debug Marathon
→ Oct 20: Full System Working

[ GitHub Actions & Automation ] Automated workflows triggered by git events. Set up: pre-commit UdonSharp validation, automatic issue labeling, changelog generation, and deployment pipelines. Prevents broken commits from reaching repo.

CI/CD pipeline for VRChat world development.

Used for: Pre-commit validation, automated testing, issue management, deployment

→ Nov 7: Initial Setup

[ Real-Time API Integration ] GitHub Pages as free API endpoint for weather data. Learned: CORS handling, JSON parsing in UdonSharp, platform-specific caching (Quest: 10min, PC: 2min), and graceful degradation when API fails.

Live weather data fetched from custom JSON endpoint.

Used for: Dynamic weather display, rain shader triggers, weather-based achievements

→ Aug 7: Weather System Launch

[ Spec-Driven Development (SDD) ] Writing detailed specifications before coding. Prevents scope creep and gives AI clear requirements. Used Gemini to analyze 2000+ line spec and generate architectural recommendations before writing any code.

Specification-first approach with AI analysis before implementation.

Used for: Basement OS v2.1 architecture, terminal module system, hub-spoke pattern design

→ Dec 6: Architecture Design

[ Test-Driven Development (TDD) ] Writing tests before implementation code. In Unity/UdonSharp context: used [ContextMenu] test methods and manual test scenarios. Caught edge cases in achievement logic before production deployment.

Test-first methodology adapted for UdonSharp constraints.

Used for: Achievement unlock logic, network sync validation, edge case detection

→ Jul 13: Persistence Testing

[ Documentation as Code ] Treating documentation with same rigor as source code - version control, automated generation, validation. Claude Code generated 3000+ lines of XML docstrings, keeping docs in sync with code changes automatically.

Automated documentation generation and maintenance.

Used for: XML docstrings, architecture diagrams, API references, troubleshooting guides

→ Nov 7: Documentation Sprint

[ Hub-Spoke Architecture ] Centralized core (hub) with modular components (spokes). DT_Core handles hardware I/O; apps in /BIN/ focus on logic. Enables independent development, easier testing, and clean separation of concerns.

Modular system design pattern for complex applications.

Used for: Basement OS kernel, terminal apps, notification routing, event broadcasting

→ Dec 6: Architecture Implementation

[ Constraint-Based Problem Solving ] Working within severe language limitations (no List, no LINQ, no exceptions). Key skill: pattern recognition from other constrained environments (embedded systems, old C standards). Developed workarounds: parallel arrays for key-value storage, manual bounds checking instead of exceptions.

Creative solutions within UdonSharp's C# subset limitations.

Used for: Data structure workarounds, control flow patterns, memory management

→ Jul 13: Persistence Workarounds
→ Oct 20: FIFO Queue Implementation

C:\BASEMENT\ABOUT.TXT

Visitors can explore a world that blends retro charm with modern VR features: a functional DOS-style terminal running its own "Basement OS", Xbox 360-style achievements, real-time weather integration, and persistent progress tracking powered by VRChat's PlayerData API. The project has now surpassed 770+ visits, continuing to evolve as I refine the underlying methods behind its development.

────────────────────────────────────────────────────────────────────

Core Features

[ Achievement System (Xbox 360-Inspired) ]

  • 19 achievements across Visit, Time, and Activity categories
  • Total of 420 Gamerscore
  • Persistent tracking through PlayerData
  • Seven role-based notification tiers with custom icons and sounds
  • Anti-spam logic using edge detection and persistent flags

[ Basement OS v29.1 — Interactive DOS Terminal ]

  • 9-page menu with arrow-key navigation
  • Auto-generated changelog pulled directly from Git commits
  • Real-time stats: weather, player count, uptime, and session data
  • Remote content loading from GitHub Pages via domain whitelisting

[ Live Weather Integration ]

  • Dynamic weather powered by an external API
  • Rain shader on basement windows
  • Weather-based achievements (e.g., Heavy Rain)
  • Optimized caching: 2 minutes on PC VR, 10 minutes on Quest
  • Support for seven atmospheric conditions

[ Network-Synced Notifications ]

  • FIFO queue system for chronological ordering (max 100 items)
  • Smooth fade animations and icon alternation
  • Multiplayer broadcasting via UdonSynced variables
  • Role-aware personalization for visitors
────────────────────────────────────────────────────────────────────

[ Tech Stack ]

Engine Unity 2022.3.22f1
SDK VRChat SDK 3.8.2+
Scripting UdonSharp
Platform PC VR + Quest
Status Active Development

[ Lower Level Stats ]

Total Visits Loading...
Total Favorites --
Popularity --
Last Updated --
First Uploaded --
C:\BASEMENT>
MEM: 640K OK TIME: 00:00:00 SYS: BASEMENT OS