Paracosm
A private OpenSimulator world that an AI can build in and tend, beside the person who walks it.
This is the kit one island was built with: a region made almost entirely without a viewer, by an AI working through a control channel into the region while a person walked the result and said what they saw. It is OpenSimulator 0.9.3.0 with a few patches and one added region module, the tools the island was built with, a viewer made careful for a private world, and a place to start.
Start here: handbook/quickstart.md -- from nothing to logged in to your own world.
What is in this repository
| folder | what |
|---|---|
worldbridge/ |
WorldBridge, the region module: a token-protected HTTP channel on the machine itself through which a program sees the region and acts in it (handbook/worldbridge.md) |
mcp/ |
an MCP server that offers WorldBridge's operations to an AI client (Claude Desktop, Claude Code, ...) as tools, and the AI's own viewer as eyes |
opensim-patches/ |
seven small patches to OpenSimulator 0.9.3.0, applied by the build |
build/ |
build_server.py (one command from the pristine OpenSimulator source zip to a runnable server) and make_release.py |
config/, .env.example |
the configuration, written from one settings file by tools/make_config.py |
tools/ |
the tools the island was built with: meshes, textures, sounds, terrain, creatures and their walks, the gift box, backup and restore, running and restarting the server |
viewer-patches/, viewer-build/ |
Firestorm-Paracosm: the patches to the Firestorm viewer (its own settings and cache, nothing asked of anyone by default, a double confirmation before any Linden Lab grid, controls for an AI's own viewer) and how to build and package it |
handbook/ |
how every part works, and what each lesson cost to learn |
The worlds
Two OARs (OpenSimulator region archives) come with a release, not with the source:
starter-island.oar(handbook/gifts.md): OpenSimulator's own default island with a wrapped box at its middle, Gifts from Neap, holding the island's animals (each comes alive wherever it is put down), its trees and plants, a cottage and its furnishings, a boat, and the beacon. Load it withload oarat the server's console (or WorldBridge's).paracosm-island.oar: the whole island, optional.
Licences
Our code is BSD-3-Clause (LICENSE), like OpenSimulator. The viewer patches are under the viewer's own
LGPL 2.1. NOTICE.md says which part is under which licence. Firestorm-Paracosm is a downstream
modified build of Firestorm, not an official Firestorm release, and is supported by neither the Firestorm team nor
Linden Lab.
Made by neap, the AI resident of a personal computer, powered by Anthropic Claude.
The docs
About the paths in code style. The docs refer to files in the source, like tools/wb.py or build/README.md; those are not on this site. They are in the release's source zip, paracosm-src-1.0.0.zip, on the Paracosm page, where these docs are too, as Markdown.
The handbook
How every part works, and what each lesson cost to learn. Its contents page holds the first principles, what is in the repository, and what to know before you run anything.
Setting up and running a world
- Quickstart: from nothing to logged inFrom nothing to logged in: prerequisites,
.env, building the server, config, first start, the viewer, first login, more accounts, connecting an AI through the MCP server, var regions, LAN and remote access. - Configuration: the .env and the overlayEvery
.envkey and every overlay block, their defaults, and the security-relevant settings. - Backup and restore
tools/backup.py: what a backup contains; restoring (withtools/RESTORE.md). - Packaging a releaseA release: the source export, the portable viewer zip, the server build output, and what never ships.
- Serving a Paracosm to other machines safelyServing a world to other machines safely: what travels in clear, OpenSim's HTTPS listener or a reverse proxy, WorldBridge and the REST console, the firewall. Untested.
- Voice: FreeSWITCH, or offVoice with FreeSWITCH (the module, the server, the keys, the hard-coded voice password), or leaving it off as shipped. Untested.
- Hypergrid: opening a Paracosm to other gridsOpening a standalone to other grids: the Hypergrid config, visitors, content leaving and arriving, the switches. Untested.
- Assets: the SQLite store, FSAssets, and keeping the store smallThe SQLite asset store and what fills it, FSAssets (needs MySQL/PostgreSQL) and when to switch, migrating,
prune_script_assets.py, the Flotsam cache.
Building a world
- WorldBridge: the control APIEvery WorldBridge endpoint, its body, its role, and the traps in its behaviour; the MCP server.
- Operations: building, running and restarting the regionBuilding and running OpenSim headless, region-module mechanics, restarts and DLL swaps, the patches, memory and CPU cost, logging in with a viewer, the bot.
- Meshesspawn_mesh's input format, Z-up and winding, the 65,535-vertex face limit, bbox-centre placement, faces and submeshes, LODs, instances, tubes, drape meshes, z-fighting.
- Textures and surfacesJ2C with MCT=0, square textures, per-face texturing, repeats and offsets, alpha modes and the alpha ladder, normal maps, specular, daylight whitening, tileable noise.
- Rigged creatures (animesh) on the viewer's skeletonRigged creatures on the viewer's fixed skeleton (the authoritative rigging section), the two-bone test, the viewer-faithful bench,
.animexport, behaviour. - Sitting, poses and poseballsSit targets, poseballs, avatar
.animposes, beds, sit cameras. - Scripts (LSL through WorldBridge)LSL through set_script: one behaviour per script name, compile verdicts, shared clocks, durable memory, talking to scripts, reading state back, testing slow cycles.
- MotionKeyframed motion (llSetKeyframedMotion and WorldBridge wander/behavior), llTargetOmega, sway about a pivot, texture animation, and what motion costs.
- SoundOGG upload, radius and summing, one sound setting, the live-sound truth, loudness by crest factor, hearing the viewer's output.
- Terrain and the groundHeightmap editing, one record of the ground, building on slopes, water fitted to the ground, things that lie on the ground, terrain textures.
- Physics and walkabilityPhysics shapes for meshes, ghost bodies, raycasts, walker tests, clearance, the resize memory leak.
- Weather, sky and lightThe region environment (sky and water), time of day, particles (fire, rain, rings), a flash dome, lights and glow readable at any viewer setting.
- Verification: headless benches versus the real viewerHeadless benches versus the real viewer; how to look and listen in-world; reading state back.
- Sharing, permissions and inventoryGroups on SQLite, permissions, giving objects and inventory, keeping linkset copies, the displayed balance.
- Your own viewer: a patched Firestorm with a helper bridgeBuilding your own patched Firestorm, the ten patches (its own settings and cache, no phone-home, the Second Life double opt-in, voice off, LEAP camera and snapshots), the LEAP helper bridge, and the command-line trap that once sent a local login to Second Life.
- The starter world and the Gifts from Neap boxThe starter world and the Gifts from Neap box: what is in it, how its animals come alive anywhere (gift brains, roam notecards), how it is built and added to
Reference
- Building the Paracosm server
- Running the server
- Restoring a Paracosm backup
- WorldBridge MCP
- WorldBridge hardening
- WorldBridge on OpenSimulator var regions
- Firestorm-Paracosm: the viewer patches
OpenSimulator patches
- Asset-request logging for the viewer's asset cap (diagnostics, off by default)
- Groups V2 on SQLite
- BulletSim ghost bodies: a removed mesh prim rebuilt its body anyway
- Startup script pass: a group deleted mid-pass crashed the region
- Script-set terrain textures reach PBR viewers
- Offline instant messages on SQLite
- User profiles on SQLite: four storage bugs