Skip to content
Jason Peterson Jason Peterson

Projects

A few things I've recently built. Each one comes with a short clip showing it in action.

Project Stack
FizzGram iOS · Cloudflare Workers · USPS API · Print fulfillment · Maps · Weather · On-device CV
Multimodal Media Search Python · CLIP · Whisper · ArcFace · pgvector · Vue.js
Slate Detection Python · MobileNet V2 · Synthetic data · Blender · ComfyUI · OCR · CoreML
ML Conform Python · SSCD · FAISS · Smith-Waterman · pgvector
Universal Memory Cloudflare Workers · D1 · KV · Vectorize · Durable Objects · MCP
FLAPI Context MCP Python · MCP · FLAPI · Claude Code · OpenCode · Context engineering
Frame.io Integration REST · OAuth · Adobe Frame.io · Python · FLAPI · Production

FizzGram

The full send flow.

The problem

Grandparents, aunts and uncles, the lovely Luddites in your life never see the photos you would love to share. They are not on Instagram. The good stuff in your family life lives on a screen they cannot reach.

Approach

Pick a photo. Write a note. Optionally add a map of where you took it, the date, even the weather. Printed at 300 DPI on heavy stock and dropped in the mail.

  • iOS
  • Cloudflare Workers
  • USPS API
  • Print fulfillment
  • Maps
  • Weather
  • On-device CV
fizzgram.com →

Slate Detection

First testing the model with overlay outputs on a single clip, then running detection across a shot group to return clap frame and timecode.

The problem

Every clip starts or ends with a slate carrying the timecode needed to sync sound to picture. Dailies operators hunt through footage manually to find each one, sometimes minutes per scene, on every job.

Approach

Internal Python prototype for finding and reading film slates in media. Two MobileNet V2 models (slate detection + timecode OCR) trained on synthetic data generated via Blender and ComfyUI. On-device inference required for client confidentiality, ~45ms at 800MB VRAM alongside the host finishing system. CoreML port in progress for further speedups.

I have been running slate detect v0.1.0 through its paces and I have to say I am extremely impressed. As is, I can see this tool offering tremendous value to a Dailies operator, eliminating much of the 'slate hunting' that has to be done. This is one of the first things I've worked on in a while that feels really bleeding edge.

— FilmLight customer, Dailies operator
  • Python
  • MobileNet V2
  • Synthetic data
  • Blender
  • ComfyUI
  • OCR
  • CoreML
Read more → →

ML Conform

Corrupting shot metadata, then visually finding matches from offline SSCD vectors using a modified BLAST algorithm, with a final visualization of result accuracy.

The problem

When an edit comes back without a clean EDL, or with files that have been re-encoded, re-named, or stripped of metadata, reconstructing the original timeline is hours of manual matching per project.

Approach

Internal Python prototype for visual auto-conform using copy-detection embeddings and BLAST-inspired alignment from bioinformatics. Recovers timeline metadata across re-edits and metadata-stripped media.

  • Python
  • SSCD
  • FAISS
  • Smith-Waterman
  • pgvector
Read more → →

Universal Memory

D3 visualization of the underlying node graph (data obscured), available via MCP across LLM sessions regardless of vendor.

The problem

Every LLM session starts blank. Switching from Claude to ChatGPT to Gemini means re-explaining context each time, and even within one assistant nothing persists across sessions.

Approach

Knowledge graph on Cloudflare Workers serving as shared MCP-accessible memory across Claude, ChatGPT, and Gemini. Automated multi-source ingestion.

  • Cloudflare Workers
  • D1
  • KV
  • Vectorize
  • Durable Objects
  • MCP
Read more → →

FLAPI Context MCP

FLAPI Context MCP

Four layers that fill the agent's context window with the right information at the right time.

The problem

A general-purpose coding agent is fluent in syntax but blind to the implicit knowledge that makes a complex professional API actually run: which runtime, which dependencies, where things deploy, what the logs say when something breaks.

Approach

Local MCP server in Python that turns Claude Code, OpenCode, and other MCP-compatible agents into FLAPI domain experts. Four layers: discovery (probe ports and venvs), gathering (introspect classes, index examples), provisioning (create venv, install the matched wheel, deploy script), and observability (read logs, surface errors). Agent calls tools, gains domain expertise, writes scripts that run on the first or second try.

  • Python
  • MCP
  • FLAPI
  • Claude Code
  • OpenCode
  • Context engineering
Read more → →

Frame.io Integration

Older tutorial video walking through the v3 integration. v4 has parity plus the new Frame.io v4 API surface and is currently in code review.

The problem

Colorists work in FilmLight's Baselight finishing system. Their clients review and give feedback in Frame.io. Without a direct integration, that means manual exports, manual uploads, manual version tracking, and feedback that frequently gets lost between systems.

Approach

REST and OAuth integration between FilmLight's Baselight and Adobe Frame.io. The v3 integration shipped in production and is used daily by customers worldwide. The v4 integration is finished and currently in code review.

  • REST
  • OAuth
  • Adobe Frame.io
  • Python
  • FLAPI
  • Production