OctoMY API Reference
Ready-to-run robot software for hobby robotics.
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:
- Agent - Robot node with actuators and sensors
- Remote - Thin client for remote control (phone/tablet)
- Hub - Coordination server with LLM services
- Zoo - Cloud services for NAT traversal and discovery
Foundation Layer
Core infrastructure libraries that everything depends on.
libutil - Core Utilities
Namespace-based utility functions for common operations.
- Namespaces: utility::time, utility::string, utility::file, utility::network, utility::color, utility::random, utility::graphics, utility::data, utility::ui, utility::concurrent
libuptime - Runtime Safety
Entry-point guards and debugging utilities.
- MethodGate - Detects dangling pointer access in methods
- FunctionGate - Entry-point guard for free functions
- OC_ASSERT - Soft assertion macro
libapp - Application Framework
Application lifecycle, configuration, and platform integration.
- AppContext - Application context and resource management
- AppCommandLineParser - Command line argument parsing
- IAppLauncher - Interface for application launchers
- Constants - Global application constants
- Settings - Persistent application settings
- StyleManager - Application styling and themes
- AppStyle - Custom style definitions
libid - Identity Management
Node identity, key management, and visual representation.
Identity Core
- Identicon - Visual identity generation from IDs
- Personality - Deterministic random generator seeded by identity
- Fingerprint - SHA-1 based identity fingerprint
- UniquePlatformFingerprint - Device/executable fingerprints
- PersonalityColors - Deterministic color palette from ID
Identity Widgets
- IdenticonWidget - Widget displaying SVG identicon
- IdenticonLabel - Label with identicon icon and name
- IrisWidget - Robot "iris" pattern display
- NodeIdentityActivity - Full-screen identity viewing
- IdentityAssetsActivity - Identity graphics and export
Name Generators
- NameGenerator - Toolkit for building name generators
- AgentNameGenerator - Latin-style robot names
- RemoteNameGenerator - Adjective-noun controller names
- GenderGenerator - Random gender selection
liblog - Logging
Application logging framework.
- LogStorage - Memory-mapped daily log file storage
- LogHandler - Qt message handler with formatting
- LogWidget - Scrollable log message view
- LogModel - Qt model for log entries
- LogDevice - QIODevice log output adapter
librng - Random Numbers
Random number generation with multiple algorithms.
- RNG - Base class for random number generators
- MersennePRNG - Mersenne Twister MT19937
- ParkMillerPRNG - Park-Miller linear congruential
- TausPRNG - Tausworthe combined LFSR
- SystemPRNG - Standard library rand() wrapper
- DevRandomRNG - /dev/random (blocking)
- DevURandomRNG - /dev/urandom (non-blocking)
libparser - Parsing Utilities
Configuration file parsing.
- OctomyParseContext - Plan/spec file parsing context
- ParseError - Parse error with location and hint
Security Layer
Cryptographic security and key management.
libsec - Security Framework
Core security constants and utilities.
- OCTOMY_KEY_BITS - Default RSA key size (4096 bits)
- OCTOMY_KEY_HASH - Default hash algorithm (SHA-256)
- KeyStore - Cryptographic key storage
libqpolarssl - Cryptography
Qt wrapper for mbedTLS cryptography.
- qpolarssl::Hash - Cryptographic hash functions (MD5, SHA, HMAC)
- qpolarssl::Cipher - Symmetric encryption/decryption (AES, etc.)
- qpolarssl::Pki - Public key infrastructure (RSA/EC)
- qpolarssl::Random - CTR-DRBG random generator
Communication Layer
Node-to-node communication and discovery.
libcomms - Core Communications
Communication Management
- Comms - Top-level communications manager
- CommsChannel - Communication channel over a transport
- CommsSession - Active session with a remote peer
- CommsSessionDirectory - Active session management
Transport Carriers
- CommsCarrier - Abstract transport carrier base class
- CommsCarrierLocal - Local socket transport
- CommsCarrierUDP - UDP transport carrier
- CommsSignature - Node identity with address
Addresses
- CarrierAddress - Abstract base for transport addresses
- CarrierAddressUDP - UDP endpoint (IP + port)
- CarrierAddressLocal - Local IPC endpoint
- CarrierAddressBluetooth - Bluetooth MAC address
- CarrierAddressFactory - Factory for address instances
- CarrierAddressUDPWidget - UDP address editing UI
Protocol
- Multimagic - Magic bytes for packet type identification
- HandshakeState - Connection handshake state machine
- PacketReadState - Incoming packet parsing
- PacketSendState - Outgoing packet construction
- ReliabilitySystem - UDP reliability and acknowledgment
- PacketQueue - Packet tracking for reliability
- FlowControl - RTT-based transmission rate control
- IDDuel - Deterministic ID comparison for conflicts
Couriers
- Courier - Base class for message couriers
- CourierMandate - Courier scheduling configuration
- CourierSet - Collection of couriers for a session
- AgentStateCourier - Agent state synchronization
- SensorsCourier - Sensor data transmission
- DiscoveryCourier - Peer discovery messages
- BlobCourier - Large binary data transfer
Courier Sets
- AgentClientCourierSet - Couriers for Remote-to-Agent
- RemoteClientCourierSet - Couriers for Agent-to-Remote
- HubClientCourierSet - Couriers for node-to-Hub
Blob Transfer
BlobCourier does all blob transfer. It cuts a blob into chunks, acknowledges and retransmits them, and verifies the signature of the complete blob. It keeps the send and receive state of each transfer internally, and identifies a transfer by the blob ID that sendBlob() returns. The former Blob, SendingBlob, ReceivingBlob, chunk handle and BlobFuture classes were removed with the legacy blob courier.
Sync
- ISyncParameter - Synchronized parameter interface
- SyncContext - Sync timing context
Messages
- SensorsMessage - Sensor data message
- MessageType - Protocol message type enum
- AgentMode - Robot operating mode enum
Utilities
- WebRequestManager - Shared network access manager (libwebrequest)
- IConnectionStatus - Connection status interface
libpair - Discovery and Pairing
Address Book
- AddressBook - Persistent store for node associates
- Associate - Address info and trust for a known peer
- AddressEntry - Scored network address with statistics
- AddressList - Collection of address entries
- TrustLevel - Trust relationship levels enum
- TrustList - Trust relationship management
- LocalAddressList - Local network addresses
Discovery
- DiscoveryClient - Automatic node discovery
- DiscoveryServer - Server for discovery sessions
- DiscoveryServerSession - Multi-participant discovery session
- DiscoveryServerEntry - Discovery participant with key
- DiscoveryMandate - Discovery configuration
Pairing UI
- PairingMenuActivity - Pairing method selection menu
- PairingActivity - Main pairing activity
- NetworkPairingActivity - LAN discovery and pairing
- ScannerPairingActivity - QR code pairing activity
- ScannerPairingWidget - QR display and scanner widget
- PairingTrustActivity - Trust level editing
- PairingEditButtonDelegate - Pairing list item renderer
- TrustSymbolWidget - Animated trust icon
- PingWidget - Visual ping animation display
Delivery Activities
- IdentityMenuActivity - Identity management menu
- AgentBaptismActivity - Agent naming activity
- AgentSipAndSeeActivity - Agent birth celebration
- AgentDeliveryActivity - Agent birth flow
- ControlBaptismActivity - Control node naming
- ControlSipAndSeeActivity - Control birth celebration
- ControlDeliveryActivity - Control birth flow
Connection
- ConnectionManager - Connection management widget
- ConnectionWidget - Network connection widget
- ConnectionActivity - Connection UI activity
- ConnectionStatusWidget - Connection status display
- SignalStrengthWidget - Signal strength indicator
libzooclient - Zoo Client
Client for Zoo cloud discovery services.
- ZooClient - HTTP client for Zoo discovery services
- WebRequest - HTTP request with timeout handling
- PunchPartner - NAT hole punching address data
- PunchRegistry - Punch partner registry
Node Infrastructure
Common node base classes and client management.
libnode - Base Node
- Node - Base class for all OctoMY nodes
- NodeWindow - Base window for node UIs
- NodeRole - Node communication role (Agent/Control)
- NodeType - Node type enumeration
- IContextProvider - Context provider interface
libclient - Client Management
- Client - Base class for remote node clients
- ClientList - Collection of client connections
- ClientModel - Qt model for client sessions
- ClientFactory - Client instance factory
- ClientWidget - Base client UI widget
- ClientConnectionStatus - Connection state wrapper
libservice - Service Lifecycle
Service wrapper templates for managing subsystem lifecycles.
- ServiceWrapper - Template base class for service wrappers
- AddressBookService, LocalAddressListService
- CommsService, CarrierService, KeyStoreService
- PlanBookService, AgentConfigService, DiscoveryClientService
Node Implementations
The four main node types.
libagent - Agent Node
Robot node that controls actuators and sensors.
- Agent - Robot node implementation
- AgentWindow - Main Agent application window
- AgentMain - Agent application entry point
- AgentMainMenu - Agent main navigation menu
- AgentConfig - Agent configuration data
- AgentConfigStore - Persistent configuration storage
- RemoteClientCourierSet - Couriers for each connected Remote (libcomms)
- AgentUnboxingWizard - First-time setup wizard
libremote - Remote Node
Thin client for controlling agents.
- Remote - Remote controller implementation
- RemoteWindow - Main Remote application window
- RemoteMain - Remote application entry point
- RemoteMainMenu - Main navigation menu
- RemoteControllerActivity - Menu of the Agent control activities
- AgentListModel - Qt model for paired Agents
- AgentItemDelegate - Custom Agent list item rendering
- ControlUnboxingWizard - First-time setup wizard
libhub - Hub Node
Coordination server with LLM services.
- Hub - Coordination server implementation
- HubWindow - Main Hub application window
- HubMain - Hub application entry point
- HubMainMenu - Hub main navigation menu
- NodesManagerWidget - Node connection management UI
- UtilitiesWidget - Hub utilities interface
libzoo - Zoo Server
Cloud discovery and NAT traversal services.
- ZooServer - HTTP server for NAT traversal
Client Libraries
libagentclient
- AgentClient - Client for connecting to Agent nodes
- AgentClientWidget - Agent client control UI
- AgentConnectionWidget - Connection status display
libremoteclient
- RemoteClient - Client for connecting to Remote nodes
- RemoteClientWidget - Remote client control UI
libhubclient
- HubClient - Client for connecting to Hub nodes
- HubClientWidget - Hub client control UI
UI Framework
User interface widgets and activities.
libwidgets - Core Widgets
Activity Framework
- Activity - Base class for full-screen UI views
- ActivityStack - Stack-based navigation manager
- MenuActivity - Menu activity base
- UtilitiesMenuActivity - Utilities menu
- DevelopmentMenuActivity - Development menu
Activities
- GaitActivity - Robot locomotion gait configuration
- TriggerManagerActivity - Trigger automation management
- QRUtilityActivity - QR code generation/scanning
- NetworkUtilsActivity - Network diagnostics
- ActuatorActivity - Robot actuator configuration
- MapActivity - Map visualization
- MonitorActivity - System resource monitor (libmonitor)
- VoiceActivity - Voice control interface
- FaceActivity - Robot face display
- LogActivity - Event log display
- MessagePromptActivity - Full-screen message prompt
- AssociateDetailActivity - Peer information view (libpair)
Trust & Verification
- TrustIconWidget - Trust level icon display
- TrustSelectorWidget - Trust level selection UI
- VerificationContextWidget - Multi-channel verification status
- ChannelBarWidget - Communication channel indicators
- ConnectionStatusIndicator - Peer connection state
- CapabilityDescriptionWidget - Trust level descriptions
Peer & Network
- AssociateListItemWidget - Peer list entry display (libpair)
- ActivityOrbWidget - Network activity visualization
- PortableNodeIDWidget - Node identity display (libsec)
- NetworkSettingsWidget - Network address/port config
- LocalAddressEntry - Local address combo box
Input Widgets
- IntegerEntry - Slider/spinbox for integers
- DecimalEntry - Slider/spinbox for decimals
- TextEntry - Persistent text input
- EnumEntry - Enum dropdown with persistence
- EditableLabel - Double-click editable label
Visual Widgets
- SvgWidget - SVG rendering with silhouettes
- ImageLabel - Aspect-preserving image display
- LightWidget - LED indicator with blink
- WaitingSpinnerWidget - Loading spinner animation
- ColorSwatchWidget - Color picker preview
- PenSwatchWidget - Pen style preview
Layout & Navigation
- FlowLayout - Flow layout manager
- MultiView - List/grid/table/tree view modes
- WizardWidget - Multi-page navigation
- TryToggle - Four-state async toggle button
- FlatButton - Flat icon-only button
- NoticeWidget - Notice card, inline or as a toast
- NoticeStack - Inline stack of notice cards
- NodeNavigation - Navigation bar with back/menu
- SimpleTableWidget - Key-value table view
Node Control
- CarSteeringWidget - Virtual steering wheel
- PanicSlideButton - Emergency stop button
- RealtimeValuesWidget - Live sensor values
- PKIManager - PKI key management
Flight Instruments (HUD)
- HUDWidget - Tabbed flight instrument display
- WidgetSix - Classic six-pack layout
- WidgetPFD, WidgetNAV, WidgetADI
- WidgetALT, WidgetASI, WidgetHSI
- WidgetVSI, WidgetTC
- LayoutSquare - Square aspect ratio layout
- qfi_PFD, qfi_NAV, qfi_ADI
- qfi_ALT, qfi_ASI, qfi_HSI
- qfi_VSI, qfi_TC
Hex Editor
- QHexEdit - Hexadecimal data editor
- QHexEditData - Hex editor data model
- QHexEditPrivate - Internal implementation
- QHexEditHighlighter - Byte-level highlighting
- QHexEditDataReader, QHexEditDataWriter
- QHexEditDataDevice - QIODevice wrapper
- QHexEditComments - Byte range annotations
- SparseRangeMap - Sparse range mapping
libstyle - Styling
Custom Qt styling.
- OctoStyle - Custom Qt style based on Fusion
- OctoStylePlugin - Style plugin loader
libsplash - Splash Screen
Startup splash screen.
- SplashScreen - Animated splash with progress
- PulsatingLabel - Pulsating animation label
libsplitter - Split Panes
Split-pane interface framework.
- SplitterWidget - Container for splitter panes
- SplitterPane - Individual draggable pane
libscreen - Screen Management
Multi-monitor display management.
- ScreenManager - Display management and window placement
- ScreenSelector - Monitor selection overlay
libres - Resources
Qt resource management.
- InternalResourceManager - Resource browser widget
- ResourceTreeModel - Resource tree data model
- ResourceTreeFilterProxyModel - Resource search filter
libdebug - Debug Widgets
Development debugging widgets.
- SimpleTableDebugWidget - Base key-value table display
- CommsDebugWidget, CouriersDebugWidget, CarrierDebugWidget
- DiscoveryClientDebugWidget, PairingDebugWidget, DeliveryDebugWidget
- ServicesDebugWidget, KeyStoreDebugWidget, LocalIdentityDebugWidget
- LocalAddressesDebugWidget, RateCalculatorWidget
Hardware Layer
Robot hardware control and sensors.
libhardware - Hardware Abstraction
Core
- SensorInput - Aggregated device sensor data
- BluetoothList - Bluetooth device discovery
Controllers
- Controller - The single robot controller (libfixo); it replaced the controller factory and the IController interface
- Agent - Controller lifecycle management, which ControllerHandler did before
Controller UI
- ControllerActivity - Full-screen controller management
- ControllerTypeSelector - Controller type selection activity
- ControllerStatsWidget - Controller capability summary
- ControllerManagerWidget - Tabbed controller management (libfixo)
- HardwareActivity - Hardware navigation activity
- HardwareWizard - Step-by-step hardware setup
Templates
- HardwareTemplate - Predefined robot configurations
- HardwareTemplateModel - Qt model for templates
Actuators
- ActuatorWidget - Single actuator control widget
- ActuatorManagerWidget - Multi-actuator management (libfixo)
- ActuatorSelector - Actuator selection combo box
Serial Ports
- SerialSettings - Serial port configuration
- SerialSettingsWidget - Serial settings form
- SerialList - Serial port monitoring
- SerialDeviceListModel - Qt model for serial devices
- SerialDeviceSelector - Serial port selection activity
Lobes - Locomotion
A lobe changes control intent into actuator output. The liblobe library and its per-type lobe and widget classes were removed. A lobe is now a firmware component in libfixo, and the Controller compiles the lobes of a Preset into the firmware.
- Lobe - A lobe that a preset lists by type and name
- FixoLobeTypeRegistry - Registry of the available lobe types; it replaced LobeFactory
- LobeManager - Fixo studio page that lists and edits lobe types
- DifferentialDriveLobe - Wheeled and tracked drive
- SteeringThrottleLobe - Steering servo and throttle (RC car)
- LeggedGaitLobe - Trot gait for four-leg and six-leg robots
libnumex - Controller Serial Protocol
The serial protocol between the host and the controller firmware. It replaced the ArduMY protocol, and the libardumy library was removed. The host does not send the actuator configuration at run time: the Controller compiles it into the firmware. Only actuator values travel on the link, each batch led by its actuator enable bits.
Board Pins
- BoardPinSelector - Board pin selection widget (libwidgets)
- BoardPinFilter - Pin filter by pin type (libboard)
Protocol
- numex::NumexSerialLink - Host-side serial transmitter and receiver
- numex::IndexOrderedSerializer - Value serializer
- numex::IndexOrderedParser - Value deserializer
- numex::Converter - Union for value representations
- MagicDetector - Magic byte sequence detector
libpuppet - Robot Animation
Robot animation and pose control.
Poses
- Pose - Actuator position values container
- PoseSequence - Timed sequence for animation
- PoseMapping - Actuator index mapping with names
- PoseView - Pose bar chart visualization
- PoseMappingWidget - Pose mapping editor UI
- PoseMappingView - Mapping connection visualization
Name Mapping
- NameMapping - String-to-string mapping
- NameMappingWidget - Name mapping editor UI
- NameMappingView - Name mapping visualization
Gait Control
- GaitController - Multi-limb gait controller template
- GaitWidget - Gait control visualization
- LimbIKWidget - Inverse kinematics limb display
Expression
- EyesWidget - Animated robot eyes display
- EyeRendrer - Single eye renderer with expressions
- IrisRendrer - Procedural iris texture generator
- Simplex - Simplex noise generator
Stanza
- Stanza - Robot control configuration
- Preset - Holds the stanzas of a robot (libfixo)
- StanzaTemplateBook - Reusable stanza templates (libfixo)
- StanzaManager - Stanza management activity
- StanzaEditorActivity - Stanza editing activity
Sensing & Perception
Camera, audio, and sensor processing.
libvideo - Video/Camera
Camera and media handling.
- MediaDevice - Audio/video device representation
- MediaDeviceModel - Qt model for device selection
- MediaDeviceManager - Device enumeration and monitoring
- MediaDeviceSelectorWidget - Device selection combo box
- CameraList - Camera enumeration utility
- CameraWidget - Live camera preview widget
- CameraSettings - Camera parameter storage
- TestImageGenerator - Procedural test pattern generator
- StreamCodec, StreamCodecWidget - Image compression
libaudio - Audio
Audio synthesis and utilities.
- DelayLine - Template delay buffer for reverb effects
- Dribble - Warbling tone generator
- Noise - Smoothed random value generator
libvoice - Voice
Text-to-speech synthesis.
- VoiceManager - Voice synthesis manager
- SpeechControlWidget - Speech input UI
libgps - GPS
GPS encoding and location services.
- TetraGPSEncoder - Tetrahedral GPS coordinate encoding
- GPSPosition - GPS coordinate with timestamp
libhaar - Face Detection
Haar cascade object detection.
- HaarCascade, HaarStage, HaarWeakClassifier
- HaarFeature, HaarRect, HaarFeatureExtractor
- IntegralImage, HaarPreprocessor
- HaarLoaderXML, HaarSaverXML, HaarCascadeModel
- CameraProcessor - Camera feed processing widget
libqr - QR Codes
QR code generation.
- qrcodegen::QrCode - Complete QR code generation
- qrcodegen::QrSegment - Data segment with encoding mode
- qrcodegen::BitBuffer - Bit buffer for data accumulation
libzbar - Barcode Scanning
Barcode scanning support.
- QtIconv - Qt-based iconv character encoding replacement
Behavior & Planning
Robot behavior scripting and automation.
libplan - OPAL Language
Robot behavior plans.
Core
- Plan - OPAL behavior script container
- PlanBook - Plan collection storage manager
- PlanHighlighter - OPAL syntax highlighting
Editor
- plan::editor::PlanEditor - Plan code editor
- WidgetCodeEditor - Shared text editor with a line number gutter (libwidgets)
- PlanEditorActivity - Full-screen plan editing
Book
- PlanBookActivity - Full-screen plan browser
- PlanBookWidget - Plan collection management
- PlanBookModel - Qt model for plan entries
libeval - Expression Evaluation
Mathematical expression evaluator.
- ExpressionEvaluator - High-level evaluation API
- CompiledExpression - Compiled expression
- ExpressionContext - Variable and function context
- FunctionRegistry - Registry of callable functions
- ASTBuilder, ASTNode - Abstract syntax tree
- Tokenizer, Token - Lexical analysis
libtrigger - Event System
Event-driven automation system.
Core
- TriggerExecutor - Timer-based trigger evaluator
- ConditionFactory - Condition type registry
- Trigger - Conditions and the task plan they start
- ConditionContext - Evaluation context for conditions
Conditions
- AlwaysCondition, NeverCondition
- ChanceCondition - Probabilistic evaluation
- CompositeCondition - Logical combination (AND/OR/NOT)
- GitRepoChangedCondition - Git change detection
Actions
A trigger has no action classes. When its conditions hold, it runs its TaskPlan (libopal). The former action hierarchy, with its action factory and action context, was removed, and a stored action list is changed into an equivalent task plan when it loads.
Testing & Automation
Testing infrastructure and UI automation.
libuiautomation - UI Automation
UI automation and testing tools.
Core
- AutomationScript - Parsed automation script
- AutomationScriptAction - Single parsed script action
- AutomationScriptRunner - Executes scripts step by step
- AutomationScriptContext - Script execution context
- ScriptLogEntry - Script execution log entry
- AutomationCommandRegistry - Command registration
- AutomationSandbox - Isolated execution environment
Targets
- Target - Automation target configuration
- TargetManager - Target storage and management
- TargetGroup - Group of automation targets
- TargetGroupMember - Single member in a target group
- TargetGroupManager - Target group storage
- TargetGroupLauncher - Process spawning for groups
Snapshots
- Snapshot - Named data snapshot with timestamp
- SnapshotManager - Snapshot storage and management
UI
- TargetManagerWindow - Main automation manager window
- ScriptEditorDialog - Script editor dialog
- AutomationScriptHighlighter - Script syntax highlighting
- WidgetCodeEditor - Code editor with line numbers (libwidgets)
UI Scripts
- UIScript - Parsed UI automation script
- UIAction - Single UI action
- UIScriptRunner - Executes UI scripts on widgets
libmocknode - Mock Testing
Mock node testing infrastructure.
Core
- MockNode - Shapeshifting test node (Agent/Remote/Hub)
- MockNodeWindow - Simple mock node window
- MockNodeAppWindow - Full testing window
- MockAppContext - Custom app context with baseDir
- PersonalityManagerWindow - Manager window for personalities
Personalities
- MockPersonality - Test personality configuration
- PersonalityManager - Personality storage and CRUD
Constellations
- Constellation - Group of nodes launched together
- ConstellationMember - Member configuration
- ConstellationManager - Constellation storage
- ConstellationLauncher - Process spawning
libtest - Test Utilities
Testing utilities and mock objects.
Communication Testing
- CommsTester - Comms integration test harness
- UDPTester - UDP send/receive utility
- CommsSignalLogger - Comms signal debug logger
- CourierTester - Courier integration testing
- TestKeys - Pre-generated RSA test keys
Stress Testing
- Stress - CPU/memory stress coordinator
- CPUBurner - Adaptive CPU load generator
- MEMTrasher - Memory pressure generator
- GLStressWidget - OpenGL stress test widget
Mock Objects
- MockCommsCarrier - In-memory transport carrier
- MockCourier - Test message courier
- MockCommsSession - Mock communication session
- MockAddressBook - Test address book
- MockAssociate - Test associate factory
Graphics & Visualization
3D rendering and visualization tools.
libglt - OpenGL Tools
OpenGL utilities.
- GLContext - OpenGL context and surface wrapper
- GLErrors - OpenGL error handling utilities
libconstruct - 3D Rendering
3D rendering framework with Qt RHI.
- Camera, Scene, RhiContext - Core rendering
- ConstructWidget, ConstructShell - Qt RHI widget integration
- Layer, CubeNode, TriNode, TexTriNode, ShapeNode - Scene nodes
- GroundPlane, IsoSurfaceNode - Special renderers
- InputHandler - Camera navigation
- GeometryGenerator - Procedural mesh generation
libd3 - Node Graph Editor
3D node graph editor and isosurface visualization.
Graph
- Graph - Node/connection graph container
- Node (d3) - 3D graph node with physics
- Connection - Edge between nodes
- Tri - Triangle connecting three nodes
- NodeView - OpenGL graph renderer and editor
Isosurface
- MarchingCubesWidget - Marching cubes renderer
- ChunkWidget - Compute shader marching cubes
- Chunk - Voxel chunk with GPU buffers
- HeightMap, HeightWidget - Height field visualization
- Blobs, Bars, Pond, Birth, Shape - Density fields
libmarkdown - Markdown
Markdown editing and rendering.
- Markdown - Markdown to HTML converter (Hoedown)
- MarkdownHighlighter - Markdown syntax highlighting
- HTMLHighlighter - HTML syntax highlighting
- markdown::MarkdownEditor - Three-pane Markdown editor
- markdown::CodeEditor - Code editor with completion
libmap - Geographic Maps
Geographic map display (QMapControl).
Core
- qmapcontrol::MapControl - Interactive map widget
- qmapcontrol::MapAdapter - Abstract map tile provider
- qmapcontrol::Layer, qmapcontrol::LayerManager
- qmapcontrol::ImageManager, qmapcontrol::MapNetwork
- GPSPosition - GPS coordinate
- MapLocationEditor, MapEditor - Map editing
Adapters
- qmapcontrol::TileMapAdapter, qmapcontrol::OSMMapAdapter
- qmapcontrol::GoogleMapAdapter, qmapcontrol::BingAPIMapAdapter
- qmapcontrol::WMSMapAdapter, qmapcontrol::EmptyMapAdapter
Geometries
- qmapcontrol::Point, qmapcontrol::Curve, qmapcontrol::LineString
- qmapcontrol::ImagePoint, qmapcontrol::CirclePoint
- qmapcontrol::ArrowPoint, qmapcontrol::InvisiblePoint
- qmapcontrol::FixedImageOverlay
Storage & Persistence
Data storage and persistence.
libstore - Data Storage
Data persistence backends.
- DataStore - Legacy transactional file storage
- JsonAsyncBackend - JSON file storage backend
- StorageEvent - Async operation with completion tracking
Web & Networking
HTTP client/server and web services.
libweb - HTTP
HTTP client/server and templating.
- qhttp::server::QHttpServer - Lightweight HTTP server
- qhttp::server::QHttpConnection, QHttpRequest, QHttpResponse
- qhttp::client::QHttpClient, QHttpRequest, QHttpResponse
- Mustache::Renderer - Mustache template renderer
- Mustache::Context - Template variable context
libclt - OpenCL
OpenCL compute with OpenGL interop.
- CLWorker - OpenCL compute worker base class
- CLWorkerFactory - Factory for CLWorker instances
- CLThreadManager - Multi-device worker thread management
- CLGLView - OpenGL widget with OpenCL rendering
- CLGLViewRenderer - Abstract renderer interface
Miscellaneous
Additional utilities.
libgibber - Text Generation
Placeholder text generation.
- Gibber - Placeholder text generation
libcommand - Commands
Command-line interface framework.
- DockerCommand - Docker container command handler
- LsCommand - Directory listing command handler
Getting Started
See the OctoMY Documentation for tutorials and guides.
Project Information
- Website: https://octomy.org
- Source: https://github.com/mrdeveloperdude/OctoMY
- License: GPL-3.0