> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build the application with custom AI model integration

> Choose a QIM SDK development path, validate the pipeline, and go from bring-up to a production application, with links into the full QIM SDK documentation.

This page is the application-development step of the workflow. Once your model runs in a pipeline and its output is converted into usable metadata, you choose a development path — GStreamer, Python, C++, or the Coding Agent — validate the pipeline, and take it from bring-up to production.

This workflow page keeps the decisions and the sequence in one place and links into the full [QIM SDK documentation](https://imsdkdocs.qualcomm.com/index) for the detailed API references, quickstarts, and sample pipelines you need along the way.

<Info>
  **Step 4 of the [application development workflow](../topic/imsdk-app-development#application-development-workflow)** — the final step, where every model route converges.
</Info>

## Before you begin

Confirm the following before you start building. This page assumes the model integration from the earlier steps is already working.

| Prerequisite | How to confirm |
| - | - |
| The model runs through an inference plugin | The model loads and produces output tensors with `qtimltflite` or `qtimlqnn`. |
| Post-processing produces usable metadata | An existing `qtimlpostprocess` module handles the output, or you onboarded a [custom module](../topic/add-postprocessing-support-custom-model). |
| Labels and settings are known | You have the production `labels`, `settings`, and `results` values for your model, not just bring-up defaults. |
| A target device is available | You can deploy and run on the target Qualcomm platform, not only on a host. |
| QIM SDK is installed | The SDK and App Builder tooling are set up — see [Set up and build QIM SDK](https://imsdkdocs.qualcomm.com/advanced/yocto-build) and the [QIM SDK documentation](https://imsdkdocs.qualcomm.com/index). |

## Choose a development path

QIM SDK provides four ways to build an application, and all of them drive the same QIM SDK plugins. The pipeline you validate early therefore stays valid as you move to a higher-level application layer. Pick the path that matches the current maturity of your application.

| Development path | Best for | How it uses the model integration | Learn more in the QIM SDK docs |
| - | - | - | - |
| **GStreamer App Builder** | Pipeline validation, debugging, and low-level control | Uses the model, inference plugin, and `qtimlpostprocess` module directly in a native GStreamer pipeline. | [GStreamer quickstart](https://imsdkdocs.qualcomm.com/quickstart) · [Sample pipelines](https://imsdkdocs.qualcomm.com/quickstart) |
| **Python App Builder** | Rapid prototyping, demos, and orchestration | Drives the validated pipeline through a high-level Python application flow. | [Python App Builder](https://imsdkdocs.qualcomm.com/app-builder/python-quickstart) · [API reference](https://imsdkdocs.qualcomm.com/app-builder/python-architecture-api-reference) |
| **C++ App Builder** | Production applications | Wraps the validated pipeline in a C++ application using QIM SDK APIs. | [C++ App Builder](https://imsdkdocs.qualcomm.com/app-builder/cpp-quickstart) · [API reference](https://imsdkdocs.qualcomm.com/app-builder/cpp-architecture-api-reference) |
| **Coding Agent** | Guided, assisted generation of application code | Generates and deploys applications across the Python, C++, and GStreamer App Builder workflows. | [Python Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/python-coding-agent) · [C++ Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/cpp-coding-agent) · [GStreamer Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/gstreamer-coding-agent) |

<Note>
  New to the App Builders? Start with the [App Builder introduction](https://imsdkdocs.qualcomm.com/app-builder/introduction) in the QIM SDK documentation for an overview of the programming models before you choose one.
</Note>

## Recommended build sequence

Validate the AI pipeline before developing the application layer. This approach helps isolate model, inference, and post-processing issues early, making integration and debugging significantly easier.

```mermaid theme={null}
%%{init: {"themeVariables": {"fontSize": "13px"}, "flowchart": {"htmlLabels": true, "nodeSpacing": 18, "rankSpacing": 26, "curve": "basis", "padding": 6}}}%%
flowchart LR
    V1["1 · Validate<br/>the model"]
    V2["2 · Select the post-<br/>processing module"]
    V3["3 · Run in a<br/>GStreamer pipeline"]
    B1["4 · Move to C++ or<br/>Python App Builder"]
    B2["5 · Test on the<br/>target platform"]

    V1 --> V2 --> V3 --> B1 --> B2

    classDef validate fill:#3253DC,stroke:#3253DC,color:#fff;
    classDef build fill:#31017D,stroke:#31017D,color:#fff;
    class V1,V2,V3 validate;
    class B1,B2 build;
```

<Steps>
  <Step title="Validate the model">
    Validate the model independently of the final application and confirm its expected input and output tensor formats. If the model still requires conversion, optimization, or quantization, complete those steps first in the [model preparation workflow](../map/compile-and-optimize-model).
  </Step>

  <Step title="Select or create a post-processing module">
    Choose an existing [`qtimlpostprocess`](https://imsdkdocs.qualcomm.com/plugin-reference/qtimlpostprocess) module that supports your model's output format. If no suitable module exists, implement a [custom post-processing module](../topic/add-postprocessing-support-custom-model) to convert raw inference outputs into QIM SDK-compatible metadata.
  </Step>

  <Step title="Verify the pipeline with GStreamer">
    Run the complete AI pipeline in GStreamer before writing application code. Validate preprocessing, inference, post-processing, labels, thresholds, and output rendering using a [reference pipeline](https://imsdkdocs.qualcomm.com/sample-pipelines/aipipelines). This provides a fast feedback loop for troubleshooting and tuning.
  </Step>

  <Step title="Integrate into an application">
    Once the pipeline is validated, migrate it into a [C++ App Builder](https://imsdkdocs.qualcomm.com/app-builder/cpp-app-builder) or [Python App Builder](https://imsdkdocs.qualcomm.com/app-builder/python-app-builder) application if your deployment requires a structured application framework. The [Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/introduction) can help generate the application scaffold and integrate the validated pipeline.
  </Step>

  <Step title="Validate on the target platform">
    Test the application on the target Qualcomm platform using representative workloads, resolutions, frame rates, and deployment settings. Verify that performance and functionality meet production requirements before release. See the [production readiness checklist](#production-readiness-checklist).
  </Step>
</Steps>

<Tip>
  Validate each layer independently. A working GStreamer pipeline significantly reduces the effort required to diagnose issues after application integration.
</Tip>

<Note>
  This AI Developer Workflow provides a guided path for building and deploying AI applications with QIM SDK. For detailed implementation guidance, including installation, plugin documentation, App Builder APIs, sample pipelines, and reference applications, refer to the [QIM SDK documentation](https://imsdkdocs.qualcomm.com/index). Use this workflow to determine *what* to do next, and the QIM SDK documentation to learn *how* to do it.
</Note>

## Quickstart references

Use the QIM SDK quickstart that matches your selected development path. The GStreamer quickstart is recommended for first-time validation of an AI model pipeline.

<CardGroup cols={3}>
  <Card title="GStreamer App Builder" icon="diagram-project" href="https://imsdkdocs.qualcomm.com/quickstart">
    Validate the pipeline on the command line, then scale up.
  </Card>

  <Card title="Python App Builder" icon="python" href="https://imsdkdocs.qualcomm.com/app-builder/python-quickstart">
    Prototype and orchestrate the application in Python.
  </Card>

  <Card title="C++ App Builder" icon="code" href="https://imsdkdocs.qualcomm.com/app-builder/cpp-quickstart">
    Build the production application with QIM SDK C++ APIs.
  </Card>
</CardGroup>

<Card title="Not sure which to pick? Start with the App Builder introduction" icon="compass" href="https://imsdkdocs.qualcomm.com/app-builder/introduction">
  Compare the GStreamer, Python, C++, and Coding Agent programming models in the QIM SDK documentation before you commit to one.
</Card>

## Related information

* [Profile your model](../topic/profile-your-model) — measure and tune on-device performance.
* [Troubleshooting](../topic/troubleshooting) — resolve pipeline and runtime issues.
* [QIM SDK documentation](https://imsdkdocs.qualcomm.com/index) — the complete SDK reference for App Builders, plugins, and sample pipelines.
