Exterior Space

ExtForm, Portable space

Store and transmit a space

Form and its related objects can be used internally or externally. Internally, a Form provides a convenient layout structure for use within a renderer, but these are often unsuitable for transmission or storage — each Artifact embeds a full asset, making the format heavy. Externally, a Form represents a portable scene definition. This distinction is crucial when sharing or transmitting or archiving layouts.

To bridge these two use cases, we introduce ExtForm: a lightweight, engine‑agnostic variant of Form explicitly used for external use. ExtForm removes embedded assets and replaces each Artifact with a resolvable reference, enabling clients to share, store, and reconstruct a virtual space from a single, compact data packet.

interface ExtForm {
    version: string // required
    layout: ExtEmbedding[] // required <- note the difference from regular Form
    layoutMode: 'freeform' | 'discrete' | 'continuous' // recommended
    ... // other possible modules
}
 
interface ExtEmbedding {
    artifactLink: string // required <- note the difference from regular Embedding
    position: Position // as regular Embedding
    height: number // as regular Embedding
    rotation: number  // as regular Embedding
    stackIndex: number // as regular Embedding
    metadata: Metadata // optional if want to store metadata <- note the difference from regular Embedding
    ... // other possible modules
}

where ExtEmbedding is a variant of Embedding. In ExtEmbedding, the original artifact field is replaced by artifactLink, which explicitly holds an external locator — such as a URL or path — used to retrieve the corresponding Artifact. Additionally, it may include an optional metadata field that carries selected data from the original Artifact, allowing the scene to retain full descriptive context if needed. After the full scene is loaded or an Artifact is retrieved, if there is a discrepancy between the metadata in ExtEmbedding and the resolved Artifact, the metadata from the Artifact must take precedence. Implementation should treat the ExtEmbedding.metadata as provisional and must reload or update the scene if differences are detected.

Think of ExtForm as a packed Form: it carries only the spatial layout, leaving the actual asset data to be resolved at load time.

The name ExtForm echoes "external," reflecting its role as an out‑of‑engine layout container. It also draws inspiration from "exterior form," the mathematical concept in differential geometry where lower‑dimensional differential forms combine — through exterior algebra — to represent higher‑dimensional objects.