This directory contains examples to help users learn how to use the Holoscan SDK for development. See HoloHub to find additional reference applications.
The following examples demonstrate the basics of the Holoscan core API, and are ideal for new users starting with the SDK:
- Hello World: the simplest holoscan application running a single operator
- Ping: simple application workflows with basic source/sink (Tx/Rx)
- ping_simple: connecting existing operators
- ping_custom_op: creating and connecting your own operator
- ping_multi_port: connecting operators with multiple IO ports
- Video Replayer: switch the source/sink from Tx/Rx to loading a video from disk and displaying its frames
- Distributed Video Replayer: switch the source/sink from Tx/Rx to loading a video from disk and displaying its frames, with a distributed application
- Flow Tracker: simple application demonstrating data flow tracking for latency analysis
The following examples illustrate the use of specific schedulers to define when operators are run:
- Multithread Scheduler: run operators in parallel
The following examples illustrate the use of specific conditions to modify the behavior of operators:
- PeriodicCondition: trigger an operator at a user-defined time interval.
- AsynchronousCondition: allow operators to run asynchronously (C++ API only)
The following examples illustrate the use of specific resource classes that can be passed to operators or schedulers:
- Clock: demonstrates assignment of a user-configured clock to the Holoscan SDK scheduler and how its runtime methods can be accessed from an operator's compute method.
- Holoviz: display overlays of various geometric primitives
- Bring-Your-Own-Model: create a simple inference pipeline for ML applications
The following examples demonstrate how to seamlessly leverage third-party frameworks in holoscan applications:
- NumPy native: signal processing on the CPU using numpy arrays
- CuPy native: basic computation on the GPU using cupy arrays
The following examples demonstrate how sensors can be used as input streams to your holoscan applications:
- v4l2 camera: for USB and HDMI input, such as USB cameras or HDMI output of laptop
- AJA capture: for AJA capture cards
- Tensor interop: use the
Entity
message to pass tensors to/from Holoscan operators wrapping GXF codelets in Holoscan applications - Wrap operator as GXF extension: wrap Holoscan native operators as GXF codelets to use in GXF applications