Details
The AmberLG add-on for Blender follows a modular architecture designed for integrating holographic displays.
Blender Integration & User Interface
This component serves as the primary interface between the Blender environment and the add-on's core logic. It manages all user-facing elements, including custom panels, operators, viewport drawing for lightfield visualization, and integration with Blender's rendering pipeline and preference system.
Lightfield Core Processing
This component encapsulates the fundamental algorithms and data processing required to generate lightfield data. It is responsible for managing camera arrays, calculating lightfield views, and preparing the final "quilt" image suitable for holographic displays. This layer is designed to be independent of Blender's specific UI.
Device Abstraction Layer (pyLightIO)
This component provides a high-level, abstract interface for interacting with external holographic display devices and services. It abstracts away the complexities of device-specific communication protocols and hardware interactions, offering a unified API for sending lightfield data.
Inter-Process Communication (NNG/CBOR)
This component handles the low-level inter-process communication (IPC) mechanisms used to exchange data with external services, specifically leveraging NNG (Nanomsg Next Generation) for messaging and CBOR (Concise Binary Object Representation) for data serialization and RPC. It ensures robust and efficient data transfer.
Configuration & State Management
This component centralizes the management of application-wide settings, user preferences, and global variables. It ensures that configuration data is consistently stored, loaded, and accessible across different parts of the add-on, facilitating persistence and shared state.