DEV Community

mote
mote

Posted on

Why moteDB? The Embedded Multimodal Database Built for Embodied AI

Building Embodied AI Memory: How moteDB Stores Vector, Time-Series, and State Together

A robot operating in a warehouse needs to store multiple types of data simultaneously: camera embeddings for scene recognition, LIDAR time-series for navigation, and structured state for task configuration. Traditionally, this means running three different databases. With moteDB, you get one.

The Three Data Types of Embodied AI

1. Vector Embeddings

When your robot perceives the world through cameras, each frame gets converted to a vector embedding. Over time, you want to search: "has the robot seen something similar before?" moteDB provides HNSW and IVF indexes for approximate nearest-neighbor search at scale.

2. Time-Series Data

LIDAR readings, IMU data, motor telemetry — these are sequences of timestamped measurements. moteDB's time-series engine handles high-throughput ingestion with automatic downsampling and compression.

3. Structured State

Robot configuration, task definitions, learned parameters — this is structured relational data. moteDB provides CRUD operations with indexes and queries.

A Practical Example

use motedb::{Database, Store};

let db = Database::new("warehouse_robot.db")?;

// Store perception embedding
db.insert_vector("vision", &[0.1f32; 384], "frame_001")?;

// Store LIDAR time-series
for reading in lidar_data {
    db.insert_timeseries("lidar", reading.timestamp, reading.distance)?;
}

// Store structured state
db.insert("robot_config", &RobotConfig { mode: "exploring", battery: 0.85 })?;

// Query: find similar past frames
let matches = db.search("vision", current_embedding, 5)?;

// Query: last 10 minutes of LIDAR
let recent = db.query_timeseries("lidar").after(timestamp - 600).exec()?;
Enter fullscreen mode Exit fullscreen mode

Why Not Three Separate Databases?

Three databases means three maintenance burdens, three failure points, and three network round-trips per perception cycle. For an embedded robot, every millisecond matters. moteDB runs in-process with zero network overhead.

Get Started

cargo add motedb

GitHub: github.com/motedb/motedb

Top comments (0)