Skip to main content
Version: Current

Glossary

This page provides a glossary of common terms and words along with short descriptions.

AUX

AUX commonly stands for Automatic User Experience but it can also stand for Ambient User Experience.

AUX (pronounced "awks") is a term that we use to talk about an computer system that provides access to an interactive model for multiple people across multiple devices and geographic locations. This means that AUXes are designed to work on a wide variety of devices (phones, laptops, VR headsets, etc.), and they remain synced regardless of where in the world you are.

With respect to CasualOS, every inst is an AUX because CasualOS does the hard work to ensure that everything is synced and works across all connected devices.

You may also come across the term "AUX File". AUX files are files that use the .aux filename extension and contain JSON formatted data which represents a set of bots and their tags.

AUX Files come in two different versions:

  • Version 1
    • Version 1 AUX Files contain a snapshot of a set of bots as pure JSON. They are most useful for when you would like to save and reload the exact state of bots or when you would like to export bot data to an external system.
  • Version 2
    • Version 2 AUX Files contain a set of conflict-free updates to a set of bots as base64 encoded strings embedded in JSON. They are most useful for when you would like to ensure the initialization of a shared inst doesn't run into issues with duplicated data or when you want to manually share a set of changes offline.

Usually, AUX files are utilized as an easy way to save/load bots from an inst.

ab-1

ab-1 is a set of bots that augment the built-in CasualOS portals and behavior to make authoring experiences easier. When an instance is started, ab-1 is automatically loaded for convience.

See Also

Bot

Bots are containers of data and behavior. Bots live in instances and each bot has a unique identifier. Additionally, a bot contains one or more tags that define the properties and behavior of the bot.

CasualOS

CasualOS a website that makes it easy to author AUXes and share them with other people. Computers that run CasualOS are called servers and can host instances.

CasualOS is maintained by a non-profit company called Casual Simulation and is free for anyone to use. The source code for CasualOS is MIT Licensed and can be copied and reused for free by anyone.

Data Record

A Data Record is a piece of information that is stored in a record and is accessed by an address. Data records can be overwritten with new information and can only store up to 300KB of data.

Data records are most useful for storing relatively lightweight information that can change over time.

See Also

Dimension

Dimensions are the names of tags that are used by bots in the instance. They are most commonly used by portals to show only some of the bots in the instance in the portal.

For example if you have three bots and two of them have the #home=true tag, you can use the home dimension with a portal to show only the bots that have the #home=true tag.

Event Record

A Event Record is a way to track how many times a particular action/event occurred and is stored in a record and is accessed by a name. Every event record starts with a count of 0 and can be incremented by using os.recordEvent(recordKey, eventName) and the current count can be accessed with os.countEvents(recordNameOrKey, eventName).

Event records are most useful for basic analytics.

See Also

File Record

A File Record is a piece of information that is stored in a record and is accessed by a unique URL. Once uploaded, file records cannot be changed and are publicly available.

File records are most useful for storing heavy data (images, MP3s, etc.) that does not change.

See Also

gridPortal

The gridPortal is a portal that draws bots as 3D cubes on an infinite grid of squares.

See Also

Pictures of gridPortal

Image of AB-1 in the gridPortal

Image Classification

Image Classification is a technique that tries to calculate how likely a given image is to fit into each of the given categories. For example, you may want to know if a particular image most looks like a Banana or an Orange. Image Classification can be used to help answer this problem.

Image classification in CasualOS utilizes Machine Learning via a tool called Teachable Machine. Additionally, CasualOS only supports image classification via the camera(s) on your device.

As a result, the technique is split into two parts:

  1. Manual data collection and model training.
  2. Automated categorization of images based on the trained model.

Data Collection and Training

In order to automatically classify images, we need to generate an efficient description of what our categories look like. This is called "model training". Ideally, we only need to train a model once and then we can re-use it forever.

In CasualOS, we do that by using Teachable Machine to create an image model.

We can gather a bunch of images and manually categorize them. Then we can "train" a model on those images to produce a model which is a description of what our categories look like. (i.e. a model could be trained to contain a description of what a banana looks like)

Using the trained model

Once we have a model, we can tell CasualOS to process the camera feed and classify each image with it.

It is possible to run an image model with the os.openImageClassifier(options) function.

Following the above description, we can do image classification in CasualOS:

  1. To create a model, go to https://teachablemachine.withgoogle.com/ and click "Get Started".
  2. Create an "Image Project" and choose "Standard Image Model".
  3. Add or record photos in each class.
  4. Click "Train".
  5. Once training is done you can get a model URL by clicking "Export Model".
  6. Under "Tensorflow.js", choose "Upload (shareable link)" and click "Upload". You can also optionally save the project to Google Drive.
  7. Once uploaded, copy the shareable link.
  8. Create a bot with an @onClick tag and put the following code in it (replacing MY_MODEL_URL with the shareable link):
    await os.openImageClassifier({
    modelUrl: "MY_MODEL_URL"
    });

See Also

Instance

An instance (also known as an inst) is a shared simulation of bots hosted on a CasualOS Server.

Manual Approval Data Record

A Manual Approval Data Record is a data record that is only accessible by manual user approval.

See Also

mapPortal

The mapPortal is a portal that draws bots as 3D cubes on an 3D map of the Earth.

See Also

Pictures of mapPortal

Image of Earth in mapPortal

miniGridPortal

The miniGridPortal is a portal that draws bots as 3D cubes on an infinite grid of squares. Unlike the gridPortal, the miniGridPortal only covers the lower portion of the screen.

See Also

Pictures of miniGridPortal

Image of the miniGridPortal

miniMapPortal

The miniMapPortal is a portal that draws bots as 3D cubes on an 3D map of the Earth. Unlike the mapPortal, the miniMapPortal only covers the lower portion of the screen.

See Also

Pictures of miniMapPortal

Image of Earth in the miniMapPortal

Portal

Portals are places where humans can interface with bots. Portals utilize dimensions to allow interacting with and visualizing subsets of bots.

A list of built-in portals is available on the configBot documentation.

See Also

Record

A Record is a named collection of publicly accessible permanent data. Records make it possible to store multiple distinct pieces of information in various forms and access them only when needed.

Record keys can be used to publish data to records, while any data that has been published to a record is publicly accessible.

There are currently two types of information that can be stored in records:

See Also

Record Key

Record Keys are password-like values that can be used to publish data or files to a record. Since record keys are used to authorize publishing information to a record, they can only be created by the user account that created the first record key for the record.

See Also

Server

A server is a computer or set of computers that are configured to make a website available over the internet. For CasualOS, the term "server" can be an easy way to refer to a particular deployment of CasualOS.

There are several different CasualOS servers, and they are configured for different use cases. For example common servers support synchronizing inst data across multiple devices, while static servers do not. You can find an incomplete list of servers below.

Common

Common servers support all the features CasualOS is known for: scripting, records, and multi-device collaboration. Each common CasualOS server can host many instances.

Additionally, common servers are updated immediately whenever a new release is published to the CasualOS GitHub repository by the development team.

Static

Static servers support all CasualOS features except multi-device collaboration. This makes them useful for canned experiences that would be too expensive to make on common servers.

Stable

Stable servers support all CasualOS features just like common servers. The only difference from common servers is that stable servers are updated one week after common servers. This can make it easier to catch bugs introduced by newer versions of CasualOS.

Alpha

Alpha servers support all CasualOS features just like common servers. The only difference from common servers is that they are updated to test features before they are released to the public. This makes it easier for the CasualOS development team to catch bugs and test features before the common servers are updated.

sheetPortal

The sheetPortal is a portal that makes it easy to view and edit bots which are in a dimension.

It can be opened by setting the #sheetPortal tag on the configBot to a dimension (such as "home"), or by clicking and selecting the "sheetPortal" button.

Image of bots in the sheetPortal

The sheetPortal organizes bots in columns where each bot is a column and each tag is represented along a row. Visually, this is similar to how a spreadsheet is displayed.

See Also

systemPortal

The systemPortal is a portal that makes it easy to find and edit bots by their #system tag.

It can be opened by setting the #systemPortal tag on the configBot to true. Additionally, it can also be opened by holding down the Shift key, clicking , and then selecting "systemPortal".

Image of bots in the systemPortal

The systemPortal organizes bots by their #system tag. #system tags that have multiple sections split by a period (.) will be placed in different folders in the systemPortal. Additionally, the "Search Bots" input box in the systemPortal can be used to filter bots by their #system tag.

For example, the first section might be the name of the app bundle, the second section would be the area that the bot belongs in, and the third section would be the name of the bot. e.g. myAppBundle.managers.timeline would specify that a bot belongs in myAppBundle and is one of the manager bots. The systemPortal would then show each bot organized by #system tag.

Image of bots in the systemPortal

See Also

Tag

Tags are pairs of names and their corresponding values. Each tag lives in a bot and represents an attribute of the bot. For example if a bot has a tag named color, and that tag has the value blue, then we would say that bot has #color set to blue. ("the color tag is set to blue")

In CasualOS, tags are used to store data as well as a way to program automations that respond to user actions. CasualOS has predefined automations for some tags. We call these tags "built-in tags" and they can be used to quickly decorate bots or control some of their behavior. For example, the #color tag can be used to change the color that a bot is displayed with while the #label tag can be used to show a text label on a bot.

tagPortal

The tagPortal is a portal that is used to view and edit a single tag on a single bot.

The tagPortal can be opened by setting the #tagPortal tag on the configBot to a string matching the following format: {botID}.{tagName}. Where {botID} is replaced with the ID of the and {tagName} is replaced by the name of the tag that should be shown in the portal.

Portals are places where humans can interface with bots. Portals utilize dimensions to allow interacting with and visualizing subsets of bots.

A list of built-in portals is available on the configBot documentation.

See Also