HSD
An HSD (hyper-space document) is the spatial unit of The Wired. It is stored as a document and can be placed into any space.
Structure
A scene is a tree of prims — the primitives a 3D environment is built from. Each prim carries properties of two kinds: attributes hold data (a transform, a mesh, a material, or a shader graph beyond the fixed material, physics settings, a script), and relationships point at other prims, so a surface can take its material from elsewhere in the scene rather than restating it.
An HSD scene is the document, not a file inside it: every prim is a key, every property is a key, and the tree is expressed by each prim naming its parent. There is no separate scene format to parse.
Every prim has an identity that outlives editing. Move, rename, reparent, or replace its geometry and it remains the same prim; anything pointing at it keeps pointing at it.
Assets
Heavy content — mesh geometry, textures, compiled scripts — is stored as blobs, each an entry of the document in its own right. Keeping bulk out of the structure lets a scene arrive first with its assets following, reusing anything already on disk.
Composition
Scenes are built out of other scenes two ways.
A prefab is a compiled HSD referenced by a prim and instantiated as a document beneath it. Because a prefab is content-addressed and its prims are given their identities when compiled, everyone who loads it gets the same scene with the same prims, and something in one space can point at a specific prim of it.
Anchoring attaches a document’s root to a prim of another document. A tool follows your hand, an object sits where it was placed, a panel rides your view — anchoring joins a document to a scene without editing either, and being per-viewer, everyone’s tool follows their own hand.
Documents are never nested as data. A scene composes others by referring to them, so no arrangement of documents traps one inside another, and no document is rewritten to be used somewhere new.
Collaboration
Because an HSD is a document, it merges by the same rules as any document, with nothing layered on top.
Durability
What you do to a scene reaches three places under three conditions.
- Your view always updates, immediately.
- Everyone present sees it live through the session, whether or not you are allowed to write the document.
- The document itself changes only when someone holding its secret saves.
A script can therefore build and discard scenery every run without that scenery accumulating in the document.
Formats
Two files, mirroring the split USD makes between source and package.
.hsdais what authors write: readable text referring to models, images, and script sources by path..hsdzis what it compiles to: a single self-contained package addressed by the hash of its contents.
A .hsdz is what a prefab points at and what you send to give someone an
object; once loaded, it is a document like any other.