How Blender, steganography, and hyperblogs collapse the distance between a game world, a real place, and a knowledge graph.
Blender is a free, open-source 3D creation suite. Think of it as the world's most powerful geometry editor — not just for pretty pictures, but for building environments that carry embedded data.
Geometry Nodes let you describe a world as a recipe, not a manual arrangement. Instead of placing 50 trees, you write a rule: scatter instances across a surface, vary their scale, avoid this zone. The geometry emerges from logic.
Every object in Blender carries custom properties — arbitrary key/value data you attach to any mesh. A building can hold its construction date, owner, event history, and ROOM place ID. The geometry is the database.
Unity ingests FBX/GLB files from Blender and adds gameplay logic — physics, triggers, mobile deploy, XR support. It can also read mesh data at runtime: a C# script calls Mesh.GetColors() to extract vertex color arrays and decode any payload baked in during authoring.
Deploy targets: iOS, Android, PC, Mac, Quest. One codebase, many surfaces.
"The place carries its own unlock conditions. The knowledge isn't in your database waiting to be served — it's in the geometry of the world itself, waiting to be found."
Three.js renders 3D geometry in a browser using WebGL. GLB files exported from Blender load directly. JavaScript mirrors the Unity decode logic — read vertex buffer, extract payload, surface it as UI.
Lighter than Unity, no app store, works inside a hyperblog as an embedded canvas. This is the web-first path for the same experience.
Gaussian splats are a rendering technique that converts photogrammetric captures into ultra-realistic 3D environments — not meshes, but millions of oriented ellipsoids that reconstruct a scene from photographs.
Blender 4.2+ imports splats natively. The workflow: capture a real location (Matterport Pro2, PortalCam) → process to .ply → import into Blender → composite with procedural geometry → export the combined scene.
For DVV: the 1887 Dunsmuir hotel captured as a splat becomes the substrate. Low-poly world geometry surrounds it. Both export together as one scene.
Matterport .ply / .splz Blender 4.2+ WebGL runtimeSteganography is the practice of concealing data within another medium so it is invisible without knowing how to look. In this context, the medium is 3D geometry.
Three layers to hide data in 3D geometry:
The payload is a JSON object baked into the mesh before export. It can contain anything:
When a player "scans" the geometry in Unity, C# reads the vertex colors, reconstructs the JSON, and renders a WebView showing the hyperblog artifact. The document was always there — in the wall.
"Ingress but the clues are inside the geometry of the real buildings. The way trees are spaced apart. The layout of a room. The angle of a pathway between two buildings. IRL reveals the next step."
The spatial arrangement of objects in the physical world becomes the cipher. People who know how to read it see a second world overlaid on the first. This is literally what mystery traditions have always done — initiatory knowledge encoded in sacred geometry. You're making the decode layer interactive and technically verifiable.
GPS coordinates encoded in vertex data can match a player's real location. Find the building in Dunsmuir. The game recognizes you're there. The hidden layer surfaces.
DVV · Dunsmuir CA GPS matching AR overlay mystery traditionThe place accumulates memory through play. Every discovery is a ROOM Event primitive permanently attached to the Place. Future players see who found what and when. The building becomes its own provenance chain.
A hyperblog is a self-contained HTML file. It renders everywhere without dependencies. It is the artifact format that works across all contexts simultaneously:
"One format. Four entry points. Same experience. The artifact is already there — in the wall, in the spacing of the trees, in the angle of the path."
A single Blender scene contains two collections that can be toggled independently:
This is Dual Legibility Architecture applied spatially. The Matterport splat is the substrate. ROOM's four primitives are the annotation layer.
Blender exports both layers: scene geometry + object positions for the Three.js world, custom property data as ROOM knowledge graph JSON. Cline can prompt-tag all buildings with their ROOM place IDs — keeping the knowledge graph and the world in sync.
ROOM is a spatial memory and knowledge graph built around four ontological primitives.
Russian formalism gave us the most useful split in narrative theory. Every story has two layers that can be pulled apart and manipulated independently.
In film: Memento has the same fabula as any revenge thriller. Its syuzhet — told backwards — is the entire point. The gap between fabula and syuzhet is the experience.
"If someone knows the canonical sequence of the story, putting one scene one step out of order is no longer just an aesthetic choice — it carries information."
Once a player knows the canonical fabula of a place — say, the seven historical events of the Dunsmuir hotel — the order in which they encounter those events in the game becomes a data channel.
This is a channel invisible to anyone who doesn't know the story. Knowledge of the canonical sequence is the decryption key. The story itself is the cipher.
This requires intentional narrative architecture from the start. The design decisions that make a good story also determine the encoding capacity.
Each encoding layer operates independently and can be read without knowing the others exist. Together they form a deep cipher with very high information density.
A player who finds all four layers has assembled something no single layer could provide. The full picture only appears when geometry, space, and story are read simultaneously — by someone who knows how to look at all three.
"The initiated see a second world overlaid on the first. Four channels. Four keys. One world."
Five steps. One complete loop.
"That's a complete loop. Nothing like it exists. You could demo this at the next hackathon."
"The place carries its own knowledge. Not in a database somewhere else.
In itself."
— Keith Basso · Wisdom Sits in Places · made technical