📖 Glossary of terms
This glossary will help you understand the specialized terms you may encounter when using OKO and other Magnopus products.
Asset
In OKO, any visual elements that comprise an experience – be they 3D models, images or videos – require assets. The Asset does not store the data directly, but references a blob of data stored in our Cloud Hosted Services. In addition to the data URI, the Asset also contains metadata about it. Assets are used in conjunction with Asset Collections (see below), where one Asset Collection can own many Assets.
Asset Collection
An Asset Collection can own one or more Assets, and are designed to make asset management easier for content creators. In an authored experience, any visual element such as a 3D model, will be referencing an Asset under-the-hood. That Asset will in turn belong to an Asset Collection. With the example of a 3D model, the Asset Collection in question could contain multiple Assets. There could be one for each of the models in the LOD (Level of Detail) chain and another Asset for the model thumbnail. Asset Collections are searchable and can be retrieved via any number of data points specific to them.
Clients
A client typically represents a software application or device, that communicates with a server over a network, to request and exchange data or services. We’ve built client applications targeting Web (Desktop and Android), Unreal (Desktop) and Unity (iOS, XR). These clients each consume an OKO plugin or package authored by the teams, which expose the Connected Spaces Platform to these different engines.
Cloud Hosted Services (CHS)
CHS provides several services that power the core systems and features within the OKO ecosystem. These services include user accounts and authentication, support for multiplayer experiences, the management and delivery of Assets to connected clients, and the spatialization of those Assets in the experience space. These services are hosted in the cloud and are accessed via a REST API.
Components and Entities
The OKO platform allows you to craft engaging cross-reality experiences, accessible through a range of different platforms and devices. To achieve this, you build up an experience using "Entities" and multiplayer "Components". While entities do a lot behind the scenes they have no visual appearance, just transform properties that define a position, rotation, and scale. The real power comes from the Components that you add to them. We use Components to compose the visual aspects of our experience and the interactive elements within it. For example, if you wanted to add a video screen with buttons for controlling playback, then you could create an Entity with Video and Button Components, and a Script Component to 'connect' the button presses to video playback state change.
Each Multiplayer Component in the Client applications has a corresponding component type in the Connected Spaces Platform. This mapping allows us to enforce a consistent implementation between platforms and to ensure interoperability between client applications.
Interoperability
Central to OKO is the concept of interoperability. This means that creators can author rich experiences that people can enjoy on different platforms (Windows, Mac, Android, iOS, VisionOS) through applications built using different technologies (Unity, Unreal, and Web). This means that someone using the Web client on an Android device can see and interact with someone else using an AR iOS application built using Unity.
Connected Spaces
As spatial display and computing technologies progress, and we grow the standards and adoption of the spatial internet, we need a better way of uniting physical and digital spaces. We see these bridging blocks as Connected Spaces.
Connected Spaces Platform (CSP)
CSP is an open-source SDK that accelerates the development of interoperable spatial applications and services. Platform-specific capabilities are marshaled into universal data structures that are transported in sync, in time, and in structure.
It provides a common interface between client applications (Unreal, Unity and Web) and the services that are provided by CHS. CSP is ingested by UE5 and Unity in the form of the OKO Plugin. For the Web Client, CSP is made available via WebAssembly.
OKO
OKO is a suite of apps and plugins that operate across game engines, connected to a comprehensive set of cloud services, accessible across many devices. OKO is built on the open-source Connected Spaces Platform (and as many other open-source and industry standards as possible).
Our OKO clients are a set of interoperable client applications that speak fluently with one another, enabling end users to rapidly build, share, and interact with Connected Spaces.
Here are some of the features OKO offers:
Creator tools
Game Engine-Specific Plugins & Interfaces
Connected Space Primitives (building blocks for shared experiences, like Avatars, 3D Objects, Images, and Video)
Cross-Platform Coherence
Event Listeners and Actors
User Interface Abstractions
Support for Custom Engine Functionality for Rapid Prototyping (For example, Unreal Blueprints)
OKO Plugin
The OKO plugin provides access to the Connected Spaces Platform within Unreal and Unity. In addition to enabling two-way communication, it offers an API for accessing the services provided by CHS. In addition to this, it also takes care of converting CSP data structures to and from a client-friendly format.
OKO Unreal Editor Extension
The OKO Unreal Engine editor extension allows content creators to author and manage spaces from within the Unreal Editor, using the same workflows they are familiar with. The extensions are part of the core OKO Unreal plugin and can be used in any Unreal project.
Scripts
The Connected Spaces Platform (CSP) provides a Scripting System which is exposed through OKO. Through the use of Script Components, content creators can author scripts in JavaScript, which are then executed in CSP. Scripts can bind to events, access the Entities and Components in a Space and control their properties.
Site
A space can feature multiple geolocated sites. For example, a space created for a University Campus could comprise a site for each campus building.
Space
A space is where users engage in multiplayer cross-reality experiences. Through OKO, users can author new Spaces, enter existing ones, and edit those they have already created. Once in a Space, any Assets uploaded or Entities and Components authored belong to that Space.
Space Component
Each Component represents a functionality that can be added to the Entity. For example, by adding the Script Space Component we enable scripting functionality on the Entity.
Space Entity
A Space Entity is a single Entity inside a space. It has certain properties that are replicated across multiple users of the same space (like position, rotation, scale) and it can host any number of Space Components.
Replication
In the context of OKO, this refers to the replication of state between clients sharing a multiplayer experience. This replication is relative to a single Space, and concerns the state of Entities, Multiplayer Components and user Avatars. Whenever the properties of one of these changes – such as the position of an Avatar or playback state of a video – it is important that the other clients are notified so that they can reflect the change locally. This ensures a consistent multiplayer experience across client applications.