I'm Co-Founder & CEO of Pixeltable — open-source Python infrastructure that unifies multimodal storage, incremental computation, vector indexing, tool-calling agents, and FastAPI serving in a single declarative app.py.
📦 Latest release:
v0.7.22· ⭐ 1,651 stars · 🍴 232 forks · 🧪 42 runnable example apps
| Repository | What it does | Try / Install |
|---|---|---|
pixeltable/pixeltable |
The backend agents build with. Declarative tables (TableModel), incremental computed columns, hybrid vector search (EmbeddingIndex), media storage, and HTTP serving (FastAPIRouter) in one file. |
pip install 'pixeltable[serve]' |
awesome-pixeltable-apps |
Curated gallery of self-contained multimodal AI apps & REST APIs built with Pixeltable. Open any app in GitHub Codespaces or deploy to Pixeltable Cloud. | Browse Live Gallery → |
challenge-the-design |
Agent skill & plugin that reviews a PR or stack as an ensemble, separates requirements from assumptions, and runs a behavior-preserving deletion pass before checking implementation. | npx skills add pierrebrunelle/challenge-the-design |
marcel-review |
Agent skill that reviews a change the way Marcel Kornacker reviews it: crisp abstractions, ownership, failure paths, and what the change costs its future readers. | npx skills add pierrebrunelle/marcel-review |
mcp-server-openai & infinite-memory-discord-bot |
Model Context Protocol server bridging Claude & OpenAI models, plus a stateful Discord agent with durable semantic memory backed by Pixeltable. | Explore Repos → |
Auto-synced from pierrebrunelle/awesome-pixeltable-apps (42 apps total, newest first):
| App | Architecture & Features | Launch |
|---|---|---|
| Rail Yard Switch Inspection 2026-10-30 |
Inspect rail yard switch throws from trackside video: keyframe-accurate clips, blade position per clip, a vision-model note with semantic search, and switch-motor run times split from the audio at its silences, all as Pixeltable computed columns and viewsMedia (images) · Computed columns & UDFs · B-tree indexes |
|
| high-school physics exams 2026-10-29 |
Turn physics chapter PDFs into a validated multiple-choice question bank: page-aware splitting, gpt-4o-mini with a strict JSON schema, Pydantic validation, one row per question, JSON exportComputed columns & UDFs · B-tree indexes · Media (images) |
|
| Chess Tournament Broadcast 2026-10-28 |
Turn chess tournament broadcast recordings into scenes, keyframes, per-shot frames, the final board of every game and highlight clips, with every step a Pixeltable computed column or viewMedia (images) · Computed columns & UDFs · B-tree indexes |
|
| Equipment Manuals 2026-10-27 |
Chat-with-your-PDFs API for equipment manuals: upload PDF or Markdown manuals, page-aware chunking, an embedding index, and cited gpt-4o-mini answers from one FastAPIRouterFastAPI serving · Concurrency · Computed columns & UDFs · B-tree indexes · Media (images) |
|
| Observatory Night Log 2026-10-26 |
Migrate a messy legacy observatory night log CSV into Pixeltable without losing a row: parse coordinates and photometry as computed columns, keep each failed parse as a per-column error, fix the source values and recompute only the failed cellsComputed columns & UDFs · B-tree indexes |
⚡ 60-Second Quickstart: One-File Multimodal Backend (app.py)
With Pixeltable, your schema, computed columns, vector indexes, and HTTP routes live in a single declarative app.py — no separate vector DB, no for row in ...: model loops, and no imperative glue:
import pixeltable as pxt
import pixeltable.functions as pxtf
from pixeltable.functions.openai import embeddings
from pixeltable.serving import FastAPIRouter
TableModel = pxt.model_base()
@pxt.udf
def excerpt(text: str, n: int = 120) -> str:
return text if len(text) <= n else f'{text[:n]}...'
class Docs(TableModel, name='docs'):
id = pxt.Column(value=pxtf.uuid.uuid7(), primary_key=True)
title: pxt.String
body: pxt.String
image: pxt.Image | None
summary = excerpt(body)
__indexes__ = [
pxt.EmbeddingIndex(column=body, string_embed=embeddings.using(model='text-embedding-3-small'))
]
api = FastAPIRouter(name='ingest')
api.add_insert_route(Docs, path='/docs', inputs=[Docs.title, Docs.body, Docs.image], outputs=[Docs.id, Docs.summary])Run locally or deploy the exact same app.py to Pixeltable Cloud:
# Local
pip install 'pixeltable[serve]'
pxt init
pxt schema update app.py my_app
pxt service update app.py my_app -f
# Pixeltable Cloud
pxt login
pxt db update pxt://org:db -f
pxt schema update app.py pxt://org:db -f
pxt service update app.py pxt://org:db -f🧭 Engineering & Code Review Philosophy: Delete Before You Abstract
Whether designing multimodal infrastructure or reviewing pull requests with challenge-the-design and marcel-review, I optimize for a few non-negotiable invariants:
- State the problem and a measurable falsifier first. Separate true requirements from inherited assumptions before writing code.
- Delete unnecessary work before adding abstractions. Run a behavior-preserving deletion pass across the whole ensemble (callers, state, and tests) before introducing new layers.
- Every abstraction must earn its keep. A class or function should represent a crisp contract that can be stated in one sentence—and its docstring should state only what the signature does not.
- Declarative state over imperative glue. If progress and lineage live in rows and computed columns rather than ephemeral in-memory loops, retries, caching, and observability become properties of the table engine.
🏗️ Career Arc: Structural Engineering → Decision Science → AI Infrastructure
- Pixeltable — Co-Founder & CEO · Building open-source multimodal AI data infrastructure and Pixeltable Cloud (
pxt://). - Noteable (acquired by Confluent) — Co-Founder · Built the collaborative data notebook platform bridging Python, SQL, and interactive analytics, and pioneered early ChatGPT Code Interpreter / Notebook plugin workflows.
- Amazon & AWS — Decision Scientist & Product/Data Leader · Applied econometrics, optimization, and large-scale cloud data systems across AWS and Amazon consumer/infrastructure teams.
- Siemens & Structural Engineering — Started my career in structural engineering and industrial systems, where load paths, safety margins, and failure modes are calculated before anything is built.




