Udap aims to efficiently link and aggregate many unlike interfaces into a heuristic model that can be manipulated and supplemented from add-on plugins called modules. These modules are written in go and compile during Udap's runtime. Modules can be configured to control computer settings, lights, music, air conditioners, phone systems, access points, media, or even spaceships.
Udap uses a certificate signed by its own certificate authority. New devices need to install a CA root certificate in order to access the UDAP platform.
Routing & Network Details
Any state within udap is stored within an attribute. These attributes belong to a parent entity.
An example:
You have a smart light bulb. It has two settings through it's api (which you've linked via a module), brightness and color hue. Each of these settings becomes its own attribute. The smart bulb is represented as an entity who's 'id' is linked to the aforementioned attributes.
Another examples:
You want to connect spotify to udap. Spotify's API has a lot of options, but we can just focus two attributes: isPlaying and currentSong. First you create an entity to represent the api, then you create and provide channels for resolving each attribute's status.
Phrase | Description |
---|---|
UDAP | Universal Device Aggregation Platform (encompasses all below terms) |
Core | The primary UDAP program instance, though there can be multiple core instances. |
Terminal | An authoritative udap interface instance (Used for configuration, management, and primary use) |
Mobile | The general purpose mobile app used for interacting with the UDAP platform. |
This is not an exhaustive list of UDAP's applications and configurations. There are more than sixty views in total.
A screenshot of the terminal unlocked screen as of v2.15.1. (With the background blur setting enabled)
This page allows an authenticated user to manage and monitor the runtime of UDAP's modules.
The sentry app controls a ceiling-mounted laser used for entertaining cats. The interface provides realtime positioning on of the beam, and allows for manual targeting and attenuation. (With BG blur setting disabled)
The exogeology app uses data from NOAA to display near-live images of the Earth and the Sol (the sun).
An element is a super class of a Plot, Pane, or other ui element that has a blurred background.
A Plot is a grid-like element that contains a fixed number of cells defined by a number of rows and columns. Plots can be configured to have a title and alt button. Plots are usually used to hold buttons or other contextual elements.
Plots can contain custom dom to serve whatever purpose is needed:
Plots are best used for providing many buttons for easy selection.
Line Count
git ls-files ./**/*.go ./**/*.vue ./client/src/**/*.ts ./embeded/**/*.cpp ./embeded/**/*.h ./embeded/**/*.c ./pkg/**/*.py ./client/**/*.scss | xargs wc -l
> 46603