Desert Ant Labs

Shapes: reconocimiento de formas de un solo trazo en el dispositivo

Reconocimiento de formasDisponible

Reconocimiento de formas de un solo trazo en el dispositivo que convierte un gesto dibujado a mano en un rectángulo, elipse, triángulo, estrella o línea limpios.

Shapes toma un trazo dibujado a mano, una lista de puntos [x, y], y devuelve geometría limpia: rectángulo, elipse, triángulo, estrella o línea. El modelo genera formas vectoriales precisas, se ajusta a ejes, círculos, cuadrados y rotaciones de 15 grados, y rechaza los garabatos que no son formas.

En Apple añade a PencilKit el ajuste inteligente de formas al estilo de Notas con una sola llamada, sin perder la vista previa en vivo. El propio «Snap to Shape» de Apple es una API privada que las apps de terceros no pueden invocar, así que Shapes cubre ese hueco. El modelo es lo bastante pequeño como para incluirse dentro de la app sin descargar el modelo, y la versión web usa una canalización local de WebAssembly con inferencia de LiteRT.js.

Demo

Rendimiento

Menos de 10 ms por trazo, desde un modelo de 0,2 MB sin entorno de ejecución de inferencia en la web.

0,2 MB
En el dispositivo
<10 ms
Por reconocimiento
5
Clases de formas

Mediciones internas. Inferencia en JS puro en la web, Core ML en Apple.

Casos de uso

Formas inteligentes al estilo de Notas

Añade el ajuste a formas a un lienzo de PencilKit con canvasView.enableShapeSnapping(). Se conservan la vista previa en vivo, deshacer y rehacer, y se cubre el hueco que deja la API privada Snap to Shape de Apple.

Herramientas de diagramas y pizarras

Convierte trazos a mano alzada en geometría precisa. Funciona con los datos de trazo de tldraw y Excalidraw.

Dibujo multiplataforma

El mismo reconocedor se ejecuta en iOS, Android y la web, así que una función de dibujo se comporta igual en todas partes.

Sin descarga de modelo

Con unos 0,2 MB, se incluye dentro de la app. A diferencia de Google ML Kit Digital Ink, no hay un modelo de ~20 MB que descargar en tiempo de ejecución.

Qué hace

  • Reconoce rectángulo, elipse, triángulo, estrella y línea, y rechaza lo que no es una forma.
  • Se ajusta a ejes, círculos, cuadrados y rotaciones de 15 grados.
  • Ajuste en vivo en PencilKit con una sola llamada: canvasView.enableShapeSnapping().
  • Inferencia web mediante una canalización local de WebAssembly con LiteRT.js.

Plataformas e instalación

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

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

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

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Añade Shapes con tu asistente de programación con IA
Prompt
Add Shapes from Desert Ant Labs to this project.

Reconocimiento de formas de un solo trazo en el dispositivo que convierte un gesto dibujado a mano en un rectángulo, elipse, triángulo, estrella o línea limpios.

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.

Especificaciones

Formas
Rectángulo, elipse, triángulo, estrella, línea
Tamaño en el dispositivo
0,2 MB (Core ML de 4 bits en Apple)
Latencia
<10 ms
Entorno de ejecución web
WebAssembly + LiteRT.js

Preguntas frecuentes

¿Qué es Shapes?

Reconocimiento de formas de un solo trazo en el dispositivo que convierte un gesto dibujado a mano en un rectángulo, elipse, triángulo, estrella o línea limpios.

¿Shapes se ejecuta en el dispositivo?

Sí. Shapes se ejecuta por completo en el dispositivo: la inferencia ocurre localmente sin ninguna llamada a servidor, así que los datos nunca salen del dispositivo.

¿Qué plataformas admite Shapes?

Shapes se distribuye como SDK nativos en el dispositivo para Swift, Kotlin, JavaScript / TypeScript.

¿Cuánto cuesta Shapes?

Todos los modelos son gratis hasta 100 000 dispositivos activos mensuales por SDK. Inferencia ilimitada por usuario. Contáctanos para licencias personalizadas.

¿Qué precisión o velocidad tiene Shapes?

Menos de 10 ms por trazo, desde un modelo de 0,2 MB sin entorno de ejecución de inferencia en la web.

Recursos