Terminology
On this page
Darcy AI terminology
Engine
The Darcy AI engine is the part that runs the AI computations and manages the system resources such as memory and CPU threads. It can be considered the core “backend code” of Darcy AI. As a developer, you do not need to interact with the engine directly. You only need to use the provided interfaces in the API as described in the documentation.
Pipeline
Every Darcy AI application is allowed one pipeline. A Darcy AI pipeline is the sequenced set of AI processes that does the real work in the application. The Darcy AI pipeline code object is one of the main objects that you will interact with as a developer. It contains many important methods and the AI processing starts when the “run()” method is called.
Perceptor
A Darcy AI perceptor is a code module that integrates raw AI processing with CPU code to make an easy-to-use semantic interface for the underlying AI output. Perceptors are built by developers who understand AI programming but are used by AI application developers who want to leverage the perceptor abilities. This frees AI application developers from needing to become AI experts and opens a perceptor library ecosystem.
Perception Object Model (POM)
Similar to the Document Object Model (DOM) that is found in web browsers, the Perception Object Model (POM) is a data tree structure found in Darcy AI applications. The POM is the place where the outputs of each pipeline step are stored. The POM is available to Darcy AI application developers at each pipeline step, when a whole pipeline cycle has been completed, and at any point when the developer desires to interact with it. The POM also contains a history of all AI raw inputs and processing results.
Input Stream
A Darcy AI input stream is the source data that is used for AI processing. Because Darcy’s “senses” can be expanded to include any source of data, an input stream code object is used to encapsulate the processing that is done to prepare incoming data for AI workloads. An example of an input stream code library is one that captures the frames of video from a camera and also merges the thermal camera data with each frame, even though the two cameras provide data at different rates. An input stream is attached to a pipeline by you, the Darcy AI application developer.
Output Stream
A Darcy AI output stream is a code library that receives the data from the pipeline processing and produces a useful output, such as a video display or a CSV file. Many output streams can be attached to a single pipeline by you, the Darcy AI application developer.
Callback
For every step in the Darcy AI application processing, work is needed to format and produce business value from incoming data and outgoing data. The way that Darcy allows developers to do this work is to have their code processed by Darcy when the time is right. This is called a “callback” and it is a well-known pattern of software development in JavaScript and other languages. By using callbacks, developers can focus on just the pieces of code that relate to their actual application and know that Darcy will run their code for them.
Frame, Cycle, or Pulse
Every complete trip through a Darcy AI pipeline is called a frame. It can also be called a cycle or a pulse.
Initialization
In order to allow Darcy to start doing AI processing, some foundational settings must be chosen and some basic requirements must be met, such as providing an input stream. Then the Darcy AI pipeline needs to be started so the application can run. These steps are called the Darcy AI initialization and they must be performed by the developer in every application.
Docker Base Image
There are many software packages and libraries that Darcy AI applications need in order to build and run properly. Asking you, the developer, to know and understand these dependencies would slow you down and cause you unecessary complexity. To circumvent this problem, the required software is bundled ahead of time in easy-to-use base images that are Docker containers. Because they are already Docker containers, you can make your application Docker containers easily by starting from one of the provided base container images.
Performance Metrics
Darcy tracks system performance when doing AI processing. Each trip through the pipeline steps is measured, along with the individual pipeline steps. Darcy AI application developers can request this performance data in their application, which allows for benchmarking, profiling, and innovative displays that show how fast each part of Darcy’s work is being done.
AI Model
The actual AI neural network processing is done using AI models. An AI model is a stored image of a neural net that was built during an AI training or retraining process. Most developers use AI models that already exist and were created by someone else. Darcy AI perceptors contain AI models and make them easier to use. Most Darcy AI application developers do not need to use AI models directly because of the perceptor architecture.
Darcy Cloud terminology
Darcy Cloud
Darcy Cloud is the platform for managing and monitoring edge devices. Darcy Cloud includes a web-based portal at cloud.darcy.ai .
Cloud API
Cloud API is the REST API for Darcy Cloud. Cloud Portal and edgectl both communicate with Cloud API. You may also build your own applications that interact directly with cloud API. See the Cloud API REST documentation .
edgectl
edgectl is the CLI for Darcy Cloud. See Get Started: edgectl for more.
Account & Org
To sign-up for a Darcy Cloud account, visit cloud.darcy.ai . The user must provide an email and select a unique username.
An Org (i.e. Organization) is typically created for a corporate entity. For
example, Acme, Inc.
may create an org acme
. An org is the container for projects.
BETA: The Darcy Cloud BETA release does not currently support managing corporate orgs.
On creating a new account, a new Personal Org is automatically created for that account. Thus if
the account username is alice
, a new org alice
is also created, and so Alice’s projects will
live under her alice
org.
Access Token
Cloud API access is secured by the use of an Access Token, which comes in two flavors, Personal Access Token and Project Access Token. A Personal Access Token (effectively an Account Access Token) works at the account level: it typically grants all access that the account has. As one might expect, a Project Access Token works at the project level: this token only works for the project it was issued for.
For both Personal and Project Access Token, a master token is automatically issued, which can be rotated, but or deleted. And for both token types, additional tokens can be generated, for circumstances when it’s unwise to share the master token (e.g. for CI pipelines, scripts, etc.).
In Darcy Cloud Portal, you can view the list of Personal Access Tokens from the Access Tokens link in the top-right drop-down. The list of Project Access Tokens can be accessed via the gear icon on the project page.
You can use an Access Token to make REST calls to Cloud API, or to login to edgectl
via edgectl login --token xyz
.
Project
A project is a container for a set of nodes (edge devices), which you can SSH into, or deploy iofog applications to. You can create multiple projects inside an org (limited by your plan).
As described in the Access Token section, a project is automatically issued a project master token, which can be rotated, but not deleted. You can also generate additional Project Access Tokens if desired.
Node
A node is a physical (or virtual) edge device, such as a Raspberry Pi, Intel NUC, Google Coral, or any supported edge device (including Linux VMs).
To add a node to a project, execute the project’s node install script directly on that node.
Node Install Script
You add a node to a project by executing the project’s node install script directly on the node.
$ ssh alice@mypi
# You are logged into mypi
# Fetch and and execute the node install script
$ curl -s https://ecj_hv98d4adwdhgk435ebzuwakfg995016kh3ys@api.edgeworx.io/v1/project/6077569f-4351-4245-a3e2-41d2452857d5/node-install-script | sudo bash
Installing Edgeworx Agent
1 Initializing
2 Finger printing system
▶ Shell
∙ Exec: /usr/bin/zsh
∙ User: root
▶ Host
∙ Hostname: ubuntu
[...]
You can access the node install script via the Add Node
button in Cloud Portal, or by
executing edgectl get node-install-script
.
Application
An app or application means
an
ioFog
application. That is to
say, it is a set of microservices running on a set of nodes in a project. You can add an app
to a project via Cloud Portal, or via edgectl deploy app
.
Microservice
A microservice (often shortened to msvc) is an individual container running as part of an ioFog app on a set of nodes in a project.