Desert Ant Labs

Shapes: riconoscimento di forme a tratto singolo on-device

Riconoscimento di formeDisponibile

Riconoscimento di forme a tratto singolo on-device che trasforma un gesto disegnato a mano in una forma pulita: rettangolo, ellisse, triangolo, stella o linea.

Shapes prende un tratto disegnato a mano, un elenco di punti [x, y], e restituisce una geometria pulita: rettangolo, ellisse, triangolo, stella o linea. Il modello adatta forme vettoriali precise, si aggancia ad assi, cerchi, quadrati e rotazioni di 15 gradi, e scarta gli scarabocchi che non sono forme.

Su Apple aggiunge a PencilKit l'aggancio alle forme intelligenti in stile Note con una sola chiamata, mantenendo intatta l'anteprima in tempo reale. La funzione «Snap to Shape» di Apple è un'API privata che le app di terze parti non possono richiamare, quindi Shapes colma questa lacuna. Il modello è abbastanza piccolo da essere incluso nell'app senza scaricare alcun modello, e la build web usa una pipeline WebAssembly locale con inferenza LiteRT.js.

Demo

Prestazioni

Meno di 10 ms per tratto, da un modello da 0,2 MB senza runtime di inferenza sul web.

0,2 MB
On-device
<10 ms
Per riconoscimento
5
Classi di forme

Misurazioni interne. Inferenza in puro JS sul web, Core ML su Apple.

Casi d'uso

Forme intelligenti in stile Note

Aggiungi l'aggancio alle forme a un canvas PencilKit con canvasView.enableShapeSnapping(). Anteprima in tempo reale, annulla e ripeti preservati, colmando la lacuna lasciata dall'API privata Snap to Shape di Apple.

Strumenti per diagrammi e lavagne

Trasforma i tratti a mano libera in geometrie precise. Funziona con i dati dei tratti di tldraw ed Excalidraw.

Disegno multipiattaforma

Lo stesso riconoscitore funziona su iOS, Android e il web, così una funzione di disegno si comporta in modo identico ovunque.

Nessun download del modello

Con circa 0,2 MB è incluso nell'app. A differenza di Google ML Kit Digital Ink, non c'è alcun modello da ~20 MB da scaricare a runtime.

Cosa fa

  • Riconosce rettangolo, ellisse, triangolo, stella e linea, e scarta ciò che non è una forma.
  • Si aggancia ad assi, cerchi, quadrati e rotazioni di 15 gradi.
  • Aggancio in tempo reale su PencilKit con una sola chiamata: canvasView.enableShapeSnapping().
  • Inferenza web tramite una pipeline WebAssembly locale con LiteRT.js.

Piattaforme e installazione

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

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

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

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Aggiungi Shapes con il tuo assistente di coding IA
Prompt
Add Shapes from Desert Ant Labs to this project.

Riconoscimento di forme a tratto singolo on-device che trasforma un gesto disegnato a mano in una forma pulita: rettangolo, ellisse, triangolo, stella o linea.

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.

Specifiche

Forme
Rettangolo, ellisse, triangolo, stella, linea
Dimensione on-device
0,2 MB (Core ML a 4 bit su Apple)
Latenza
<10 ms
Runtime web
WebAssembly + LiteRT.js

FAQ

Cos'è Shapes?

Riconoscimento di forme a tratto singolo on-device che trasforma un gesto disegnato a mano in una forma pulita: rettangolo, ellisse, triangolo, stella o linea.

Shapes funziona sul dispositivo?

Sì. Shapes funziona interamente sul dispositivo: l'inferenza avviene in locale senza alcuna chiamata a un server, quindi i dati non lasciano mai il dispositivo.

Quali piattaforme supporta Shapes?

Shapes è distribuito come SDK nativi on-device per Swift, Kotlin, JavaScript / TypeScript.

Quanto costa Shapes?

Ogni modello è gratuito fino a 100k dispositivi attivi mensili per SDK. Inferenza illimitata per utente. Contattaci per licenze personalizzate.

Quanto è preciso o veloce Shapes?

Meno di 10 ms per tratto, da un modello da 0,2 MB senza runtime di inferenza sul web.

Risorse