Let's take a look at the primary structure of a Simmetri Universe.
At the root of a Simmetri experience is the Universe. The Universe contains everything you create. It's comprised of a library of root level objects.
Here's the main types of objects that can be created in the root Universe:
- Other root level resources
Let's break down each type of Unvierse object:
Each Universe will contain at least one Space. Spaces are 2D or 3D spaces used to place nodes in. Like the Universe, a Space is comprised of a library. This library consists of spatial objects (or Nodes), such as 3D models, sounds, emitters, lights, etc. that ultimately the user can see and interact with.
There are two primary types of Spaces: OpenSpaces and ScreenSpaces. OpenSpaces like the TerrainSpace have physical simulations while a ScreenSpace is a 2D space intended for HUDs and GUIs.
Timelines are used to synchronize groups of events that occur in time. Events can include animation keyframes, scripts, audio streams, physical simulations, etc. The Universe contains a root timeline which controls the playback state of all other Timelines. Spaces and Units (optionally) contain Timelines that synchronize any animations contained within. Timelines are only considered active if their parent's timeline is active.
ViewPorts are used to define the overall composition of what a player/user is presented with. They also define what the user hears and what the user can control in the Universe. ViewPorts are comprised of a set of layers that are rendered in the order they are placed. For instance, a typical ViewPort would be comprised of the following set of layers:
- A view layer to render a Space through a Camera
- An image filter layer to apply a filter effect to the rendered output of the preceding layer
- Another view layer to render a ScreenSpace for a HUD
For instance, you can use different ViewPorts to define multiple viewpoints (i.e. camera angles) into your Universe (either to view the same or different Spaces). You ultimately choose which ViewPort to display to the viewer via a Display.
Displays represent the interface between the Universe and the real world. Every Universe contains a Master Display which represents the screen you are using the edit the Universe. The ViewPort panel effectively lets you select the active ViewPort of the Master Display. In addition to the Master Display, you can create additional Displays to render ViewPorts out through other outputs, such as a multi-monitor or external application.
In the next article, we'll take a deeper look at Spaces.