Skip to main content

Shared schemas and factual data for embodied AI hardware/software codesign

Project description

Embodied Schemas

Shared Pydantic schemas and factual hardware/model data for embodied AI hardware/software codesign.

Overview

This package provides:

  1. Pydantic Schema Models - Type-safe data structures for hardware platforms, ML models, sensors, use cases, and benchmarks
  2. Factual Data Catalog - YAML files with validated specifications for chips, dev kits, perception models, and sensors
  3. Registry API - Unified access to query and filter the data catalog

Installation

pip install embodied-schemas

# For development
pip install -e ".[dev]"

Usage

Import Schema Models

from embodied_schemas import (
    HardwareEntry,
    ModelEntry,
    SensorEntry,
    UseCaseEntry,
    BenchmarkResult,
)
from embodied_schemas.hardware import HardwareType, PowerMode
from embodied_schemas.constraints import LatencyTier, PowerClass

Access Data Catalog

from embodied_schemas import Registry

# Load the catalog
registry = Registry.load()

# Look up hardware by ID
jetson_nano = registry.hardware.get("nvidia_jetson_nano_4gb")

# Find hardware matching criteria
edge_devices = registry.hardware.find(
    suitable_for="edge",
    power_watts_max=15
)

# Look up models
yolov8s = registry.models.get("yolov8s")
detection_models = registry.models.find(type="object_detection")

# Check compatibility
is_compatible = registry.is_compatible(
    model_id="yolov8s",
    hardware_id="nvidia_jetson_nano_4gb",
    variant="fp16"
)

Use in Tool Outputs

from embodied_schemas import BenchmarkResult
from embodied_schemas.benchmarks import LatencyMetrics

result = BenchmarkResult(
    model_id="yolov8s",
    hardware_id="nvidia_jetson_nano_4gb",
    variant="fp16",
    verdict="PASS",
    confidence="high",
    latency=LatencyMetrics(
        mean_ms=28.5,
        std_ms=2.1,
        p95_ms=32.0,
    ),
)

Data Catalog Structure

data/
├── hardware/           # Complete dev kits and platforms
│   ├── nvidia/
│   ├── qualcomm/
│   ├── hailo/
│   ├── google/
│   └── ...
├── chips/              # Raw SoC/chip specifications
│   ├── nvidia/
│   ├── qualcomm/
│   └── ...
├── models/             # ML model specifications
│   ├── detection/
│   ├── segmentation/
│   └── ...
├── sensors/            # Cameras, depth sensors, LiDAR
│   ├── cameras/
│   ├── depth/
│   └── lidar/
├── usecases/           # Application constraint templates
│   ├── drone/
│   ├── quadruped/
│   ├── amr/
│   └── edge/
└── constraints/        # Tier definitions
    ├── latency_tiers.yaml
    └── power_classes.yaml

Related Projects

Contributing

Adding Hardware Data

  1. Create YAML file: src/embodied_schemas/data/hardware/{vendor}/{name}.yaml
  2. Follow the schema in src/embodied_schemas/hardware.py
  3. Run validation: pytest tests/test_data_validity.py
  4. Include datasheet URL in the file

Schema Changes

  • Schema changes require version bump
  • Breaking changes require major version bump
  • Add deprecation warnings before removing fields

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

embodied_schemas-0.6.0.tar.gz (125.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

embodied_schemas-0.6.0-py3-none-any.whl (224.4 kB view details)

Uploaded Python 3

File details

Details for the file embodied_schemas-0.6.0.tar.gz.

File metadata

  • Download URL: embodied_schemas-0.6.0.tar.gz
  • Upload date:
  • Size: 125.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for embodied_schemas-0.6.0.tar.gz
Algorithm Hash digest
SHA256 872e5d316fe1f43b16f16574700563a0ac5a0172febce6190c4fff12a7714dd9
MD5 51afd5318cc5e9502946829ee3f1f64a
BLAKE2b-256 6c5aa4eb1074e138bd2663f76e0cfcddec41690db5d6eb4cecb3f502ebfd47b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for embodied_schemas-0.6.0.tar.gz:

Publisher: publish.yml on branes-ai/embodied-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file embodied_schemas-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for embodied_schemas-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 722ee7f5e8c5abf0e03941dddc2b9f5e5954c6075c589d6f2effe0ff9a9bfb82
MD5 0c9731d4deaee510eaa5d578d67b1735
BLAKE2b-256 81da7dce6a8ca10056f09b9a1717afe659c8d614f24755a7fac3cb8f02655f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for embodied_schemas-0.6.0-py3-none-any.whl:

Publisher: publish.yml on branes-ai/embodied-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page