Desert Ant Labs

Shapes.

Reconocimiento de formasDisponible

Reconocimiento de formas en el dispositivo que convierte un trazo a mano en rectángulo, elipse, triángulo, estrella o línea en menos de 10 ms.

Demo

Trazo a mano. Forma perfecta.

Dibuja un círculo aproximado y Shapes lo ajusta a uno limpio. Shapes crea geometría vectorial precisa, ajusta a ejes, círculos, cuadrados y rotaciones de 15 grados, y rechaza los garabatos que no son formas.

En Apple, una sola llamada añade a un lienzo de PencilKit el ajuste inteligente de formas al estilo de Notas, y la vista previa en vivo se mantiene. El «Snap to Shape» de Apple es una API privada que las apps de terceros no pueden invocar, así que Shapes hace el mismo trabajo en una línea.

El modelo es lo bastante pequeño como para ir dentro de la app, sin descarga. En el navegador, Shapes se ejecuta con LiteRT.js.

Menos de 10 ms por trazo.

Menos de 10 ms por trazo, desde un modelo de 0,2 MB en Apple y de 1,3 MB en Android y web.

0,2 MB
En el dispositivo
<10 ms
Por reconocimiento
en el dispositivo
5
Clases de formas
rectángulo, elipse, triángulo, estrella, línea
1,3 MB
En el navegador
se descarga una vez y se guarda en caché

Mediciones internas. Core ML en Apple, LiteRT.js en el navegador y bibliotecas nativas precompiladas en Node.

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.

Pasa a limpio un diagrama a mano alzada

Convierte los trazos toscos en geometría precisa dentro de una herramienta de diagramas o de pizarra. Funciona con los datos de trazo de tldraw y Excalidraw.

Dibujo multiplataforma

Un único reconocedor cubre iOS, Android y la web, así que el código de ajuste lo escribes una vez.

Va dentro de la app, no como descarga

En Apple el reconocedor ocupa 0,2 MB y se incluye dentro del binario, y el paquete de Android lo integra por defecto. En el navegador el SDK descarga 1,3 MB una vez y los guarda en caché.

Inspiración

Ideas para crear con Shapes. Copia un prompt en tu agente de código y adelante.

Shapes

Build a whiteboard that snaps rough sketches into clean shapes.

Shapes

Clean up a freehand diagram into crisp shapes.

Shapes

Add shape recognition to a web canvas with no download.

Shapes

Snap flowchart boxes and connector lines as you sketch them.

Shapes

Add smart-shape drawing to a kids' learning app.

Shapes

Recognize gesture shapes to trigger app actions.

Qué hace el modelo

  • Un trazo cada vez, pasado como sus puntos [x, y], desde PencilKit, tldraw, Excalidraw o tu propio lienzo.
  • Reconoce rectángulo, elipse, triángulo, estrella y línea, y rechaza lo que no es una forma.
  • Ajusta a ejes, círculos, cuadrados y rotaciones de 15 grados.
  • Ajuste en vivo en PencilKit con una sola llamada: canvasView.enableShapeSnapping().
  • Se ejecuta con LiteRT.js en el navegador. Node usa bibliotecas nativas precompiladas.

Primeros pasos

Añade reconocimiento de formas a tu app de iOS or macOS, Android or web con unas pocas líneas de código. Docs de Shapes.

iOS, macOS
Instalación
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "3.1.0")
// target dependency
.product(name: "Shapes", package: "desert-ant-core")
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()
Crea con un prompt
Add Shapes from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: reconocimiento de formas de un solo trazo en el dispositivo.

SDK:

Swift (iOS, macOS)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "3.1.0")
// target dependency
.product(name: "Shapes", package: "desert-ant-core")

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

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Android
Instalación
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:3.1.0")
Ejemplo - Kotlin
import ai.desertant.shapes.Shapes

val shapes = Shapes(context)
val shape = shapes.recognize(points)
// Shape? -> rectangle, ellipse, triangle, star, line
Crea con un prompt
Add Shapes from Desert Ant Labs to this Kotlin project (Android).

What it does: reconocimiento de formas de un solo trazo en el dispositivo.

SDK:

Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:3.1.0")

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

Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Web, Node.js
Instalación
npm i @desert-ant-labs/shapes @litertjs/core
Ejemplo - TypeScript
import { Shapes } from "@desert-ant-labs/shapes";       // browser
// import { Shapes } from "@desert-ant-labs/shapes/native"; // server-side Node

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Crea con un prompt
Add Shapes from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js).

What it does: reconocimiento de formas de un solo trazo en el dispositivo.

SDK:

JavaScript / TypeScript (Web, Node.js)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
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, 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

Clases de formas
Rectángulo, elipse, triángulo, estrella, línea
Tamaño en el dispositivo
0,2 MB Core ML (Apple); 1,3 MB LiteRT (Android, web)
Velocidad
<10 ms
Entorno de ejecución web
LiteRT.js en el navegador, bibliotecas nativas en Node

Shapes lee un trazo cada vez, así que una forma dibujada con dos gestos no se reconoce. Los trazos muy toscos o ambiguos se rechazan a propósito, de manera que un garabato nunca acaba encajando en un triángulo.

Los diagramas de varios trazos necesitan antes tu propio paso de agrupación.

Preguntas frecuentes

¿Qué es Shapes?

Reconocimiento de formas en el dispositivo que convierte un trazo a mano en rectángulo, elipse, triángulo, estrella o línea en menos de 10 ms.

¿Shapes se ejecuta en el dispositivo?

Sí. Shapes se ejecuta en el dispositivo, sin llamadas a servidor, así que los datos se quedan con el usuario.

¿Qué plataformas admite Shapes?

Shapes se distribuye como un SDK nativo 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 en Apple y de 1,3 MB en Android y web.

Recursos