Pretrain a self-supervised vision model on your own unlabeled image folder.
Extract abstract per-patch representations from a trained JEPA checkpoint.
Train a decoder that converts learned image representations into vector SVG shapes.
Run a synthetic data smoke test to verify the full training pipeline works before using real images.
| prp-e/openjepa | rth/dl-lectures-labs | ypwhs/carnd-lanelines-p1 | |
|---|---|---|---|
| Stars | 16 | 15 | 15 |
| Language | Jupyter Notebook | Jupyter Notebook | Jupyter Notebook |
| Last pushed | — | 2026-02-06 | 2017-01-20 |
| Maintenance | — | Maintained | Dormant |
| Setup difficulty | moderate | easy | moderate |
| Complexity | 4/5 | 2/5 | 2/5 |
| Audience | researcher | researcher | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Needs PyTorch, torchvision, numpy, pyyaml, and tqdm, training on real images benefits from a GPU.
openjepa is a from scratch implementation, built with PyTorch, of an approach called I-JEPA for teaching a computer to understand images without needing any labeled data. Most methods that learn from unlabeled images work in one of two ways: some train the model to recognize that two altered versions of the same photo, like a cropped or blurred version, are really the same thing, while others hide part of an image and ask the model to redraw the missing pixels exactly. This project takes a third approach. Instead of redrawing pixels, JEPA hides large regions of an image, then trains one part of the model to look at the visible parts and predict an abstract internal representation of what the hidden parts should look like, rather than the actual pixels. A second, more stable copy of the model provides the target this prediction is checked against, and that copy updates slowly over time rather than being trained directly. Because the prediction target is this abstract representation rather than raw pixel colors, the model tends to learn about structure and shape rather than fine grained texture and noise, which the author sees as useful groundwork for a longer term goal of generating vector graphics, or SVG images, where shape matters more than pixel level detail. The repository includes a full pipeline: pretraining this JEPA model on real or synthetic images, extracting the learned internal representations from a trained model, training a separate decoder that turns those representations into curve based vector shapes, and rendering the final result as a real SVG file that can be opened in any browser or image viewer. Because there is no existing dataset that pairs images with matching SVGs, the decoder is instead trained the way an autoencoder would be, by rendering its output back into pixels and comparing that to the original photo. Setup only requires a handful of common Python packages such as PyTorch, torchvision, and numpy, with no internet access needed once installed. A synthetic data mode lets you verify the whole pipeline runs correctly before pointing it at a real folder of your own images.
A from scratch PyTorch implementation of I-JEPA, a self-supervised way to learn image structure and turn it into vector SVG graphics.
Mainly Jupyter Notebook. The stack also includes Python, PyTorch, Jupyter Notebook.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
double-check against the repo, no cap.