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:
- Pydantic Schema Models - Type-safe data structures for hardware platforms, ML models, sensors, use cases, and benchmarks
- Factual Data Catalog - YAML files with validated specifications for chips, dev kits, perception models, and sensors
- 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
- graphs - Analysis tools, roofline models, simulators
- Embodied-AI-Architect - LLM orchestration, CLI, knowledge base
Contributing
Adding Hardware Data
- Create YAML file:
src/embodied_schemas/data/hardware/{vendor}/{name}.yaml - Follow the schema in
src/embodied_schemas/hardware.py - Run validation:
pytest tests/test_data_validity.py - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
872e5d316fe1f43b16f16574700563a0ac5a0172febce6190c4fff12a7714dd9
|
|
| MD5 |
51afd5318cc5e9502946829ee3f1f64a
|
|
| BLAKE2b-256 |
6c5aa4eb1074e138bd2663f76e0cfcddec41690db5d6eb4cecb3f502ebfd47b5
|
Provenance
The following attestation bundles were made for embodied_schemas-0.6.0.tar.gz:
Publisher:
publish.yml on branes-ai/embodied-schemas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
embodied_schemas-0.6.0.tar.gz -
Subject digest:
872e5d316fe1f43b16f16574700563a0ac5a0172febce6190c4fff12a7714dd9 - Sigstore transparency entry: 1283996790
- Sigstore integration time:
-
Permalink:
branes-ai/embodied-schemas@33867fb2c60149342a679da071b96472dc9976b6 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/branes-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33867fb2c60149342a679da071b96472dc9976b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file embodied_schemas-0.6.0-py3-none-any.whl.
File metadata
- Download URL: embodied_schemas-0.6.0-py3-none-any.whl
- Upload date:
- Size: 224.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
722ee7f5e8c5abf0e03941dddc2b9f5e5954c6075c589d6f2effe0ff9a9bfb82
|
|
| MD5 |
0c9731d4deaee510eaa5d578d67b1735
|
|
| BLAKE2b-256 |
81da7dce6a8ca10056f09b9a1717afe659c8d614f24755a7fac3cb8f02655f33
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
embodied_schemas-0.6.0-py3-none-any.whl -
Subject digest:
722ee7f5e8c5abf0e03941dddc2b9f5e5954c6075c589d6f2effe0ff9a9bfb82 - Sigstore transparency entry: 1283997078
- Sigstore integration time:
-
Permalink:
branes-ai/embodied-schemas@33867fb2c60149342a679da071b96472dc9976b6 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/branes-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@33867fb2c60149342a679da071b96472dc9976b6 -
Trigger Event:
push
-
Statement type: