@strickvl

3 Followers
3 Following
270 Posts
Machine Learning Engineer, researcher (& author of a few books in my old life as a historian).
Love learning languages (machine and human), cats and sharks. Studying Mathematics @ the Open University. Budding J enthusiast.
linkedinhttps://linkedin.com/in/strickvl
githubhttps://github.com/strickvl
bloghttps://mlops.systems/

That brings panlabel to 13 supported formats with full read, write, and auto-detection. Single binary, no Python dependencies.

This is the kind of project I enjoy just steadily plodding away at — ticking off one format at a time until every common object detection annotation format is covered.

https://github.com/strickvl/panlabel

#ObjectDetection #Rust #MachineLearning #ComputerVision #OpenSource

GitHub - strickvl/panlabel: Universal annotation converter

Universal annotation converter. Contribute to strickvl/panlabel development by creating an account on GitHub.

GitHub

I've been building panlabel — a fast Rust CLI that converts between dataset annotation formats — and I'm a few releases behind on sharing updates.

v0.3.0: Hugging Face ImageFolder support (local + remote Hub import)
v0.4.0: auto-detection UX overhaul + Docker images
v0.5.0: split-aware YOLO reading + conversion report explainability
v0.6.0: Five new format adapters — LabelMe, CreateML, KITTI, VIA JSON, RetinaNet CSV

Best part is what we can do now that we couldn't before — blog posts through git, a searchable LLMOps database with real filtering, preview URLs for every PR. Our designer said it best: "It feels much nicer and powerful to work on the website now, and also flexible to make new layouts and whatever ideas that come to our minds without the Webflow restrictions."

Wrote up the whole process including the parts that went wrong:
https://www.zenml.io/blog/how-i-rebuilt-zenml-io-in-a-week-with-claude-code

How I Rebuilt zenml.io in a Week with Claude Code - ZenML Blog

I rebuilt zenml.io — 2,224 pages, 20 CMS collections — from Webflow to Astro in a week using Claude Code and a multi-model AI workflow. Here's how.

The thing that made it reliable: using different models for different parts of the project. ChatGPT Deep Research for the upfront architecture decisions, Claude Code for building, and RepoPrompt to get Codex to review Claude's work at phase boundaries. One of those reviews caught 7 schema issues that would've broken everything downstream.

Last month I migrated our ZenML website from Webflow to Astro in a week during a Claude Code / Cerebras hackathon. 2,224 pages, 20 CMS collections, 2,397 images. The site you see now is the result.

Didn't win the hackathon but got a production website out of it, so I'll take that trade.

GitHub - strickvl/panlabel: Universal annotation converter

Universal annotation converter. Contribute to strickvl/panlabel development by creating an account on GitHub.

GitHub

Not going to change the world, but it might save someone a few hours of debugging coordinate transforms or prevent silent data corruption between tools.

Full roadmap and install instructions in the repo. If you work with annotated datasets and have hit similar pain points, would be curious to hear what formats or features would be most useful.

What it does:

→ Convert between annotation formats (focusing on object detection first, but segmentation and classification coming soon)

→ Validate your datasets
→ Generate statistics
→ Semantic diff between dataset versions
→ Create random or stratified subsets

There are a ridiculous number of object detection formats out there, and each one has its own quirks about how it handles bounding boxes, coordinates, or class mappings. I'm working through them slowly, format by format.

panlabel 0.2 is out. It's a CLI tool (and Rust library) for converting between different dataset annotation formats. Now also available via Homebrew.

The origin story is pretty mundane: I hit one too many bounding box bugs caused by format inconsistencies and decided someone should just build a Pandoc equivalent for annotation data.

The reasoning isn't strong enough for gnarly bugs, but the speed makes it useful for a different class of task. Still early days figuring out where it fits.

Are you using Codex Spark? Has it carved out a specific role in your workflow, or is it just another option you reach for occasionally?