> This page is for version 5.0 (Latest) (default).
> For other versions, use one of these documentation indexes:
> - 5.0 (Latest) (default): https://docs.nvidia.com/holoscan/sdk-user-guide/5-0-latest/llms.txt
> - ltsb-2.0: https://docs.nvidia.com/holoscan/sdk-user-guide/ltsb-2-0/llms.txt
> - 4.6: https://docs.nvidia.com/holoscan/sdk-user-guide/4-6/llms.txt
> - 4.5: https://docs.nvidia.com/holoscan/sdk-user-guide/4-5/llms.txt
> - 4.4: https://docs.nvidia.com/holoscan/sdk-user-guide/4-4/llms.txt
> - 4.3: https://docs.nvidia.com/holoscan/sdk-user-guide/4-3/llms.txt
> - Archives: https://docs.nvidia.com/holoscan/sdk-user-guide/archives/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sdk-user-guide/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sdk-user-guide/_mcp/server.

Holoscan SDK 5.0 ships a compact set of runnable C++ examples, each one built
to exercise a specific slice of the runtime: from a one-line install check to a
full multi-rate sensor-fusion application with external client processes. This
page is the gallery. It tells you what each example demonstrates, which guide
chapters it pairs with, and how to build and run everything.

Every example lives under `public/examples/` in the SDK source tree. Its source is
installed alongside the SDK when the corresponding component is enabled, so
you can read it next to the guide pages that explain it.

> **You will learn**
>
> * What each shipped example demonstrates, at a glance
> * Which guide chapters each example pairs with
> * The role of the hero application (`camera_imu_control`) and its
>   companion processes
> * How to build the examples in-tree or standalone against an installed SDK
> * How to run examples and their bundled tests

> **Warning**
>
> The examples are actively being improved for the 5.0 release. Names and
> observable behavior described here are stable, but internal details of the
> sources may shift between releases. When an excerpt in the guide differs
> from the tree you have, trust the tree.

## The gallery at a glance

Each entry links to the exact source directory. **Core** and **Essential**
identify the implementation layer of the capability the example teaches;
**Experimental** identifies its experimental status. Parenthetical maturity
qualifiers such as **Beta** mirror the linked page or stability callout where
shown; their absence is not a declaration that a capability is Stable. Use
[API stability](/holoscan/sdk-user-guide/introduction/api-stability) as the
area-level authority. The `examples/experimental/` directory is a baseline
example-catalog location, not the stability authority — an example may live
there while the capability it demonstrates is Beta.

### Installation smoke tests

| Example                                                                                                 | Classification | What it exercises                                                              | Guide                                                        |
| ------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------ |
| [`hello_world`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_world/cpp)   | Core           | One call to `holoscan::hello()` verifies the install, compiler, and link line. | [Hello World](/holoscan/sdk-user-guide/examples/hello-world) |
| [`hello_core`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_core/cpp)     | Core           | `expected<T, Error>` and stable error-code names.                              | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |
| [`hello_tensor`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_tensor/cpp) | Core           | Host `Tensor` construction and metadata.                                       | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |
| [`hello_schema`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_schema/cpp) | Core           | Generated schema helpers and image metadata.                                   | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |
| [`hello_logger`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_logger/cpp) | Core           | Log-level policy and `HOLOSCAN_LOG_*` macros.                                  | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |
| [`hello_cccl`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_cccl/cpp)     | Core           | CCCL interoperability beside Holoscan headers.                                 | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |
| [`hello_matx`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/hello_matx/cpp)     | Core           | MatX interoperability beside Holoscan headers.                                 | [Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour)   |

### Beginner learning chain

| Step | Example                                                                                                     | Classification | What it exercises                                                | Guide                                                                          |
| ---- | ----------------------------------------------------------------------------------------------------------- | -------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| E01  | [`first_pipeline`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/first_pipeline/cpp) | Core           | Compose, compile, run, observe, and stop a complete typed graph. | [Your First Pipeline](/holoscan/sdk-user-guide/getting-started/first-pipeline) |
| E02  | [`first_operator`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/first_operator/cpp) | Core           | Contract-less and explicitly contracted operators.               | [Your First Operator](/holoscan/sdk-user-guide/getting-started/first-operator) |
| E03  | [`tensors_101`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/tensors_101/cpp)       | Core           | The minimal bounded host-Tensor loan lifecycle.                  | [Tensors 101](/holoscan/sdk-user-guide/getting-started/tensors-101)            |

### Temporal contracts

| Step | Example                                                                                                                          | Classification       | What it exercises                               | Guide                                                                                      |
| ---- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| E04  | [`on_any_input`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_any_input/cpp)       | Core                 | Default arrival-driven activation.              | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E05  | [`on_each`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_each/cpp)                 | Core                 | Anchor-driven sampling with bounded reuse.      | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E06  | [`on_clock`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_clock/cpp)               | Core                 | Fixed-rate activation and causal selection.     | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E07  | [`on_aligned`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_aligned/cpp)           | Core                 | Deterministic multi-input alignment.            | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E08  | [`on_window`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_window/cpp)             | Core                 | Bracketed windows around an anchor.             | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E09  | [`selectors`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/selectors/cpp)             | Core                 | `Exact`, `LatestWithin`, and `DrainAll`.        | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E10  | [`missing_data`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/missing_data/cpp)       | Core                 | `Skip`, `SafeDefault`, and `ReuseLast`.         | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E11  | [`max_start_delay`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/max_start_delay/cpp) | Core                 | Maximum start delays and violation policies.    | [Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts)       |
| E12  | [`on_predicate`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/temporal_contracts/on_predicate/cpp)       | Core (guide preview) | Data-dependent activation and predicate inputs. | [Advanced Temporal Patterns](/holoscan/sdk-user-guide/advanced/advanced-temporal-patterns) |

### Core depth

| Step | Example                                                                                                                                                        | Classification | What it exercises                                                                                                                                                        | Guide                                                                                                                 |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| E13  | [`typed_parameters`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/typed_parameters/cpp)                                                | Core           | Typed parameter aggregates, overrides, and validation.                                                                                                                   | [Typed Parameters](/holoscan/sdk-user-guide/getting-started/typed-parameters)                                         |
| E14  | [`errors_as_values`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/errors_as_values/cpp)                                                | Core           | Expected-return propagation and runtime failure channels.                                                                                                                | [Errors as Values](/holoscan/sdk-user-guide/getting-started/errors-as-values)                                         |
| E15  | [`time_and_clocks`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/time_and_clocks/cpp)                                                  | Core           | Clock domains, capture time, and deterministic test clocks.                                                                                                              | [Time and Clocks](/holoscan/sdk-user-guide/getting-started/time-and-clocks)                                           |
| E16  | [`compile_and_check`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/compile_and_check/cpp)                                              | Core           | Admission diagnostics, canonical plans, and digest gates.                                                                                                                | [Compile and Check](/holoscan/sdk-user-guide/getting-started/compile-and-check)                                       |
| E17  | [`running_and_stopping`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/running_and_stopping/cpp)                                        | Core           | `RunSession`, requested completion, cooperative stop, and termination evidence.                                                                                          | [Running and Stopping](/holoscan/sdk-user-guide/getting-started/running-and-stopping)                                 |
| E18  | [`operator_anatomy`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/operator_anatomy/cpp)                                                | Core           | Ports, parameters, contracts, lifecycle, and `compute()`.                                                                                                                | [Operator Anatomy](/holoscan/sdk-user-guide/building-operators/operator-anatomy)                                      |
| E19  | [`parameter_schemas`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/parameter_schemas/cpp)                                              | Core           | Schema field policies and validation.                                                                                                                                    | [Parameter Schemas](/holoscan/sdk-user-guide/building-operators/parameter-schemas)                                    |
| E20  | [`lifecycle_callbacks`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/lifecycle_callbacks/cpp)                                          | Core (Beta)    | Sparse lifecycle callbacks and dependency ordering.                                                                                                                      | [Lifecycle Callbacks](/holoscan/sdk-user-guide/building-operators/lifecycle-callbacks)                                |
| E21  | [`graph_composition`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/graph_composition/cpp)                                              | Core           | Edge configurators, external topics, and graph validation.                                                                                                               | [Graph Composition](/holoscan/sdk-user-guide/composing-applications/graph-composition)                                |
| E22  | [`reusable_graphs`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/reusable_graphs/cpp)                                                  | Core           | Embedded graphs, public ports, and restart scopes.                                                                                                                       | [Reusable Graphs](/holoscan/sdk-user-guide/composing-applications/reusable-graphs)                                    |
| E24  | [`schema_payloads`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/schema_payloads/cpp)                                                  | Core           | SDK-generated owning schema values.                                                                                                                                      | [Schema Payloads](/holoscan/sdk-user-guide/data-and-payloads/schema-payloads)                                         |
| E25  | [`tensors_in_depth`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/tensors_in_depth/cpp)                                                | Core (Beta)    | Device pools, stream ordering, and bounded exhaustion.                                                                                                                   | [Tensors in Depth](/holoscan/sdk-user-guide/data-and-payloads/tensors-in-depth)                                       |
| E32  | [`custom_schema`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/flatbuffer_schemas/custom_schema/cpp)                                   | Core           | Application-owned FlatBuffer types on generated Operator ports.                                                                                                          | [Custom FlatBuffer Schemas](/holoscan/sdk-user-guide/data-and-payloads/custom-flatbuffer-schemas)                     |
| E33  | [`descriptor_tensor_schema`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/flatbuffer_schemas/descriptor_tensor_schema/cpp)             | Core           | Application-owned FlatBuffer metadata with descriptor-backed Tensor storage.                                                                                             | [Custom FlatBuffer Schemas](/holoscan/sdk-user-guide/data-and-payloads/custom-flatbuffer-schemas)                     |
| E34  | [`descriptor_tensor_external_topic`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/flatbuffer_schemas/descriptor_tensor_external_topic) | Core           | Application-owned multi-Tensor schema exchange between a Graph and standalone catalog client.                                                                            | [External Topics](/holoscan/sdk-user-guide/composing-applications/external-topics)                                    |
| E35  | [`derived_tensor_pool_capacity`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/derived_tensor_pool_capacity/cpp)                        | Core           | Compose Parameter- and input-derived bytes per slot with fixed, expected, followed, and lifecycle-selected rates; compare automatic sizing with an exact explicit depth. | [Tensors in Depth](/holoscan/sdk-user-guide/data-and-payloads/tensors-in-depth#size-queue-entries-from-nominal-rates) |
| E36  | [`cuda_graph_region`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/cuda_graph_region/cpp)                                              | Core           | Compare ordinary dispatch with an explicitly fused, fixed-shape CUDA Graph region.                                                                                       | [CUDA Graph Regions](/holoscan/sdk-user-guide/composing-applications/cuda-graph-regions)                              |

### Essential, advanced, and experimental

| Step | Example                                                                                                                          | Classification | What it exercises                                         | Guide                                                                                        |
| ---- | -------------------------------------------------------------------------------------------------------------------------------- | -------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| E23  | [`pod_payloads`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/pod_payloads/cpp)             | Experimental   | Expert-only fixed-layout raw POD payloads.                | [Experimental Raw POD Payloads](/holoscan/sdk-user-guide/advanced/experimental-pod-payloads) |
| E26  | [`config_file`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/essential/config_file/cpp)                  | Essential      | JSON/YAML configuration bound to typed parameters.        | [Configuring Applications](/holoscan/sdk-user-guide/configuration/configuring-applications)  |
| E27  | [`plan_artifacts`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/plan_artifacts/cpp)         | Experimental   | Plan inspection, serialization, and artifact publication. | [Plan Tooling](/holoscan/sdk-user-guide/advanced/plan-tooling)                               |
| E28  | [`restart_control`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/restart_control/cpp)       | Core (Beta)    | Deny-by-default restart authority and receipts.           | [Restart Control](/holoscan/sdk-user-guide/advanced/restart-control)                         |
| E29  | [`runtime_params`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/runtime_params/cpp)         | Core (Beta)    | Programmatic parameter generations and snapshots.         | [Runtime Parameter Updates](/holoscan/sdk-user-guide/advanced/runtime-parameter-updates)     |
| E30  | [`web_tuner`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/web_tuner/cpp)                   | Experimental   | The loopback-only parameter tuner facade.                 | [Runtime Parameter Updates](/holoscan/sdk-user-guide/advanced/runtime-parameter-updates)     |
| E31  | [`determinism_replay`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/experimental/determinism_replay/cpp) | Core (Beta)    | Replay-stable tags and manual-clock substitution.         | [Determinism and Replay](/holoscan/sdk-user-guide/advanced/determinism-and-replay)           |

### Complete reference applications

| Example                                                                                                             | Classification | What it exercises                                                                 | Guide                                                                        |
| ------------------------------------------------------------------------------------------------------------------- | -------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [`camera_imu_control`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/camera_imu_control/cpp) | Core           | The hero application: fusion, contracts, bounded tensors, and external endpoints. | [Camera + IMU Control](/holoscan/sdk-user-guide/examples/camera-imu-control) |
| [`slow_fast_fusion`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/slow_fast_fusion/cpp)     | Core           | Multi-rate selection with `OnEach`, `LatestWithin`, and `Skip`.                   | [Slow/Fast Fusion](/holoscan/sdk-user-guide/examples/slow-fast-fusion)       |
| [`external_clients`](https://github.com/nvidia-holoscan/holoscan-sdk/tree/v5.0.0/examples/external_clients)         | Core           | Standalone non-operator processes attaching through `ChannelRuntime`.             | [External Clients](/holoscan/sdk-user-guide/examples/external-clients)       |

## Start here: hello_world

`hello_world` is the smallest possible Holoscan program — a single call to
`holoscan::hello()` that prints `Hello Holoscan!`. Its only job is to prove
that `find_package(holoscan)` resolves, the headers are on your include path,
and `holoscan::core` links. If this builds and runs, your installation is
sound. Walk through it on the
[Hello World](/holoscan/sdk-user-guide/examples/hello-world) page.

```cpp
#include <holoscan/holoscan.hpp>

int main() {
  holoscan::hello();
  return 0;
}
```

## The hello tour: one concern per example

The remaining `hello_*` examples are deliberate one-liners. Each is a smoke
test for exactly one public API surface and the header-only dependencies it
pulls in, so a failure points directly at the missing piece:

* **`hello_core`** — returns and branches on
  `holoscan::expected<int, holoscan::Error>`, the SDK's errors-as-values
  currency, and prints an `ErrorCode` name.
* **`hello_tensor`** — constructs a host `holoscan::Tensor` from a DLPack
  managed-tensor context and queries shape and dtype metadata. Host-only; it
  needs no CUDA device.
* **`hello_schema`** — encodes a tensor's image metadata with the schema
  helpers and parses it back. The helpers live in `holoscan::sensor_io`, which
  brings the FlatBuffers-backed `holoscan::schema` library with it.
* **`hello_logger`** — sets a runtime log level and emits fmt-formatted
  messages through `HOLOSCAN_LOG_INFO` and friends, verifying that the SDK
  never overrides your compile-time log threshold.
* **`hello_cccl`** — a small CUDA reduction using CUB and Thrust, confirming
  that CCCL coexists with Holoscan in one translation unit. Exits with a skip
  code when no CUDA device is present.
* **`hello_matx`** — the same idea for MatX numerical primitives.

Each takes a few minutes to read end to end. The guided walkthrough is the
[Hello Tour](/holoscan/sdk-user-guide/examples/hello-tour).

## The hero application: camera_imu_control

`camera_imu_control` is the running example used throughout this guide: a
camera producer, a high-rate IMU input, a fusion stage, and a control output.
It is the single best example to study once you have finished
[Getting Started](/holoscan/sdk-user-guide/getting-started/core-concepts),
because it exercises the whole compose → compile → run arc in one executable:

* an embedded fusion graph with typed operators and temporal contracts,
* a bounded host `Tensor` producer drawing from a preallocated pool,
* an IMU **external import** and a control-result **external export** with
  stable, explicit endpoint names (`baseline.camera_imu.imu`,
  `baseline.camera_imu.control`),
* a real `RunSession` plus an in-process `ChannelRuntime` client that
  publishes IMU samples and consumes one control result through the same
  catalog contract the standalone companions use,
* deterministic bounded shutdown — the executable stops and joins on its own.

It also demonstrates **cold artifact publication**: passing
`--emit-artifacts` emits the four-file deployment bundle (including
`endpoint-catalog.json`) without starting lifecycle, CUDA, or channel
services, so build tooling can generate deployment artifacts as a pure build
step. The full walkthrough is
[Camera + IMU Control](/holoscan/sdk-user-guide/examples/camera-imu-control);
the artifact story continues in
[Plan Tooling](/holoscan/sdk-user-guide/advanced/plan-tooling).

## Multi-rate selection: slow_fast_fusion

`slow_fast_fusion` is the ordinary application root distilled: one
`holoscan::Graph`, the free `compile()` and `run_async()` functions, typed
operators, and two periodic rates. The fast input drives fusion via `OnEach`;
the most recent causal slow sample is admitted with `LatestWithin` only while
it is within its declared age, and the activation is skipped (`Skip`)
otherwise. After the sixth fused sample, the sink requests immediate whole-run
success and the main routine verifies `kRequestedCompleted`; this request does
not imply downstream drain. The program also reports the compiled plan's
trigger and selection counts.

Read it when you reach
[Temporal Contracts](/holoscan/sdk-user-guide/building-operators/temporal-contracts) —
it is the smallest complete demonstration of trigger, input selection, and
missing-data policy working together. The walkthrough is
[Slow/Fast Fusion](/holoscan/sdk-user-guide/examples/slow-fast-fusion).

## Standalone processes: external_clients

`external_clients` contains two ordinary, non-operator programs that talk
to the hero application from separate processes:

* **`sensor_daemon`** publishes `uint32_t` IMU samples with caller-owned
  capture coordinates.
* **`recorder`** consumes exported control results with `receive_sample()` and
  prints the public `SampleMetadata`. It drains finite streams through remote
  EOS by default and accepts a positive sample limit for an unbounded graph
  such as the hero application.

Each receives the exact `endpoint-catalog.json` path emitted by the
graph-definition executable and attaches by explicit endpoint name — there is
no global "latest catalog" discovery. Neither program includes any transport
headers; the public `ChannelRuntime` client API is the entire surface. See
[External Clients](/holoscan/sdk-user-guide/examples/external-clients) and
[Standalone Channel Clients](/holoscan/sdk-user-guide/advanced/standalone-channel-clients).

> **Warning**
>
> **One graph, one vocabulary.** Inside a graph, operators communicate through
> typed ports (`Input<T>`/`Output<T>`) wired with `add_flow()` — the runtime
> materializes the channels for you. The `ChannelRuntime` client API exists
> only for standalone processes outside any graph. Never mix the two: using
> `ChannelRuntime` inside an operator bypasses the compiled plan and its
> guarantees.

## Building and running the examples

Every example ships with two CMake entry points:

* **`CMakeLists.txt`** — used when the examples build as part of the SDK
  tree, or all together via the top-level `examples/CMakeLists.txt`.
* **`CMakeLists.min.txt`** — a minimal, self-contained project that builds
  one example standalone against an *installed* SDK. Core examples use
  `find_package(holoscan REQUIRED)`; optional-tooling examples request
  the exact `COMPONENTS` they consume. This is the file to copy when starting
  your own project.

Each example's `CMakeLists.txt` follows one layout so it can be configured
in-tree or by itself: it declares `cmake_minimum_required` and its own
`project()` unconditionally (project name `holoscan_<example>`, languages
identical to `CMakeLists.min.txt`), then defers to `CMakeLists.min.txt` when it
is the top-level project. Executable targets, install destinations, and CTest
names use the plain example name.

```cmake
cmake_minimum_required(VERSION 4.0)
project(holoscan_hello_world LANGUAGES CXX)

if(PROJECT_IS_TOP_LEVEL)
    include("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.min.txt")
    return()
endif()

add_executable(hello_world hello_world.cpp)
target_link_libraries(hello_world PRIVATE holoscan::core)
```

> **Note**
>
> **Installed tooling.** `params` and `params_io` ship with `holoscan-core`; a
> `COMPONENTS params_io` request remains accepted for compatibility but is
> unnecessary. The lightweight `config` and `config_io`
> components are prerequisites of every Core install. A plain
> `find_package(holoscan REQUIRED)` therefore imports `core`, `config`,
> `config_io`, `params`, and `params_io`, and fails only when the install is
> incomplete. An unqualified aggregate find also exposes every optional module
> present in the installed variant; component-qualified discovery is the precise,
> portable spelling for applications that depend on optional tooling such as the
> experimental web tuner. See
> [Configuring applications](/holoscan/sdk-user-guide/configuration/configuring-applications)
> and the example's `CMakeLists.min.txt` for the exact request.

The installed SDK places `holoscan-config.cmake` under `cmake/holoscan` in its
library directory: `/usr/lib/<triplet>/cmake/holoscan` for the
[Debian packages](/holoscan/sdk-user-guide/setup/sdk-installation), or
`<prefix>/lib/cmake/holoscan` for an SDK installed to a custom prefix. To build
all examples against that SDK:

```bash
cd examples
cmake -B build -S .
cmake --build build
```

Then run any example directly from its build directory:

```bash
./build/hello_world/cpp/hello_world
./build/slow_fast_fusion/cpp/slow_fast_fusion
```

Each example registers a CTest entry with a pass expression, so the whole
gallery doubles as an install-acceptance suite:

```bash
ctest --test-dir build --output-on-failure
```

> **Tip**
>
> The CUDA examples (`hello_cccl`, `hello_matx`) exit with a skip code when no
> CUDA-capable device is present, so the test suite passes on CPU-only
> machines instead of failing.

The hero application additionally exposes a dedicated build target that emits
its deployment bundle without running anything:

```bash
cmake --build build --target camera_imu_control_graph_artifacts
```

Building `hello_cccl` and `hello_matx` requires the CUDA Toolkit and CCCL to
be discoverable; the top-level `examples/CMakeLists.txt` shows the
`find_package` incantations. `hello_matx` uses an installed MatX when CMake
finds one (for example through `CMAKE_PREFIX_PATH`) and otherwise downloads it
at configure time, which needs network access. If you only want the CPU-side
examples, build them individually from each example's `cpp/` directory, whose
`CMakeLists.min.txt` builds the example as a standalone project.

## Recap

* `hello_world` is the install check: one call, one link line, one printed
  greeting.
* The `hello_*` tour isolates one public surface per example — errors,
  tensors, schemas, logging, CCCL, MatX.
* `camera_imu_control` is the hero application: contracts, bounded
  tensors, external endpoints, and cold artifact emission in one executable.
* `slow_fast_fusion` is the minimal demonstration of multi-rate selection
  with `OnEach`, `LatestWithin`, and `Skip`.
* `external_clients` shows standalone processes attaching through the
  public `ChannelRuntime` API and an explicit endpoint catalog.
* Build in-tree with `CMakeLists.txt` or standalone with
  `CMakeLists.min.txt`; run the gallery as a test suite with `ctest`.

Next: [Hello World](/holoscan/sdk-user-guide/examples/hello-world).