SGKEMBEDDED PERFORMANCEEpicTunerSDK · PrereleaseContact ↗
EpicTuner SDK/ Example gallery

Download the complete Markdown manual ↓
One file with guides, API headers and examples for developers and coding agents.

Example gallery

All examples use the exported SDK. They do not include private application headers. The standard panels require no Qt; the independent ImGui example adds GLFW and OpenGL. Use a disposable project and the supplied synthetic fixtures.

Build the examples

From the extracted SDK, configure the consumer suite:

cmake -S tests -B consumer -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/absolute/sdk -DET_SDK_BUILD_IMGUI=ON
cmake --build consumer
ctest --test-dir consumer --output-on-failure

Each example also has its own CMake project and preset. Follow that example's README: existing service examples use release; the starter and basic examples use sdk with EPICTUNER_SDK_ROOT. Run cmake --list-presets in the example directory to see its configure presets. Keep the extracted SDK directory tree intact: some examples share helpers or vendored sources. See deployment for compiler and renderer dependencies.

Examples

Example Learn Acceptance you can reproduce
Hello panels Controls, bindings, workspace/floating/modal panels, multiple instances Edit values; focus the singleton; open independent inspectors; close/reopen and restore state
Cascading selects Dynamic Make/Model/Tune options, empty controls, typed selections and 2 × 12 preview Choose each level; verify preview; change Make and verify downstream reset; host 0.8.3+
Live telemetry Channel selection, timestamps/quality, bounded plot, derived RPM/2 Connect Mock ECU; change channels; disconnect/reconnect; observe stale values and gaps
Calibration workbench Real field/table/curve/surface prefabs, normalized previews and undo Use synthetic INI; preview/apply; edit manually to invalidate an old proposal; save/reopen; verify RAM separately from burn
Log analyzer Ranges, background statistics, result table/chart, comparison The supplied 256-row logs yield means 127.5 and 227.5; cancel and rerun
Fuel analysis Bounded correction calculation and explicit Apply Analyze synthetic lambda log; change limits; reject stale previews and absent channels; no automatic burn
Licensed feature Signed package, free/paid action, activation Paid action denied before activation; accepted after valid mock online/offline activation
ImGui inspector Worker-owned custom window and host reads Render/input, focus, resize, close/reopen, worker-loss recovery
Fault injection Intentional worker failure and invalid service calls Host survives crash/hang; flood is bounded; invalid requests fail; restart is explicit

Install through the signed test catalog

The catalog builder takes binaries from that independent consumer build and signs all eight packages with an ephemeral local test key:

python tools/test-catalog.py build --sdk /absolute/sdk --binaries /absolute/consumer --output /absolute/test-catalog
python tools/test-catalog.py verify --catalog /absolute/test-catalog --trusted-key /absolute/test-catalog/publisher.json

The private key is deleted when the builder exits. The catalog contains public trust material, signed packages and hashes. The fault-injection entry is explicitly marked test-only. Review/import the public test publisher in the Plugins manager, then install selected .etplugin files. Never import this generated identity as a production publisher. Catalog verification does not replace the host's independent package verification.

See publishing for the package layout and third-party path. The small lifecycle examples additionally show C, C++ and background-task ABI fundamentals.