Skip to content

voxel51/fiftyone-plugin-examples

Repository files navigation

WIP: this repo is a work in progress!

FiftyOne Plugin Examples 🔌🚀

FiftyOne provides a powerful plugin framework that allows for extending and customizing the functionality of the tool.

With plugins, you can add new functionality to the FiftyOne App, create integrations with other tools and APIs, render custom panels, and add custom buttons to menus.

With FiftyOne Teams, you can even write plugins that allow users to execute long-running tasks from within the App that run on a connected compute cluster.

This repository contains a comprehensive collection of FiftyOne Plugin Examples designed to inspire and educate you on how to build your own plugins. Each example demonstrates different aspects of the plugin system and serves as a learning resource for developers looking to extend FiftyOne's functionality.

For example, here's a taste of what you can build with the plugin framework!

brain.mp4

Table of Contents

This repository contains a curated collection of FiftyOne Plugin Examples, organized into the following categories:

  • Core Examples: fundamental examples that demonstrate essential plugin concepts and patterns
  • Operator Examples: examples showing how to build custom operators and operations
  • Panel Examples: examples demonstrating how to create custom panels and visualizations
  • Integration Examples: examples showing how to integrate with external tools and APIs
  • Advanced Examples: complex examples showcasing advanced plugin capabilities

Core Examples

Name Description
skeleton 🦴 A minimal plugin template showing the basic structure and components needed to get started
hello-world 👋 A simple example that contains both Python and JavaScript components to demonstrate cross-language plugin development
basic-operator ⚙️ Learn how to create your first custom operator with input/output schemas and execution logic
basic-panel 📊 Create your first custom panel to display data and interact with your FiftyOne datasets

Operator Examples

Name Description
operator-examples ⚙️ A comprehensive collection of example operators showing how to use the operator type system to build custom FiftyOne operations
data-transformation 🔄 Examples of operators that transform and manipulate dataset fields and metadata
external-api 🌐 Learn how to build operators that integrate with external APIs and services
batch-processing 📦 Examples of operators that process multiple samples efficiently

Panel Examples

Name Description
panel-examples 📊 A collection of example panels demonstrating common patterns for building Python panels
visualization-panels 📈 Examples of custom visualization panels using popular charting libraries
interactive-panels 🖱️ Learn how to build interactive panels that respond to user input and selections
data-exploration 🔍 Examples of panels designed for exploring and analyzing dataset characteristics

Integration Examples

Name Description
ml-framework-integration 🤖 Examples showing how to integrate with popular ML frameworks like PyTorch, TensorFlow, and scikit-learn
cloud-integration ☁️ Learn how to build plugins that work with cloud storage and compute services
database-integration 🗄️ Examples of plugins that integrate with external databases and data sources
annotation-integration ✏️ Learn how to integrate with annotation tools and workflows

Advanced Examples

Name Description
delegated-operations 📡 Examples of plugins that use FiftyOne Teams delegated operations for long-running tasks
custom-workflows 🔄 Complex examples showing how to build multi-step workflows and pipelines
real-time-integration ⚡ Examples of plugins that handle real-time data streams and live updates
performance-optimization 🚀 Advanced examples demonstrating techniques for optimizing plugin performance

Using Examples

Install FiftyOne

If you haven't already, install FiftyOne:

pip install fiftyone

Running examples

To explore these examples, you can clone this repository and run them locally:

git clone https://github.com/voxel51/fiftyone-plugin-examples
cd fiftyone-plugin-examples

Each example directory contains:

  • A README.md with detailed instructions
  • Source code demonstrating the concept
  • Any necessary configuration files
  • Instructions for testing and running the example

Example management

You can use the CLI commands below to manage examples you've installed:

# List all plugins you've downloaded
fiftyone plugins list

# List the available operators and panels
fiftyone operators list

# Disable a particular plugin
fiftyone plugins disable <name>

# Enable a particular plugin
fiftyone plugins enable <name>

Local development

If you plan to develop plugins locally, you can clone the repository and symlink it into your FiftyOne plugins directory like so:

cd /path/to/fiftyone-plugin-examples
ln -s "$(pwd)" "$(fiftyone config plugins_dir)/fiftyone-plugin-examples"

Contributing to this repository 🙌

You're also welcome to contribute to the examples that live natively in this repository. Check out the contributions guide for instructions.

Join the Community

If you want join a fast-growing community of engineers, researchers, and practitioners who love computer vision, join the FiftyOne Discord community 🚀🚀🚀

💡 Pro tip: the #plugins channel is a great place to discuss plugin development!

About FiftyOne

If you've made it this far, we'd greatly appreciate if you'd take a moment to check out FiftyOne and give us a star!

FiftyOne is an open source library for building high-quality datasets and computer vision models. It's the engine that powers this project.

Thanks for visiting! 😊

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •