# Software

Use the following links to jump over the step by step intro and dive straight into Luxonis SDK and the full OAK software stack:
DepthAI API, tools and examples across OAK USB, PoE and OAK4 cameras.

### DepthAI API (Python/C++)

DepthAI v3 SDK library for building pipelines and apps on OAK and OAK4 cameras.

[Open DepthAI API docs](https://docs.luxonis.com/software-v3/depthai.md)

### oakctl CLI

Command-line tool for managing and configuring OAK4 devices and deploying apps.

[Install oakctl](https://docs.luxonis.com/software-v3/oak-apps/oakctl.md)

### DepthAI Examples

Reference examples for building DepthAI pipelines on OAK cameras.

[Browse examples](https://docs.luxonis.com/software-v3/depthai/examples.md)

For an easy step by step introduction into OAK4 and OAK devices follow the steps below.

### Getting Started

Pick the correct getting started guide for your device.

### Connecting OAK4

Use the RVC4-based OAK4 Getting Started guide to set up the hardware and perform the initial configuration.

[OAK4 Getting Started](https://docs.luxonis.com/hardware/platform/deploy/oak4-deployment-guide/oak4-getting-started.md)

### Connecting OAK

Follow the RVC2-based OAK Getting Started to see how to connect it to your host PC.

[OAK Getting Started](https://docs.luxonis.com/hardware/platform/deploy/usb-deployment-guide.md)

After you have you camera connected, the quickest way to start is by running OAK Viewer.

### OAK Viewer

OAK Viewer is a desktop GUI application that allows you to visualize the camera's streams and interact with the device. It is
available for Windows, macOS and Linux.

[Click here to get started](https://docs.luxonis.com/software-v3/depthai/tools/oak-viewer.md)

### Running your first App

Try out our [pre-made applications](https://github.com/luxonis/oak-examples/tree/main) to dip your toes into our ecosystem. Here
is an example of how to start the generic neural network app:

### Run first application with OAK4

### Install oakctl

#### Linux/MacOS

On 64bit system, run:

```bash
bash -c "$(curl -fsSL https://oakctl-releases.luxonis.com/oakctl-installer.sh)"
```

#### Windows

Download and install using the [Windows Installer](https://oakctl-releases.luxonis.com/data/latest/windows_x86_64/oakctl.msi).

### Deploy an example App

```bash
# Connect to the device
oakctl connect
# Clone the repo
git clone --depth 1 --branch main https://github.com/luxonis/oak-examples.git
# Change directory to the generic-example
cd oak-examples/neural-networks/generic-example/
# Run the app and follow instructions to open the web viewer
oakctl app run .
```

> **You just ran the App in Standalone mode.**
> See below for the difference between Standalone and Peripheral mode.

[Continue exploring other pre-made applications](https://github.com/luxonis/oak-examples/tree/main)

### Run first application with OAK

#### Linux/MacOS

```bash
# Clone the repo
git clone --depth 1 --branch main https://github.com/luxonis/oak-examples.git
# Change directory to the generic-example
cd oak-examples/neural-networks/generic-example/
# Create and enter virtual python environment
python3 -m venv venv
source venv/bin/activate
# Install requirements into the environment
pip install -r requirements.txt
# Run the app and follow instructions to open the web viewer
python3 main.py
```

#### Windows

```bash
# Clone the repo
git clone --depth 1 --branch main https://github.com/luxonis/oak-examples.git
# Change directory to the generic-example
cd oak-examples\neural-networks\generic-example\
# Install requirements
pip install -r requirements.txt
# Run the app and follow instructions to open the web viewer
python main.py
```

> **You just ran the App in Peripheral mode.**
> See below for the difference between Standalone and Peripheral mode.

[Continue exploring other pre-made applications](https://github.com/luxonis/oak-examples/tree/main)

### Standalone vs Peripheral

| Compatibility | Standalone¹ | Peripheral² |
| --- | --- | --- |
| OAK4 | ✅ | ✅ |
| OAK | 🚫 | ✅ |

 1. Standalone: The App is run only on the camera. Apps are deployed via
    [oakctl](https://docs.luxonis.com/software-v3/oak-apps/oakctl.md).

 2. Peripheral: The App runs on the camera, but the host computer remains connected to it over a TCP socket. Apps are run using
    the [DepthAI API](https://docs.luxonis.com/software-v3/depthai.md). Best used for quick prototyping and development.

### Building the App from ground up

Quickest way to get started with developing on your own is to use the [template
app](https://docs.luxonis.com/software-v3/template.md). This app is a starting point for your own applications and includes all
the necessary components to get you up and running.

```bash
# Install core packages
pip install depthai --force-reinstall
# Clone the template app
git clone https://github.com/luxonis/oak-template.git
# Change directory to the template app
cd oak-template
# Install requirements
pip install -r requirements.txt
```

This will download the template / cookie-cutter app to your current directory.

```text
template-app/
├── main.py
├── oakapp.toml
├── requirements.txt
├── media/ # Optional media files
└── utils/ # Optional helper functions
```

[Continue developing your template app](https://docs.luxonis.com/software-v3/template.md)

### Next Steps

We suggest you continue exploring the ecosystem in one of the following ways.

### OAK Apps

Build, package, and manage containerized computer vision apps for OAK devices.

[Open OAK Apps overview](https://docs.luxonis.com/software-v3/oak-apps.md)

### DepthAI

Use the DepthAI API to build and run real-time vision pipelines on OAK and OAK4 cameras.

[Open DepthAI overview](https://docs.luxonis.com/software-v3/depthai.md)

### AI

Explore model deployment, inference workflows, and AI tooling for OAK devices.

[Open AI overview](https://docs.luxonis.com/software-v3/ai-inference.md)
