Desert Ant Labs

Shapes: Formigenkänning med ett penndrag på enheten

FormigenkänningTillgänglig

Formigenkänning på enheten med ett penndrag som förvandlar ett handritat streck till en ren rektangel, ellips, triangel, stjärna eller linje.

Shapes tar ett handritat streck, en lista med [x, y]-punkter, och returnerar ren geometri: rektangel, ellips, triangel, stjärna eller linje. Modellen anpassar exakta vektorformer, fäster mot axlar, cirklar, kvadrater och 15-graders rotationer, och avvisar klotter som inte är former.

På Apple lägger den till smart formfästning i Notes-stil till PencilKit med ett enda anrop, med live-förhandsvisningen intakt. Apples egen ”Snap to Shape” är ett privat API som appar från tredje part inte kan anropa, så Shapes fyller den luckan. Modellen är liten nog att levereras inuti appen utan någon modellnedladdning, och webbygget använder en lokal WebAssembly-pipeline med LiteRT.js-inferens.

Demo

Prestanda

Under 10 ms per streck, från en modell på 0,2 MB utan någon inferenskörtid på webben.

0,2 MB
På enheten
<10 ms
Per igenkänning
5
Formklasser

Interna mätningar. Ren JS-inferens på webben, Core ML på Apple.

Användningsfall

Smarta former i Notes-stil

Lägg till formfästning på en PencilKit-canvas med canvasView.enableShapeSnapping(). Live-förhandsvisning, ångra och gör om bevaras, och fyller luckan som Apples privata Snap to Shape-API lämnar.

Diagram- och whiteboardverktyg

Rensa upp frihandsstreck till exakt geometri. Fungerar med streckdata från tldraw och Excalidraw.

Plattformsoberoende ritande

Samma igenkännare körs på iOS, Android och webben, så en ritfunktion beter sig likadant överallt.

Ingen modellnedladdning

På cirka 0,2 MB levereras den inuti appen. Till skillnad från Google ML Kit Digital Ink finns ingen ~20 MB-modell att hämta vid körning.

Vad den gör

  • Känner igen rektangel, ellips, triangel, stjärna och linje, och avvisar det som inte är former.
  • Fäster mot axlar, cirklar, kvadrater och 15-graders rotationer.
  • Live-fästning i PencilKit via ett anrop: canvasView.enableShapeSnapping().
  • Webbinferens via en lokal WebAssembly-pipeline med LiteRT.js.

Plattformar och installation

iOS, macOS
Installera
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/shapes", from: "0.5.0")
Exempel - Swift
import Shapes

let shapes = Shapes()
let shape = try await shapes.recognize(points: stroke)
// Shape? -> rectangle, ellipse, triangle, star, line
Exempel - PencilKit
import PencilKit
import Shapes

// Live smart-shape snapping on a PencilKit canvas, in one line.
// Pause after a stroke to preview the fit, lift to snap. Undo-safe,
// and it uses the same recognizer, bundled by default.
canvasView.enableShapeSnapping()
Android
Installera
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:0.5.0")
Exempel - Kotlin
import ai.desertant.shapes.Shapes

val shapes = Shapes(context)
val shape = shapes.recognize(points)
// Shape? -> rectangle, ellipse, triangle, star, line
Web, Node.js
Installera
npm i @desert-ant-labs/shapes @litertjs/core
Exempel - TypeScript
import { Shapes } from "@desert-ant-labs/shapes";

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Lägg till Shapes med din AI-kodningsassistent
Prompt
Add Shapes from Desert Ant Labs to this project.

Formigenkänning på enheten med ett penndrag som förvandlar ett handritat streck till en ren rektangel, ellips, triangel, stjärna eller linje.

SDKs (use the one that matches this project's platform):

Swift (iOS, macOS)
Repo: https://github.com/Desert-Ant-Labs/shapes
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/shapes", from: "0.5.0")

Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/shapes
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:0.5.0")

JavaScript / TypeScript (Web, Node.js)
Repo: https://github.com/Desert-Ant-Labs/shapes
npm i @desert-ant-labs/shapes @litertjs/core

Reference:
- Model page: https://desertant.com/models/shapes/
- Full catalog and other models: https://desertant.com/llms.txt

Add the SDK that matches this project's platform, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.

Specifikationer

Former
Rektangel, ellips, triangel, stjärna, linje
Storlek på enheten
0,2 MB (4-bitars Core ML på Apple)
Latens
<10 ms
Webbkörtid
WebAssembly + LiteRT.js

Vanliga frågor

Vad är Shapes?

Formigenkänning på enheten med ett penndrag som förvandlar ett handritat streck till en ren rektangel, ellips, triangel, stjärna eller linje.

Körs Shapes lokalt på enheten?

Ja. Shapes körs helt lokalt på enheten: inferensen sker lokalt utan något serveranrop, så data lämnar aldrig enheten.

Vilka plattformar stöder Shapes?

Shapes levereras som nativa on-device-SDK:er för Swift, Kotlin, JavaScript / TypeScript.

Vad kostar Shapes?

Varje modell är gratis för upp till 100k månadsaktiva enheter per SDK. Obegränsad inferens per användare. Kontakta oss för anpassade licenser.

Hur träffsäker eller snabb är Shapes?

Under 10 ms per streck, från en modell på 0,2 MB utan någon inferenskörtid på webben.

Resurser