User Workflows
EdgeFirst Studio offers workflows tailored to your hardware and resources.
User Personas
The following diagram describes the workflow for identifying the user personas depending on the hardware requirements.
%%{init: {"flowchart": {"defaultRenderer": "elk"}} }%%
flowchart TD
%% Node definitions
user([User])
has_platform{Has a target\nplatform?}
has_edgefirst{Has an EdgeFirst\nPlatform?}
raivin_platform{Has a Raivin?}
with_lidar{Has LiDAR\nintegrated?}
has_smartphone{Has a\nsmartphone?}
wants_to_train{Will train and\ndeploy a model?}
wants_to_annotate{Has own data\nto annotate?}
wants_to_benchmark{Will review or\nbenchmark models?}
has_account{Has an\nEdgeFirst account?}
other_platforms[Other Platforms]
tourist([Tourist]):::yellow
tourist_plus([Tourist+]):::pink
profiler_user([Profiler]):::gold
profiler_plus_user([Profiler+]):::amber
auditor_user([Auditor]):::sage
web_user([Web]):::indigo
maivin_user([Maivin]):::blue
raivin_user([Raivin]):::orange
raivin_lidar_user([LiDAR]):::darker_orange
imx8mp_user([i.MX 8M Plus]):::green
imx95_user([i.MX 95]):::teal
orin_user([Jetson Orin]):::purple
pi_user([Raspberry Pi 5]):::coral
classDef yellow fill:#fff2a8,font-weight:bold;
classDef pink fill:#f7b6d9,font-weight:bold;
classDef gold fill:#ffe066,font-weight:bold;
classDef amber fill:#ffd54f,font-weight:bold;
classDef sage fill:#c8e6c9,font-weight:bold;
classDef indigo fill:#c8d3ff,font-weight:bold;
classDef blue fill:#d0ecff,font-weight:bold;
classDef teal fill:#a2e8ed,font-weight:bold;
classDef orange fill:#ffd699,font-weight:bold;
classDef darker_orange fill:#ffbb66,font-weight:bold;
classDef green fill:#a9e5bb,font-weight:bold;
classDef purple fill:#d6c1f5,font-weight:bold;
classDef coral fill:#ffc2bb,font-weight:bold;
%% Cloud branch
user --> has_platform
has_platform -- No --> has_smartphone
has_smartphone -- Yes --> web_user
has_smartphone -- No --> wants_to_train
wants_to_train -- Yes --> wants_to_annotate
wants_to_annotate -- Yes --> auditor_user
wants_to_annotate -- No --> profiler_plus_user
wants_to_train -- No --> wants_to_benchmark
wants_to_benchmark -- Yes --> profiler_user
wants_to_benchmark -- No --> has_account
has_account -- Yes --> tourist_plus
has_account -- No --> tourist
%% Hardware branch
has_platform -- Yes --> has_edgefirst
has_edgefirst -- Yes --> raivin_platform
has_edgefirst -- No --> other_platforms
other_platforms --> imx8mp_user
other_platforms --> imx95_user
other_platforms --> orin_user
other_platforms --> pi_user
raivin_platform -- Yes --> with_lidar
with_lidar -- Yes --> raivin_lidar_user
with_lidar -- No --> raivin_user
raivin_platform -- No --> maivin_user
PC Requirement
It is expected that for all personas identified above, the user has a PC with Wi-Fi access.
We've identified the following workflows that any user can follow starting from the most basic to the most features. The hardware requirements and the available features increases starting with the Tourist as the most basic.
- Cloud Personas: General-purpose cloud-based MLOps workflows designed for PC users.
- Hardware Personas: Hardware-specific (specialized) MLOps workflows tailored for deployment, validation, and optimization on supported target devices.
Cloud Personas
| Persona | Hardware | Features | Cost |
|---|---|---|---|
| Tourist | PC | Explore EdgeFirst Studio Landing Page and Feature Overview | Free |
| Tourist+ | PC | Sign Up, Login, Browse Public Datasets and Models | Free |
| Profiler | PC | Browse Hugging Face Model Zoo, Review Training and Validation Sessions | Free |
| Profiler+ | PC | Copy Sample Dataset, Retrain, Revalidate, Compare Against Hugging Face Model Zoo, Deploy on Browser or on Target (if available) | TBA |
| Auditor | PC | Copy Dataset, Annotate 2D, Train, Validate, Deploy on Browser | TBA |
| Web | PC + Smartphone | Record, Annotate 2D, Train, Validate, Deploy on Browser | TBA |
Hardware Personas
| Persona | Hardware | Features | Cost |
|---|---|---|---|
| Maivin | PC + Maivin | Record MCAP, Annotate 2D, Train, Validate, Deploy on Maivin | TBA |
| Raivin | PC + Raivin w/ Radar | Record MCAP, Annotate 2D + 3D, Train, Validate, Deploy on Raivin | TBA |
| LiDAR | PC + Raivin w/ LiDAR | Record MCAP, Annotate 2D + 3D (enhanced), Train, Validate, Deploy on Raivin | TBA |
| i.MX 8M Plus | PC + i.MX 8M Plus | Copy Dataset, Train, Validate, Deploy on i.MX 8M Plus | TBA |
| i.MX 95 | PC + i.MX 95 | Copy Dataset, Train, Validate, Deploy on i.MX 95 | TBA |
| Jetson Orin | PC + Jetson Orin | Copy Dataset, Train, Validate, Deploy on Jetson Orin | TBA |
| Raspberry Pi 5 | PC + Raspberry Pi 5 | Copy Dataset, Train, Validate, Deploy on Raspberry Pi 5 | TBA |
User Journey
The following diagram describes the workflows for each user persona identified above.
%%{init: {"flowchart": {"defaultRenderer": "elk", "nodeSpacing": 60, "rankSpacing": 80}, "elk": {"algorithm": "layered", "elk.spacing.nodeNode": 40, "elk.layered.spacing.nodeNodeBetweenLayers": 80}, "themeVariables": { "fontSize": "60px" }} }%%
flowchart LR
%% ---------------- USERS ----------------
subgraph Users
direction TB
users_pad[" "]:::invisible
tourist([Tourist]):::yellow
click tourist "tourist" "Open Tourist Workflow"
tourist_plus([Tourist+]):::pink
click tourist_plus "tourist_plus" "Open Tourist Plus Workflow"
profiler_user([Profiler]):::gold
click profiler_user "profiler" "Open Profiler Workflow"
profiler_plus_user([Profiler+]):::amber
click profiler_plus_user "profiler_plus" "Open Profiler Plus Workflow"
auditor_user([Auditor]):::sage
click auditor_user "auditor" "Open Auditor Workflow"
web_user([Web]):::indigo
click web_user "web" "Open Web Workflow"
maivin_user([Maivin]):::blue
click maivin_user "/platforms/quickstart/maivin/" "Open Maivin Workflow"
raivin_user([Raivin]):::orange
click raivin_user "/platforms/quickstart/raivin/" "Open Raivin Workflow"
raivin_lidar_user([Raivin + LiDAR]):::darker_orange
imx8mp_user([i.MX 8M Plus]):::green
click imx8mp_user "/platforms/quickstart/imx8mplus/" "Open i.MX 8M Plus Workflow"
imx95_user([i.MX 95]):::teal
click imx95_user "/platforms/quickstart/imx95/" "Open i.MX 95 Workflow"
orin_user([Jetson Orin]):::purple
click orin_user "/platforms/quickstart/jetson_orin/" "Open Jetson Orin Workflow"
pi_user([Raspberry Pi 5]):::coral
click pi_user "/platforms/quickstart/raspberrypi/" "Open Raspberry Pi Workflow"
end
%% ---------------- HARDWARE ----------------
subgraph Hardware
direction TB
setup_pad[" "]:::invisible
raivin_lidar_setup[Setup Raivin + LiDAR]:::darker_orange
click raivin_lidar_setup "../../platforms/quickstart/raivin/setup" "Open Raivin Setup"
raivin_setup[Setup Raivin]:::orange
click raivin_setup "../../platforms/quickstart/raivin/setup" "Open Raivin Setup"
maivin_setup[Setup Maivin]:::blue
click maivin_setup "../../platforms/quickstart/maivin/setup" "Open Maivin Setup"
imx8mp_setup[Setup i.MX 8M Plus]:::green
click imx8mp_setup "../../platforms/quickstart/imx8mplus/setup" "Open i.MX 8M Plus Setup"
imx95_setup[Setup i.MX 95]:::teal
click imx95_setup "../../platforms/quickstart/imx95/setup" "Open i.MX 95 Setup"
orin_setup[Setup Jetson Orin]:::purple
click orin_setup "../../platforms/quickstart/jetson_orin/setup" "Open Jetson Orin Setup"
pi_setup[Setup Raspberry Pi 5]:::coral
click pi_setup "../../platforms/quickstart/raspberrypi/setup" "Open Raspberry Pi Setup"
end
%% ---------------- DATA ----------------
subgraph Dataset
direction TB
record_mcap[Record MCAP]
click record_mcap "../../datasets/tutorials/capture/#record-mcap" "Record MCAP"
capture[Capture Phone Video/Images]
click capture "../../datasets/tutorials/capture/#capture-with-a-phone" "Capture Phone Video/Images"
snapshot[Upload MCAP]
click snapshot "../../datasets/tutorials/capture/#upload-mcap" "Upload MCAP"
copy_dataset[Copy Public Dataset]
click copy_dataset "../copy_dataset" "Copy Public Dataset"
audit_2d[Auto Annotate 2D]
click audit_2d "../../datasets/tutorials/annotations/automatic/" "Auto Annotate 2D"
audit_3d[Auto Annotate 3D]
click audit_3d "../../datasets/tutorials/annotations/automatic/" "Auto Annotate 3D"
browse_studio[Browse Studio]
end
%% ---------------- TRAINING + CONVERSION ----------------
subgraph TrainConvert[" "]
direction TB
%% ---------------- TRAINING ----------------
subgraph Training
direction TB
training_pad[" "]:::invisible
train_2d[Train Vision Model]
click train_2d "../../models/training/vision" "Open Training Vision"
ara2{Device has ARA2 processor?}
validate_2d[Validate Vision Model]
click validate_2d "../../models/validation/vision/user_managed" "Open Validating Vision"
train_3d[Train Fusion Model]
click train_3d "../../models/training/fusion" "Open Training Fusion"
validate_3d[Validate Fusion Model]
click validate_3d "../../models/validation/fusion/managed" "Open Validating Fusion"
training_pad_bottom[" "]:::invisible
end
%% ---------------- CONVERSION ----------------
subgraph Conversion
direction TB
conversion_pad[" "]:::invisible
tflite_converter[TFLite Converter]
click tflite_converter "../../models/conversion/tflite/" "Open TFLite Converter"
hailo_converter[Hailo Converter]
click hailo_converter "../../models/conversion/hailo/" "Open Hailo Converter"
tensorrt_converter[TensorRT Converter]
click tensorrt_converter "../../models/conversion/tensorrt/" "Open TensorRT Converter"
neutron_converter[Neutron Converter]:::teal
click neutron_converter "../../models/conversion/neutron/" "Open Neutron Converter"
kinara_converter[Kinara Converter]
click kinara_converter "../../models/conversion/ara2/" "Open Kinara Converter"
validate_tflite[Validate TFLite Model]
click validate_tflite "../../models/validation/vision/user_managed" "Open Validating Vision"
validate_hailo[Validate Hailo Model]
click validate_hailo "../../models/validation/vision/user_managed" "Open Validating Vision"
validate_tensorrt[Validate TensorRT Model]
click validate_tensorrt "../../models/validation/vision/user_managed" "Open Validating Vision"
validate_ara2[Validate ARA-2 Model]
click validate_ara2 "../../models/validation/vision/user_managed" "Open Validating Vision"
validate_imx95[Validate Converted Model]:::teal
click validate_imx95 "../../models/validation/vision/user_managed" "Open Validating Vision"
conversion_pad_bottom[" "]:::invisible
end
end
%% ---------------- DEPLOYMENT ----------------
subgraph Deployment
direction LR
deploy_pad[" "]:::invisible
raivin((Raivin)):::orange
click raivin "../../platforms/quickstart/raivin/deploy" "Open Raivin Deploy"
maivin((Maivin)):::blue
click maivin "../../platforms/quickstart/maivin/deploy" "Open Maivin Deploy"
imx8mp((i.MX 8M Plus)):::green
click imx8mp "../../platforms/quickstart/imx8mplus/deploy" "Open i.MX 8M Plus Deploy"
orin((Jetson Orin)):::purple
click orin "../../platforms/quickstart/jetson_orin/deploy" "Open Jetson Orin Deploy"
pi((Raspberry Pi 5)):::coral
click pi "../../platforms/quickstart/raspberrypi/deploy" "Open Raspberry Pi Deploy"
browser((Browser))
click browser "../../models/deployment/studio/" "Open Browser Deploy"
imx95((i.MX 95)):::teal
click imx95 "../../platforms/quickstart/imx95/deploy" "Open i.MX 95 Deploy"
deployment_pad_bottom[" "]:::invisible
end
%% ---------------- USER → SETUP ----------------
raivin_lidar_user --> raivin_lidar_setup
raivin_user --> raivin_setup
maivin_user --> maivin_setup
imx8mp_user --> imx8mp_setup
imx95_user --> imx95_setup
orin_user --> orin_setup
pi_user --> pi_setup
%% ---------------- SETUP → DATA ----------------
raivin_lidar_setup --> record_mcap
raivin_setup --> record_mcap
maivin_setup --> record_mcap
web_user --> capture
imx8mp_setup --> copy_dataset
imx95_setup --> copy_dataset
orin_setup --> copy_dataset
pi_setup --> copy_dataset
tourist --> browse_studio
tourist_plus --> browse_studio
auditor_user --> copy_dataset
profiler_plus_user --> copy_dataset
%% ---------------- DATA FLOW ----------------
record_mcap --> snapshot
snapshot --> audit_2d --> train_2d
snapshot -- LiDAR Only --> audit_3d --> train_3d
capture --> audit_2d
copy_dataset --> train_2d
copy_dataset -- Auditor --> audit_2d
%% ---------------- TRAINING PIPELINE ----------------
train_2d --> ara2
ara2 -- Yes --> kinara_converter --> validate_ara2
ara2 -- No --> validate_2d
train_2d --> neutron_converter --> validate_imx95
train_2d --> tflite_converter --> validate_tflite
train_2d --> hailo_converter --> validate_hailo
train_2d --> tensorrt_converter --> validate_tensorrt
train_3d --> validate_3d
%% ---------------- DEPLOYMENT ----------------
validate_2d --> browser
validate_tflite --> maivin
validate_tflite --> imx8mp
validate_tflite --> pi
validate_tflite --> raivin
validate_hailo --> pi
validate_tensorrt --> orin
validate_ara2 --> imx8mp
validate_ara2 --> imx95
validate_3d --> raivin
validate_imx95 --> imx95
%% ---------------- STYLES ----------------
classDef yellow fill:#fff2a8,font-weight:bold;
classDef pink fill:#f7b6d9,font-weight:bold;
classDef indigo fill:#c8d3ff,font-weight:bold;
classDef blue fill:#d0ecff,font-weight:bold;
classDef teal fill:#a2e8ed,font-weight:bold;
classDef orange fill:#ffd699,font-weight:bold;
classDef darker_orange fill:#ffbb66,font-weight:bold;
classDef green fill:#a9e5bb,font-weight:bold;
classDef purple fill:#d6c1f5,font-weight:bold;
classDef coral fill:#ffc2bb,font-weight:bold;
classDef gold fill:#ffe066,font-weight:bold;
classDef amber fill:#ffd54f,font-weight:bold;
classDef sage fill:#c8e6c9,font-weight:bold;
classDef invisible fill:transparent,stroke:transparent;
style TrainConvert fill:transparent,stroke:transparent;
Note
Labeled arrows indicate that only certain types of users can enter the stages they point to. For example, only Raivin and LiDAR users can "Auto Annotate 3D".
Cloud Workflows
-
This workflow is intended for users who want to explore EdgeFirst Studio and get an overview of the platform's features — no account required.
-
This workflow is intended for users who are ready to sign up, log in, and browse the public datasets and models available in EdgeFirst Studio.
-
This workflow is intended for users who want to browse and review model benchmarks in the EdgeFirst Model Zoo on Hugging Face and review training and validation sessions in EdgeFirst Studio — no training required.
-
This workflow extends the Profiler workflow with hands-on experimentation: copy a sample dataset, retrain a model, revalidate, and compare results against the Hugging Face Model Zoo baselines. Models can be deployed on a browser or on a compatible target device.
-
This workflow is intended for users who want to annotate their own datasets, train a custom model, validate it, and deploy on the browser — all in the cloud without requiring target hardware.
-
This workflow is intended for users with a personal computer and a mobile device with a camera with access to Wi-Fi and a web browser. The examples shown in this workflow will be from a Windows computer and an Android phone for recording images. Proceed to this workflow to see capturing and annotating datasets that will be used to train, validate, and deploy Vision models.
Hardware Workflows
-
Hardware-specific workflows for users with an EdgeFirst target device. Each platform has its own step-by-step workflow covering device setup, dataset acquisition, model training, conversion, on-target validation, and deployment.
Future Work
The workflows with missing links are a work in progress and currently unavailable.