RegionKit RegionKit Open Editor →
Free · Offline · Shareable · No account required

Define regions
on any image.

The browser-based region-of-interest editor for computer vision workflows. Draw detection zones, annotate floor plans, define camera coverage areas — tag and classify each region with custom labels and metadata — then export coordinates without installing anything or creating an account.

editor.regionkit.app
11
Shape tools
Regions per scene
0
Account required
100%
Client-side

Built for region-of-interest workflows

Professional zone-drawing tools in a zero-install browser app. No cloud dependency, no lock-in, no account.

Flexible Region Drawing

Draw zones with rectangles, polygons, polylines, circles, ellipses, and keypoints. Every shape you need to mark a region precisely — click-to-place, no drag friction.

Layers, Tags & Classification

Tag each region with custom labels, categories, and free-text descriptions for downstream processing. Organise regions into named layers — detection zones, exclusion areas, floor sections — and toggle visibility per layer to manage complex scenes without clutter.

Shared Vertices

Link adjacent region boundaries so edits stay consistent. When two zones share a wall or edge, moving one vertex updates both — essential for floor plans and tight spatial layouts.

Measurement Tools

Built-in ruler, area, and angle tools for annotating spatial relationships — measure distances between zones, calculate floor section areas, verify camera angles on a plan.

Works Offline, No Install

Runs entirely in your browser — no server, no account, no data upload. Load an image, define your regions, and save locally even without an internet connection. When you need to manage scenes across devices, the optional Dashboard is there — but never required.

Export to JSON, PNG, COCO & YOLO

Export your scene as a flat PNG (image + all regions composited), native JSON (full fidelity with layers and metadata), COCO JSON, or YOLO TXT. Useful for documentation, feeding a CV pipeline with zone coordinates, or visualising an existing detector's configuration.

Publish & Share

Publish your annotated scene to a shareable URL with one click. Send a view-only link for review, or share an edit link so collaborators can publish their own changes. Sharing is always opt-in — RegionKit works fully offline without it.

Version History

Every publish saves a new versioned snapshot. Browse the full history of a scene, see which versions include an image, and restore any previous snapshot with a single click — your work is never lost.

Optional · Free with Google sign-in

All your scenes,
organized in one place

Sign in once to unlock the Dashboard — group scenes into projects, access them from any device, and keep your team's annotation work in sync without juggling JSON files. The standalone editor still runs offline, always.

  • Projects & scenes — Group related scenes into named projects — one per camera, site, or client.
  • Thumbnail previews — See what each scene looks like at a glance without opening it.
  • One-click open — Jump directly from the dashboard into the editor, fully loaded.
  • Version history — Every publish is stored. Browse and restore any previous snapshot.
  • No lock-in — The standalone editor still works offline. The dashboard is always opt-in.
Open Dashboard
dash.regionkit.app
RK
RegionKit
Projects/Camera Network A
Camera Network A
+ New Scene
Detection Zone

Entrance Zone

Updated May 31

Open →
Zone 1 Zone 2

Parking Areas

Updated May 30

Open →
Exclusion Zone

Loading Bay

Updated May 28

Open →
Alert Zone

Emergency Exit

Updated May 26

Open →

Designed for speed

Full keyboard shortcut coverage so your hands never leave the keyboard.

V Select
R Rectangle
P Polygon
L Polyline
C Circle
E Ellipse
A Arrow
T Text
Ctrl+Z Undo
Ctrl+D Duplicate
Ctrl+C/V Copy / Paste
F Fit to screen

Who uses RegionKit?

Anyone who needs to define spatial regions on images for a computer vision system.

For CV Engineers

Load a camera still frame, define detection zones, tripwires, and exclusion regions as named polygons, then export the coordinates for your pipeline. Iterate on zone geometry without redeploying code.

For Facility & Security Planners

Annotate floor plans with coverage areas, detection perimeters, and zone boundaries. Layers keep zone types separated — monitoring areas on one layer, exclusion zones on another — without losing spatial context.

For Researchers

Analyse spatial regions in images for occupancy studies, path analysis, or any experiment requiring structured region data. Draw, label, and export ROIs for quantitative spatial reasoning.

Draw your first region in seconds

No download. No sign-up. Load an image and start defining zones immediately.

Open RegionKit — it's free

Need to manage multiple scenes? Sign in to the Dashboard →

Self-hosting

Run RegionKit on your own infrastructure

Need to deploy RegionKit behind a firewall, on an air-gapped network, or as part of a larger CV platform? Get in touch — we're happy to help with self-hosted setups.

[email protected]
Developer API

Integrate with your CV pipeline

Publish a scene once — fetch zone coordinates from any script or service. Reading a published scene requires no authentication.

Base URL: api.regionkit.app

GET /api/scenes/{id}

Fetch the latest published scene — no auth required

GET /api/scenes/{id}?v=N

Fetch a specific version snapshot

GET /api/scenes/{id}/versions

List all published versions with timestamps

POST /api/scenes

Create a new scene — returns id and editToken

PUT /api/scenes/{id}

Update a scene (requires X-Edit-Token header)

Python — fetch zone polygons requests
import requests

SCENE_ID = "abc123xyz"  # from the share URL

scene = requests.get(
    f"https://api.regionkit.app/api/scenes/{SCENE_ID}"
).json()

for ann in scene["annotations"]:
    if not ann["visibility"]:
        continue
    label = ann.get("label", "unlabelled")
    kind  = ann["type"]   # "polygon", "rectangle", "circle" …
    data  = ann["data"]

    if kind == "polygon":
        pts    = data["points"]   # flat list [x0,y0, x1,y1, …]
        coords = list(zip(pts[::2], pts[1::2]))
        print(f"[{label}] polygon  {len(coords)} vertices")

    elif kind == "rectangle":
        print(f"[{label}] rect  x={data['x']}  y={data['y']}  "
              f"{data['width']}×{data['height']}px")

    elif kind == "circle":
        print(f"[{label}] circle  cx={data['x']}  cy={data['y']}  "
              f"r={data['radius']}px")

SceneJSON response format

The response body is a NativeExport object with annotations[], layers[], and controlPoints[]. Each annotation carries a type ("polygon", "rectangle", "circle", …), a data object with shape geometry in image pixels, and label / tags for downstream classification. You can also export directly to COCO JSON or YOLO TXT from the editor for pipeline formats that expect those.

Frequently asked questions

Common questions about defining regions of interest with RegionKit.

What is a region of interest (ROI)?
A region of interest is a specific area in an image your computer vision system should focus on — a detection zone, an exclusion area, a floor section, or a camera coverage boundary. RegionKit lets you draw these regions as polygons, rectangles, or any other shape and export the coordinates for use in your pipeline.
Can I annotate floor plans and camera zones?
Yes. Load any image — a floor plan, a camera still frame, a bird's-eye view, or a site diagram — and draw named, coloured regions. Use layers to separate zone types: detection areas on one layer, exclusion zones on another, alert perimeters on a third.
What export formats are supported?
PNG (flat image with all regions composited, useful for documentation and reports), native JSON (full scene with layers, styles, shared vertices, and all metadata), COCO JSON, and YOLO TXT. The native format is best suited to ROI and zone workflows. COCO and YOLO are included so you can also visualise or feed detection pipelines that expect those formats.
Does it work offline?
Yes. Once the page loads, all work happens locally in your browser. You can disconnect from the internet and continue working. Your scene is automatically saved to browser storage and restored on the next visit.
Is my image data sent to a server?
No. Images and region data are processed entirely in your browser using the Canvas API. Nothing is uploaded. Your floor plans and camera frames never leave your device.
Can I load a floor plan or camera still frame?
Yes. Any raster image works — JPEG, PNG, WebP, BMP. Drag and drop the file onto the canvas, use the file picker, paste from clipboard, or load from a URL.
What shape types are supported?
Rectangles, polygons, polylines, circles, ellipses, arrows, keypoints, and text annotations. Plus three measurement tools — distance ruler, area measurement, and angle measurement — for quantifying spatial relationships within a scene.
Is there a file size limit?
No server-side limit because nothing is uploaded. Performance depends on your browser and device. Floor plans and camera frames up to 20 megapixels work well on modern hardware.
Can I share my scene with others?
Yes. Click the Publish button to upload your scene and get a shareable URL. Anyone with the view link can see your annotations and background image — no account needed. For collaboration, share the edit link instead: anyone with it can publish their own changes to the same scene. Sharing is always opt-in; the editor works fully offline without it.
What is version history and can I restore a previous version?
Every time you publish, a new versioned snapshot is stored. Open the History panel (clock icon, next to the Publish button) to see all published versions with timestamps and an image indicator. Click any version to load it instantly — your canvas is replaced with that snapshot. This lets you compare region definitions over time or roll back an unwanted change.