• OctoMY API
  • OctoMY API Reference
  • OctoMY API Reference

    Welcome to the OctoMY API documentation. This reference covers the C++ classes and interfaces that make up the OctoMY robotics platform.

    Overview

    OctoMY is an open-source robotics platform built on Qt that enables communication between robots (Agents), controllers (Remotes), coordination servers (Hubs), and cloud discovery services (Zoo).

    Node Types

    OctoMY uses four node types that communicate over encrypted channels:

    Foundation Layer

    Core infrastructure libraries that everything depends on.

    libutil - Core Utilities

    Namespace-based utility functions for common operations.

    libuptime - Runtime Safety

    Entry-point guards and debugging utilities.

    libapp - Application Framework

    Application lifecycle, configuration, and platform integration.

    libid - Identity Management

    Node identity, key management, and visual representation.

    Identity Core

    Identity Widgets

    Name Generators

    liblog - Logging

    Application logging framework.

    librng - Random Numbers

    Random number generation with multiple algorithms.

    libparser - Parsing Utilities

    Configuration file parsing.

    Security Layer

    Cryptographic security and key management.

    libsec - Security Framework

    Core security constants and utilities.

    libqpolarssl - Cryptography

    Qt wrapper for mbedTLS cryptography.

    Communication Layer

    Node-to-node communication and discovery.

    libcomms - Core Communications

    Communication Management

    Transport Carriers

    Addresses

    Protocol

    Couriers

    Courier Sets

    Blob Transfer

    Sync

    Messages

    Utilities

    libpair - Discovery and Pairing

    Address Book

    Discovery

    Pairing UI

    Delivery Activities

    Connection

    libzooclient - Zoo Client

    Client for Zoo cloud discovery services.

    Node Infrastructure

    Common node base classes and client management.

    libnode - Base Node

    libclient - Client Management

    libservice - Service Lifecycle

    Service wrapper templates for managing subsystem lifecycles.

    Node Implementations

    The four main node types.

    libagent - Agent Node

    Robot node that controls actuators and sensors.

    libremote - Remote Node

    Thin client for controlling agents.

    libhub - Hub Node

    Coordination server with LLM services.

    libzoo - Zoo Server

    Cloud discovery and NAT traversal services.

    Client Libraries

    libagentclient

    libremoteclient

    libhubclient

    UI Framework

    User interface widgets and activities.

    libwidgets - Core Widgets

    Activity Framework

    Activities

    Trust & Verification

    Peer & Network

    Input Widgets

    Visual Widgets

    Layout & Navigation

    Node Control

    Flight Instruments (HUD)

    Hex Editor

    libstyle - Styling

    Custom Qt styling.

    libsplash - Splash Screen

    Startup splash screen.

    libsplitter - Split Panes

    Split-pane interface framework.

    libscreen - Screen Management

    Multi-monitor display management.

    libres - Resources

    Qt resource management.

    libdebug - Debug Widgets

    Development debugging widgets.

    Hardware Layer

    Robot hardware control and sensors.

    libhardware - Hardware Abstraction

    Core

    Controllers

    Controller UI

    Templates

    Actuators

    Lobes

    Serial Ports

    libmotorics - Locomotion

    Locomotion controllers (Lobes).

    libardumy - Arduino Protocol

    Arduino actuator controller (ArduMY protocol).

    Core

    Actuator Data

    Protocol

    libpuppet - Robot Animation

    Robot animation and pose control.

    Poses

    Name Mapping

    Gait Control

    Expression

    Stanza

    Sensing & Perception

    Camera, audio, and sensor processing.

    libvideo - Video/Camera

    Camera and media handling.

    libaudio - Audio

    Audio synthesis and utilities.

    libvoice - Voice

    Text-to-speech synthesis.

    libgps - GPS

    GPS encoding and location services.

    libhaar - Face Detection

    Haar cascade object detection.

    libqr - QR Codes

    QR code generation.

    libzbar - Barcode Scanning

    Barcode scanning support.

    Behavior & Planning

    Robot behavior scripting and automation.

    libplan - OPAL Language

    Robot behavior plans.

    Core

    Editor

    Book

    libeval - Expression Evaluation

    Mathematical expression evaluator.

    libtrigger - Event System

    Event-driven automation system.

    Core

    Conditions

    Actions

    Testing & Automation

    Testing infrastructure and UI automation.

    libuiautomation - UI Automation

    UI automation and testing tools.

    Core

    Targets

    Snapshots

    UI

    UI Scripts

    libmocknode - Mock Testing

    Mock node testing infrastructure.

    Core

    Personalities

    Constellations

    libtest - Test Utilities

    Testing utilities and mock objects.

    Communication Testing

    Stress Testing

    Mock Objects

    Graphics & Visualization

    3D rendering and visualization tools.

    libglt - OpenGL Tools

    OpenGL utilities.

    libconstruct - 3D Rendering

    3D rendering framework with Qt RHI.

    libd3 - Node Graph Editor

    3D node graph editor and isosurface visualization.

    Graph

    Isosurface

    libmarkdown - Markdown

    Markdown editing and rendering.

    libmap - Geographic Maps

    Geographic map display (QMapControl).

    Core

    Adapters

    Geometries

    Storage & Persistence

    Data storage and persistence.

    libstore - Data Storage

    Data persistence backends.

    Web & Networking

    HTTP client/server and web services.

    libweb - HTTP

    HTTP client/server and templating.

    libclt - OpenCL

    OpenCL compute with OpenGL interop.

    Miscellaneous

    Additional utilities.

    libgibber - Text Generation

    Placeholder text generation.

    libcommand - Commands

    Command-line interface framework.

    Getting Started

    See the OctoMY Documentation for tutorials and guides.

    Project Information