Shapes.
Reconhecimento de formas no dispositivo que torna um traço à mão em retângulo, elipse, triângulo, estrela ou linha em 10 ms.
Demonstração
Esboço tosco. Forma perfeita.
Desenhe um círculo torto e o Shapes o encaixa num círculo perfeito. O Shapes ajusta geometria vetorial precisa, encaixa em eixos, círculos, quadrados e rotações de 15 graus, e rejeita rabiscos que não são formas.
Na Apple, uma única chamada adiciona a um canvas do PencilKit o encaixe inteligente em formas ao estilo da app Notas, e a pré-visualização em tempo real mantém-se. O próprio «Snap to Shape» da Apple é uma API privada que as apps de terceiros não podem invocar, por isso o Shapes faz o mesmo trabalho numa linha.
O modelo é suficientemente pequeno para seguir dentro da app, sem qualquer transferência. No navegador, o Shapes corre através do LiteRT.js.
Menos de 10 ms por traço.
Menos de 10 ms por traço, a partir de um modelo de 0,2 MB em dispositivos Apple e 1,3 MB no Android e na web.
Medições internas. Core ML na Apple, LiteRT.js no navegador, bibliotecas nativas pré-compiladas no Node.
Formas inteligentes ao estilo da app Notas
Adicione o encaixe em formas a um canvas do PencilKit com canvasView.enableShapeSnapping(). Pré-visualização em tempo real, anular e refazer preservados, preenchendo a lacuna deixada pela API privada Snap to Shape da Apple.
Passe a limpo um diagrama à mão livre
Transforme traços aproximados em geometria precisa dentro de uma ferramenta de diagramas ou de quadro branco. Funciona com os dados de traços do tldraw e do Excalidraw.
Desenho multiplataforma
Um único reconhecedor cobre iOS, Android e a web, por isso só escreve o código de encaixe uma vez.
Segue dentro da app, não como transferência
Em dispositivos Apple, o reconhecedor tem 0,2 MB e vai dentro do binário, e o pacote Android embute-o por predefinição. No navegador, o SDK transfere 1,3 MB uma única vez e guarda em cache.
Inspiração
Ideias para construir com o Shapes. Copie um prompt para o seu agente de código e comece.
Build a whiteboard that snaps rough sketches into clean shapes.
Build a drawing canvas where a freehand stroke is passed to Desert Ant's Shapes on-device and snapped to a clean rectangle, ellipse, triangle, star, or line in under 10ms. Keep the ink as an undo. Works offline. Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Clean up a freehand diagram into crisp shapes.
In a diagramming tool, run Desert Ant's Shapes on each stroke to convert rough sketches into clean geometry as the user draws. Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Add shape recognition to a web canvas with no download.
Add Desert Ant's Shapes to a browser drawing app (WebAssembly), so a hand-drawn stroke snaps to a clean shape with nothing to download and no server. Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Snap flowchart boxes and connector lines as you sketch them.
In a diagram or flowchart tool, run Desert Ant's Shapes on each stroke so hand-drawn boxes and connector lines snap to clean geometry live. (Add your own arrowheads on a recognized line.) Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Add smart-shape drawing to a kids' learning app.
Use Desert Ant's Shapes on-device so a child's rough drawing of a circle or triangle snaps to a clean shape, teaching by doing. Works offline. Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
Recognize gesture shapes to trigger app actions.
Use Desert Ant's Shapes to turn a drawn gesture (a circle, a triangle) into an app action, recognized on-device in under 10ms. Build it with the Desert Ant SDK. Shapes (Swift, Kotlin, JavaScript / TypeScript). Install and API: https://desertant.com/docs/shapes/. Install: SwiftPM desert-ant-core; Maven ai.desertant:shapes:3.1.0; npm i @desert-ant-labs/shapes @litertjs/core. SDK source: https://github.com/Desert-Ant-Labs/desert-ant-core. Machine-readable catalog of every model and SDK: https://desertant.com/llms.txt.
O que o modelo faz
- Um traço por vez, passado como seus pontos
[x, y], do PencilKit, tldraw, Excalidraw ou do seu próprio canvas. - Reconhece retângulo, elipse, triângulo, estrela e linha, e rejeita o que não é forma.
- Encaixa em eixos, círculos, quadrados e rotações de 15 graus.
- Encaixe ao vivo no PencilKit com uma única chamada:
canvasView.enableShapeSnapping(). - Roda via LiteRT.js no navegador. No Node, usa bibliotecas nativas pré-compiladas.
Primeiros passos
Adicione reconhecimento de formas ao seu app iOS or macOS, Android or web em poucas linhas de código. Docs do Shapes.
// 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")
import Shapes
let shapes = Shapes()
let shape = try await shapes.recognize(points: stroke)
// Shape? -> rectangle, ellipse, triangle, star, line
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()
Add Shapes from Desert Ant Labs to this Swift project (iOS, macOS). What it does: reconhecimento de formas de traço único no 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.
// build.gradle.kts (Maven Central)
implementation("ai.desertant:shapes:3.1.0")
import ai.desertant.shapes.Shapes
val shapes = Shapes(context)
val shape = shapes.recognize(points)
// Shape? -> rectangle, ellipse, triangle, star, line
Add Shapes from Desert Ant Labs to this Kotlin project (Android).
What it does: reconhecimento de formas de traço único no 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.
npm i @desert-ant-labs/shapes @litertjs/core
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
Add Shapes from Desert Ant Labs to this JavaScript / TypeScript project (Web, Node.js). What it does: reconhecimento de formas de traço único no 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.
Especificações
- Classes de forma
- Retângulo, elipse, triângulo, estrela, linha
- Tamanho no dispositivo
- 0,2 MB Core ML (Apple); 1,3 MB LiteRT (Android, web)
- Velocidade
- <10 ms
- Runtime web
- LiteRT.js no navegador, bibliotecas nativas no Node
O Shapes lê um traço de cada vez, por isso uma forma desenhada em dois traços não é reconhecida. Os traços muito toscos ou ambíguos são rejeitados de propósito, para que um rabisco nunca se transforme num triângulo.
Os diagramas de vários traços precisam antes de um passo de agrupamento seu.
FAQ
O que é o Shapes?
Reconhecimento de formas no dispositivo que torna um traço à mão em retângulo, elipse, triângulo, estrela ou linha em 10 ms.
O Shapes é executado no dispositivo?
Sim. O Shapes é executado no dispositivo, sem qualquer chamada a servidores, por isso os dados ficam com o utilizador.
Que plataformas suporta o Shapes?
O Shapes é distribuído como um SDK nativo no dispositivo para Swift, Kotlin, JavaScript / TypeScript.
Quanto custa o Shapes?
Cada modelo é gratuito para até 100 mil dispositivos ativos mensais por SDK. Inferência ilimitada por utilizador. Contacte-nos para licenças personalizadas.
Qual é a precisão ou a rapidez do Shapes?
Menos de 10 ms por traço, a partir de um modelo de 0,2 MB em dispositivos Apple e 1,3 MB no Android e na web.