Desert Ant Labs

Shapes: Einstrich-Formerkennung auf dem Gerät

FormerkennungVerfügbar

Einstrich-Formerkennung auf dem Gerät, die eine einzige Handzeichnung in ein sauberes Rechteck, eine Ellipse, ein Dreieck, einen Stern oder eine Linie verwandelt.

Shapes nimmt einen handgezeichneten Strich, eine Liste von [x, y]-Punkten, und gibt saubere Geometrie zurück: Rechteck, Ellipse, Dreieck, Stern oder Linie. Das Modell passt präzise Vektorformen an, rastet an Achsen, Kreisen, Quadraten und 15-Grad-Drehungen ein und verwirft Gekritzel, das keine Form ist.

Auf Apple ergänzt es PencilKit mit einem einzigen Aufruf um Smart-Shape-Einrasten im Stil von Notizen, bei erhaltener Live-Vorschau. Apples eigenes „Snap to Shape“ ist eine private API, die Drittanbieter-Apps nicht aufrufen können, und Shapes schließt diese Lücke. Das Modell ist klein genug, um ohne Modell-Download in der App ausgeliefert zu werden, und der Web-Build nutzt eine lokale WebAssembly-Pipeline mit LiteRT.js-Inferenz.

Demo

Leistung

Unter 10 ms pro Strich, aus einem Modell von 0,2 MB, ohne Inferenz-Laufzeit im Web.

0,2 MB
Auf dem Gerät
<10 ms
Pro Erkennung
5
Formklassen

Interne Messungen. Inferenz in reinem JS im Web, Core ML auf Apple.

Anwendungsfälle

Smart Shapes im Stil von Notizen

Fügen Sie einer PencilKit-Zeichenfläche mit canvasView.enableShapeSnapping() Einrasten auf Formen hinzu. Live-Vorschau, Rückgängig und Wiederholen bleiben erhalten und schließen die Lücke, die Apples private Snap-to-Shape-API hinterlässt.

Diagramm- und Whiteboard-Tools

Bereinigen Sie Freihandstriche zu präziser Geometrie. Funktioniert mit Strichdaten von tldraw und Excalidraw.

Plattformübergreifendes Zeichnen

Derselbe Erkenner läuft auf iOS, Android und im Web, sodass sich eine Zeichenfunktion überall identisch verhält.

Kein Modell-Download

Mit etwa 0,2 MB wird es in der App ausgeliefert. Anders als bei Google ML Kit Digital Ink muss kein ~20 MB großes Modell zur Laufzeit geladen werden.

Was es macht

  • Erkennt Rechteck, Ellipse, Dreieck, Stern und Linie und verwirft Nicht-Formen.
  • Rastet an Achsen, Kreisen, Quadraten und 15-Grad-Drehungen ein.
  • PencilKit-Live-Einrasten über einen Aufruf: canvasView.enableShapeSnapping().
  • Web-Inferenz über eine lokale WebAssembly-Pipeline mit LiteRT.js.

Plattformen und Installation

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

let shapes = Shapes()
let shape = try await shapes.recognize(points: stroke)
// Shape? -> rectangle, ellipse, triangle, star, line
Beispiel - 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
Installation
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:0.5.0")
Beispiel - Kotlin
import ai.desertant.shapes.Shapes

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

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Shapes mit Ihrem KI-Coding-Assistenten hinzufügen
Prompt
Add Shapes from Desert Ant Labs to this project.

Einstrich-Formerkennung auf dem Gerät, die eine einzige Handzeichnung in ein sauberes Rechteck, eine Ellipse, ein Dreieck, einen Stern oder eine Linie verwandelt.

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.

Technische Daten

Formen
Rechteck, Ellipse, Dreieck, Stern, Linie
Größe auf dem Gerät
0,2 MB (4-Bit Core ML auf Apple)
Latenz
< 10 ms
Web-Laufzeit
WebAssembly + LiteRT.js

FAQ

Was ist Shapes?

Einstrich-Formerkennung auf dem Gerät, die eine einzige Handzeichnung in ein sauberes Rechteck, eine Ellipse, ein Dreieck, einen Stern oder eine Linie verwandelt.

Läuft Shapes auf dem Gerät?

Ja. Shapes läuft vollständig auf dem Gerät: Die Inferenz erfolgt lokal ohne Serveraufruf, sodass keine Daten das Gerät verlassen.

Welche Plattformen unterstützt Shapes?

Shapes wird als native On-Device-SDKs für Swift, Kotlin, JavaScript / TypeScript ausgeliefert.

Was kostet Shapes?

Jedes Modell ist für bis zu 100k monatlich aktive Geräte pro SDK kostenlos. Unbegrenzte Inferenz pro Nutzer. Kontaktieren Sie uns für individuelle Lizenzen.

Wie genau oder schnell ist Shapes?

Unter 10 ms pro Strich, aus einem Modell von 0,2 MB, ohne Inferenz-Laufzeit im Web.

Ressourcen