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. 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. È abbastanza piccolo da essere incluso nell'app senza scaricare alcun modello, e la build web esegue l'inferenza in puro JS senza runtime ONNX o WASM.

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 in puro JS: nessun runtime ONNX o WASM.

Piattaforme e installazione

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

let shape = try ShapeRecognizer().recognize(points: stroke)
// Shape? -> rectangle, ellipse, triangle, star, line
KotlinAndroid
Installazione
// build.gradle.kts (via JitPack)
implementation("com.github.Desert-Ant-Labs:shapes-kotlin:0.1.0")
Esempio
import ai.desertant.shapes.Shapes

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

const shape = await recognize(points);
// { type: "ellipse", center: [120, 90], ... } or null

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
Nessuno; inferenza in puro 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