What Pixeltable Replaces
Most multimodal AI stacks look like this: blob storage for media, a relational database for metadata, a vector database for embeddings, an orchestrator for scheduling, and custom glue code holding it all together.- Traditional Stack
- With Pixeltable
5+ services to deploy and maintain: blob storage, orchestrator, relational DB, vector DB, cache — plus custom retry logic, rate limiting, sync scripts, and error handling to wire them together.
Systems Pixeltable Replaces
You don’t install, configure, or manage these — Pixeltable handles them natively.| Instead of … | With Pixeltable … |
|---|---|
| PostgreSQL / MySQL | pxt.create_table() — schema is Python, versioned automatically |
| Pinecone / Weaviate / Qdrant | add_embedding_index() — one line, auto-maintained on insert/update/delete |
| S3 / boto3 / blob storage | pxt.Image / Video / Audio / Document types with transparent caching; destination='s3://…' for cloud routing |
| Airflow / Prefect / Celery | Computed columns trigger on insert — no orchestrator, no workers, no DAGs |
| LangChain / LlamaIndex (RAG) | @pxt.query + .similarity() + computed column chaining |
| pandas / polars (multimodal) | .sample(), ephemeral UDFs, then add_computed_column() to commit — same code, prototype to production |
| DVC / MLflow / W&B | Built-in history(), revert(), time travel (table:N), snapshots — zero config |
| Custom retry / rate-limit / caching | Built into every AI integration; results cached, only new rows recomputed |
| Custom ETL / glue code | Declarative schema — Pixeltable handles execution, caching, incremental updates |
Tools Pixeltable Abstracts
These tools run under the hood, but you interact through a cleaner interface. This is a sample — Pixeltable wraps 30+ AI providers, dozens of built-in functions for media and data processing, and supports any Python library via@pxt.udf.
| Tool | Raw usage | Through Pixeltable |
|---|---|---|
| FFmpeg | Install binary, subprocess calls, format conversion, frame seeking | extract_audio(video, format='mp3') for audio; frame_iterator(video, fps=1) for frame extraction via pxt.create_view() |
| Pillow/PIL | Image.open(), resize, convert, encode, save, handle formats | pixeltable.functions.image module: resize(), crop(), thumbnail(), b64_encode(), rotate(), blend(), plus width(), height(), get_metadata() |
| spaCy | pip install spacy, download model, load pipeline, parse documents | document_splitter(doc, separators='sentence') — spaCy runs under the hood (configurable via spacy_model parameter). Also supports 'heading', 'paragraph', 'page', 'token_limit', 'char_limit' separators |
| sentence-transformers | Load model, tokenize, encode batches, normalize vectors | sentence_transformer.using(model_id='intfloat/e5-large-v2') passed to add_embedding_index(). Pixeltable handles model loading, batching, and index maintenance |
| OpenAI CLIP | Load model, preprocess images/text differently, encode, handle multimodal alignment | clip.using(model_id='openai/clip-vit-base-patch32') — multimodal embedding index that accepts both image and text queries for cross-modal search |
| OpenAI Whisper | API key setup, audio format handling, chunking long files, parsing responses | openai.transcriptions(audio=table.audio_col, model='whisper-1') as a computed column — automatic rate limiting, caching. Also supports local Whisper via whisper.transcribe() |
| Anthropic Claude tool calling | Construct messages, define tool schemas as JSON, parse tool_use blocks, execute tools, re-call with results | anthropic.messages() + anthropic.invoke_tools() + pxt.tools() — all as chained computed columns. Tool schemas derived automatically from @pxt.udf function signatures |
| + many more | See the full SDK Reference, AI Integrations, Cookbooks, and Cheat Sheet |
What Pixeltable Doesn’t Replace
You still need these — Pixeltable is a data layer, not a full application framework.| Tool | Why you still need it |
|---|---|
| FastAPI / Flask / Django | Pixeltable is a data layer, not a web server — you need an HTTP framework to serve your API |
| Pydantic | Request/response validation for your API endpoints (Pixeltable’s .to_pydantic() bridges the two) |
| React / Vue / frontend | UI layer — Pixeltable has no frontend |
| Docker / Kubernetes / Terraform | Deployment infrastructure — Pixeltable runs inside your containers, it doesn’t provision them |
| Authentication / authorization | User management, API keys, OAuth — outside Pixeltable’s scope |
| Domain-specific UDFs | Business logic you write as @pxt.udf functions (e.g., web search, custom scoring) — Pixeltable provides the framework, you provide the logic |
Deployment Decision Guide
Pixeltable supports two production deployment patterns. Choose based on your constraints:| Question | Answer | Recommendation |
|---|---|---|
| Existing production DB that must stay? | Yes | Orchestration Layer |
| Building new multimodal app? | Yes | Full Backend |
| Need semantic search (RAG)? | Yes | Full Backend |
| Only ETL/transformation? | Yes | Orchestration Layer |
| Expose Pixeltable as MCP server for LLM tools? | Yes | Full Backend + MCP Server |
Technical Capabilities (Both)
Regardless of deployment mode, you get:- Multimodal Types: Native handling of Video, Document, Audio, Image, JSON.
- Computed Columns: Automatic incremental updates and dependency tracking.
- Views & Iterators: Built-in logic for chunking documents, extracting frames, etc.
- Model Orchestration: Rate-limited API calls to OpenAI, Anthropic, Gemini, local models.
- Data Interoperability: Import/export Parquet, PyTorch, LanceDB, pandas.
- Configurable Media Storage: Per-column destination (local or cloud bucket).
Use Case Comparison
| Capability | ML Data Wrangling | AI Applications |
|---|---|---|
| Multimodal Types | ✅ Video, Audio, Image, Document | ✅ Video, Audio, Image, Document |
| Computed Columns | ✅ Enrichment & pre-annotation | ✅ Pipeline orchestration |
| Embedding Indexes | ✅ Curation & similarity search | ✅ RAG & retrieval |
| Versioning | ✅ Dataset snapshots | ✅ Data lineage |
| Data Sharing | ✅ Publish datasets | ✅ Team collaboration |
Deployment Strategies
Approach 1: Pixeltable as Orchestration Layer
Use Pixeltable for multimodal data orchestration while retaining your existing data infrastructure.Use When
Use When
- Existing RDBMS (PostgreSQL, MySQL) and blob storage (S3, GCS, Azure Blob) must remain
- Application already queries a separate data layer
- Incremental adoption required with minimal stack changes
Architecture
Architecture
- Deploy Pixeltable in Docker container or dedicated compute instance
- Define tables, views, computed columns, and UDFs for multimodal processing
- Process videos, documents, audio, images within Pixeltable
- Export structured outputs (embeddings, metadata, classifications) to RDBMS
- Export generated media to blob storage
- Application queries existing data layer, not Pixeltable
What This Provides
What This Provides
- Native multimodal type system (Video, Document, Audio, Image, JSON)
- Declarative computed columns eliminate orchestration boilerplate
- Incremental computation automatically handles new data
- UDFs encapsulate transformation logic
- LLM call orchestration with automatic rate limiting
- Iterators for chunking documents, extracting frames, splitting audio
Approach 2: Pixeltable as Full Backend
Use Pixeltable for both orchestration and storage as your primary data backend.Use When
Use When
- Building new multimodal AI application
- Semantic search and vector similarity required
- Storage and ML pipeline need tight integration
- Stack consolidation preferred over separate storage/orchestration layers
Architecture
Architecture
- Deploy Pixeltable on persistent instance (EC2 with EBS, EKS with persistent volumes, VM)
- Build API endpoints (FastAPI, Flask, Django) that interact with Pixeltable tables
- Frontend calls endpoints to insert data and retrieve results
- Query using Pixeltable’s semantic search, filters, joins, and aggregations
- All data stored in Pixeltable: metadata, media references, computed column results
What This Provides
What This Provides
- Unified storage, computation, and retrieval in single system
- Native semantic search via embedding indexes (pgvector)
- No synchronization layer between storage and orchestration
- Automatic versioning and lineage tracking
- Incremental computation propagates through views
- LLM/agent orchestration
- Data export to PyTorch, Parquet, LanceDB
Get Started
Pixeltable Starter Kit
A production-ready starter app with a FastAPI backend and React frontend — multimodal upload, cross-modal search, and a tool-calling agent, all wired through Pixeltable computed columns. Includes deployment configs for Docker Compose, Helm, Terraform (EKS/GKE/AKS), and AWS CDK.
| Architecture | Pattern | What it demonstrates |
|---|---|---|
| Starter Kit (main app) | Pixeltable as full backend | FastAPI + React with persistent storage, multimodal upload, cross-modal search, tool-calling agent |
| Orchestration Pipeline | Pixeltable as ephemeral processing engine | Batch ingest, computed column processing, export_sql to serving DB, media routing to cloud buckets |
Next Steps
Infrastructure Setup
Code organization and storage architecture
Production Operations
Concurrency, error handling, and schema evolution
Security & Backup
Backup strategies and security best practices