# Integrate Custom Model in an Application

This section describes the paths available for you to deploy
your custom model with Qualcomm SDKs.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export integrate-custom-model-in-app.svg develop-own-app -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.1354in" height="6.14809in" viewbox="0 0 873.75 442.663" xml:space="preserve" color-interpolation-filters="sRGB" class="st19 svg-1" aria-label="../_images/integrate-custom-model-in-app.svg" svgdefaultwidth="873"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #f8f8f8; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st3 { fill: #d2d7e1; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st4 { fill: #000000; font-family: Roboto; font-size: 1.16666em }
.svg-1 .st5 { fill: #2a2aea; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st6 { fill: #ffffff; font-family: Roboto; font-size: 1.16666em }
.svg-1 .st7 { fill: #020b3f; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st8 { font-size: 1em }
.svg-1 .st9 { font-size: 1em; font-weight: bold }
.svg-1 .st10 { font-size: 1em; font-style: italic }
.svg-1 .st11 { stroke: #843aff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st12 { marker-end: url("#1-mrkr4-64"); stroke: #843aff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st13 { fill: #843aff; fill-opacity: 1; stroke: #843aff; stroke-opacity: 1; stroke-width: 0.29411764705882 }
.svg-1 .st14 { fill: #000000; font-family: Roboto; font-size: 1.08334em }
.svg-1 .st15 { fill: #000000; font-family: Symbol; font-size: 1.00001em }
.svg-1 .st16 { font-family: Roboto; font-size: 1em }
.svg-1 .st17 { font-family: Roboto; font-size: 1em; font-weight: bold; text-decoration: underline }
.svg-1 .st18 { fill: #000000; font-family: Roboto; font-size: 1.5em; font-style: italic }
.svg-1 .st19 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="1-mrkr4-64" class="st13" v:arrowtype="4" v:arrowsize="1" v:setback="6.8" refx="-6.8" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-3.4,-3.4) "></use>	</marker></defs><g v:mid="5" v:index="1" v:groupcontext="foregroundPage">	<title>develop-own-app</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape62-1" v:mid="62" v:groupcontext="shape" transform="translate(9,-27)">		<title>Sheet.62</title>		<rect x="0" y="37.6626" width="855" height="405" class="st1"></rect>	</g>	<g id="shape2-3" v:mid="2" v:groupcontext="shape" transform="translate(37.125,-58.5)">		<title>Sheet.2</title>		<rect x="0" y="98.0679" width="791.625" height="344.595" class="st2"></rect>	</g>	<g id="shape14-5" v:mid="14" v:groupcontext="shape" transform="translate(352.169,-385.769)">		<title>Sheet.14</title>		<desc>Developer’s model</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="423.216" width="168.67" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="168.663" height="38.8938" class="st3"></rect>		<text x="27.02" y="427.42" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Developer’s model</text>		</g>	<g id="shape27-8" v:mid="27" v:groupcontext="shape" transform="translate(19.9621,-316.231)">		<title>Sheet.27</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="75.519" cy="423.216" width="151.04" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="151.038" height="38.8938" class="st5"></rect>		<text x="54.37" y="427.42" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape28-11" v:mid="28" v:groupcontext="shape" transform="translate(249.462,-316.231)">		<title>Sheet.28</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="75.519" cy="423.216" width="151.04" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="151.038" height="38.8938" class="st5"></rect>		<text x="54.37" y="427.42" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape29-14" v:mid="29" v:groupcontext="shape" transform="translate(478.962,-316.231)">		<title>Sheet.29</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="423.216" width="168.67" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="168.663" height="38.8938" class="st5"></rect>		<text x="63.18" y="427.42" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape30-17" v:mid="30" v:groupcontext="shape" transform="translate(709.175,-316.231)">		<title>Sheet.30</title>		<desc>SNPE/QNN Native C/C++ application</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72.1189" cy="423.216" width="144.24" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="144.238" height="38.8938" class="st7"></rect>		<text x="15.29" y="419.02" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>SNPE/QNN Native <v:lf></v:lf><tspan x="16.08" dy="1.2em" class="st8">C/C++ application</tspan></text>		</g>	<g id="shape34-21" v:mid="34" v:groupcontext="shape" transform="translate(19.9621,-207)">		<title>Sheet.34</title>		<desc>Beginner: Use case supported Model supported ~15 minutes</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="75.519" cy="387.645" width="151.04" height="110.034"></v:textrect>		<rect x="0" y="332.628" width="151.038" height="110.034" class="st2"></rect>		<text x="4" y="349.85" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Beginner:<v:newlinechar></v:newlinechar><v:lf></v:lf><tspan x="4" dy="2.4em" class="st8">Use case supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.2em" class="st8">Model supported<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="2.4em" class="st8">~15 minutes</tspan></text>		</g>	<g id="shape35-27" v:mid="35" v:groupcontext="shape" transform="translate(249.462,-206.197)">		<title>Sheet.35</title>		<desc>Moderate: Use case supported Model NOT supported ~ 2 days*</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="75.519" cy="387.645" width="151.04" height="110.034"></v:textrect>		<rect x="0" y="332.628" width="151.038" height="110.034" class="st2"></rect>		<text x="4" y="349.85" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Moderate:<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="4" dy="2.4em" class="st8">Use case supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.2em" class="st8">Model </tspan><tspan class="st9">NOT </tspan>supported<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="4" dy="2.4em" class="st8">~ 2 days</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape36-35" v:mid="36" v:groupcontext="shape" transform="translate(479.337,-206.197)">		<title>Sheet.36</title>		<desc>Advanced: Use case NOT supported Model NOT supported ~ 2 weeks*</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="387.645" width="168.67" height="110.034"></v:textrect>		<rect x="0" y="332.628" width="168.663" height="110.034" class="st2"></rect>		<text x="4" y="349.85" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Advanced:<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="4" dy="2.4em" class="st8">Use case </tspan><tspan class="st9">NOT</tspan> supported <v:newlinechar></v:newlinechar><tspan x="4" dy="1.2em" class="st8">Model </tspan><tspan class="st9">NOT </tspan>supported<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="4" dy="2.4em" class="st8">~ 2 weeks</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape37-44" v:mid="37" v:groupcontext="shape" transform="translate(709.175,-206.197)">		<title>Sheet.37</title>		<desc>Advanced: No constraints ~ 1 week*</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72.1189" cy="387.645" width="144.24" height="110.034"></v:textrect>		<rect x="0" y="332.628" width="144.238" height="110.034" class="st2"></rect>		<text x="4" y="349.85" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Advanced:<v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><tspan x="4" dy="2.4em" class="st8">No constraints <v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar><v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="3.6em" class="st8">~ 1 week</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape44-50" v:mid="44" v:groupcontext="shape" transform="translate(879.163,56.6814) rotate(90)">		<title>Sheet.44</title>		<path d="M0 442.66 L17.36 442.66" class="st11"></path>	</g>	<g id="shape46-53" v:mid="46" v:groupcontext="shape" transform="translate(436.5,516.7) rotate(180)">		<title>Sheet.46</title>		<path d="M0 442.66 L342 442.66" class="st11"></path>	</g>	<g id="shape47-56" v:mid="47" v:groupcontext="shape" transform="translate(436.5,-368.625)">		<title>Sheet.47</title>		<path d="M0 442.66 L351 442.66" class="st11"></path>	</g>	<g id="shape48-59" v:mid="48" v:groupcontext="shape" transform="translate(537.163,74.0376) rotate(90)">		<title>Sheet.48</title>		<path d="M0 442.66 L8.4 442.66" class="st12"></path>	</g>	<g id="shape49-65" v:mid="49" v:groupcontext="shape" transform="translate(766.663,74.0376) rotate(90)">		<title>Sheet.49</title>		<path d="M0 442.66 L8.4 442.66" class="st12"></path>	</g>	<g id="shape50-70" v:mid="50" v:groupcontext="shape" transform="translate(1000.66,74.0376) rotate(90)">		<title>Sheet.50</title>		<path d="M0 442.66 L8.4 442.66" class="st12"></path>	</g>	<g id="shape51-75" v:mid="51" v:groupcontext="shape" transform="translate(1230.16,74.0376) rotate(90)">		<title>Sheet.51</title>		<path d="M0 442.66 L8.4 442.66" class="st12"></path>	</g>	<g id="shape52-80" v:mid="52" v:groupcontext="shape" transform="translate(18,-168.106)">		<title>Sheet.52</title>		<desc>Compile application, IMSDK with eSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="315" cy="423.216" width="630" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="630" height="38.8938" class="st3"></rect>		<text x="195.52" y="427.42" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Compile application, IMSDK with eSDK</text>		</g>	<g id="shape55-83" v:mid="55" v:groupcontext="shape" transform="translate(18,-128.894)">		<title>Sheet.55</title>		<desc>16 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="423.216" width="168.67" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="168.663" height="38.8938" class="st2"></rect>		<text x="4" y="427.12" class="st14" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>16 – AI Hub models</text>		</g>	<g id="shape56-86" v:mid="56" v:groupcontext="shape" transform="translate(245.337,-128.894)">		<title>Sheet.56</title>		<desc>03 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="423.216" width="168.67" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="168.663" height="38.8938" class="st2"></rect>		<text x="4" y="427.12" class="st14" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>03 – AI Hub models</text>		</g>	<g id="shape58-89" v:mid="58" v:groupcontext="shape" transform="translate(481.5,-128.25)">		<title>Sheet.58</title>		<desc>05 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="84.3315" cy="423.216" width="168.67" height="38.8938"></v:textrect>		<rect x="0" y="403.769" width="168.663" height="38.8938" class="st2"></rect>		<text x="4" y="427.12" class="st14" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>05 – AI Hub models</text>		</g>	<g id="shape59-92" v:mid="59" v:groupcontext="shape" transform="translate(31.5,-38.25)">		<title>Sheet.59</title>		<desc>Developers should be able to replicate our deliverables in ~ ...</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="315" cy="411.163" width="630" height="63"></v:textrect>		<rect x="0" y="379.663" width="630" height="63" class="st2"></rect>		<text x="4" y="407.52" class="st15" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist><v:newlinechar></v:newlinechar><v:paragraph v:indentfirst="-18" v:indentleft="18" v:bullet="1"></v:paragraph><tspan class="st8" v:isbullet="true">·</tspan> <tspan class="st16">Developers should be able to replicate our deliverables in ~ 2 hours.<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.215em" class="st8" v:isbullet="true">·</tspan> <tspan class="st16">The times above are the times for you to write a </tspan><tspan class="st17">new app of your own<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.279em" class="st8" v:isbullet="true">·</tspan> <tspan class="st16">See  Qualcomm AI Hub for the latest available models</tspan></text>		</g>	<g id="shape63-102" v:mid="63" v:groupcontext="shape" transform="translate(18,-42.7499)">		<title>Sheet.63</title>		<desc>*</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="315" cy="411.163" width="630" height="63"></v:textrect>		<rect x="0" y="379.663" width="630" height="63" class="st2"></rect>		<text x="4" y="416.56" class="st18" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>* </text>		</g></g>
</svg>

**Bring your own model: Time taken to deploy a model**

Note

The moderate and advanced paths assume understanding of
[GStreamer fundamentals](https://gstreamer.freedesktop.org/documentation/tutorials/index.html),
understanding of [GStreamer pipelines](https://gstreamer.freedesktop.org/documentation/gstreamer/gstpipeline.html?gi-language=c),
expertise in C/C++, and a [Yocto build environment](https://docs.yoctoproject.org/2.1/yocto-project-qs/yocto-project-qs.html).

Last Published: Jan 21, 2026

[Previous Topic
Download source code for development](https://docs.qualcomm.com/bundle/publicresource/80-70017-15B/topics/develop-your-own-application.md) [Next Topic
Integrate AI Hub models in an application](https://docs.qualcomm.com/bundle/publicresource/80-70017-15B/topics/integrate-ai-hub-models.md)