Dagger

The Dagger database is the streaming engine at the heart of the platform. It is designed to manage and stream geometric models over the network, ensuring that users can interact with complex data without waiting for full local downloads.

Data Storage

Dagger serves as a specialized repository for 3D and volumetric data, including point clouds, block models, triangle meshes, and time-varying models. It leverages hierarchical Level of Detail (LOD) and acceleration structures to transmit only the data required for the user’s current view.

Progressive Fidelity

Dagger is optimized to minimize bandwidth while maintaining visual feedback. It uses a progressive, view-dependent streaming pipeline:

  • Coarse-to-Fine Progression: Models are streamed starting from low-resolution approximations and progressively refined as higher-detail data arrives.
  • Spatial Filtering: The engine dynamically adjusts the stream to prioritize data within the current viewport.
  • Occlusion Culling: Geometry hidden behind other objects is excluded from the stream to preserve bandwidth.
  • Sparse Attribute Streaming: Only specific attributes required for the current visualization are streamed. For example, if visualizing a block model by “grade,” the engine only streams geometry and the grade values.

Attribute-Rich Data

Beyond raw geometry, Dagger handles attribute-rich data by attaching multiple attributes to each bounding box (AABB). This is useful for datasets where each region contains numerous physical properties, classifications, or analytical results.

Architecture and Scale

Dagger is a cloud-native service that separates model metadata from bulk geometric data. Metadata and relationships are managed in PostgreSQL, while bulk data is stored in object storage such as Amazon S3 or Azure Blob Storage. This separation enables independent scaling of metadata queries and data retrieval. We provide Terraform modules and Kubernetes configurations to support production deployments.

Integration

Dagger is designed as an integrated part of the ecosystem. It provides an API for interacting with the database and coordinating data access.

To ensure security, Dagger relies on modular middleware for authorization. It leverages standardized tools like fsl_axum to verify identity and enforce project-level access rules. This ensures that data is only streamed to authorized users.