Desert Ant Labs

Shapes: reconhecimento de formas de traço único no dispositivo

Reconhecimento de formasDisponível

Reconhecimento de formas por traço único no dispositivo, que transforma um gesto feito à mão em um retângulo, elipse, triângulo, estrela ou linha limpos.

O Shapes recebe um único traço feito à mão, uma lista de pontos [x, y], e retorna geometria limpa: retângulo, elipse, triângulo, estrela ou linha. O modelo ajusta formas vetoriais precisas, encaixa em eixos, círculos, quadrados e rotações de 15 graus, e rejeita rabiscos que não são formas.

No Apple, ele adiciona ao PencilKit o encaixe de formas inteligente ao estilo do Notes com uma única chamada, mantendo o preview ao vivo. O próprio “Snap to Shape” da Apple é uma API privada que apps de terceiros não podem chamar, então o Shapes preenche essa lacuna. O modelo é pequeno o suficiente para ser distribuído dentro do app, sem download de modelo, e a versão web usa um pipeline WebAssembly local com inferência do LiteRT.js.

Demo

Desempenho

Menos de 10 ms por traço, a partir de um modelo de 0,2 MB, sem runtime de inferência na web.

0,2 MB
No dispositivo
<10 ms
Por reconhecimento
5
Classes de forma

Medições internas. Inferência em JS puro na web, Core ML no Apple.

Casos de uso

Formas inteligentes ao estilo do Notes

Adicione o encaixe de formas a um canvas do PencilKit com canvasView.enableShapeSnapping(). Preview ao vivo, desfazer e refazer preservados, preenchendo a lacuna deixada pela API privada Snap to Shape da Apple.

Ferramentas de diagrama e quadro branco

Transforme traços à mão livre em geometria precisa. Funciona com dados de traço do tldraw e do Excalidraw.

Desenho multiplataforma

O mesmo reconhecedor roda no iOS, no Android e na web, então um recurso de desenho se comporta de forma idêntica em todo lugar.

Sem download de modelo

Com cerca de 0,2 MB, ele é distribuído dentro do app. Diferente do Google ML Kit Digital Ink, não há um modelo de ~20 MB para baixar em tempo de execução.

O que ele faz

  • 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 chamada: canvasView.enableShapeSnapping().
  • Inferência web por meio de um pipeline WebAssembly local com LiteRT.js.

Plataformas e instalação

iOS, macOS
Instalação
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/shapes", from: "0.5.0")
Exemplo - Swift
import Shapes

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

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

const shapes = await Shapes.load();
const shape = await shapes.recognize(points);
// { kind: "ellipse", center: {...}, ... } or null
Adicione Shapes com seu assistente de programação com IA
Prompt
Add Shapes from Desert Ant Labs to this project.

Reconhecimento de formas por traço único no dispositivo, que transforma um gesto feito à mão em um retângulo, elipse, triângulo, estrela ou linha limpos.

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.

Especificações

Formas
Retângulo, elipse, triângulo, estrela, linha
Tamanho no dispositivo
0,2 MB (Core ML 4-bit no Apple)
Latência
<10 ms
Runtime web
WebAssembly + LiteRT.js

FAQ

O que é o Shapes?

Reconhecimento de formas por traço único no dispositivo, que transforma um gesto feito à mão em um retângulo, elipse, triângulo, estrela ou linha limpos.

O Shapes roda no dispositivo?

Sim. O Shapes roda inteiramente no dispositivo: a inferência acontece localmente, sem chamada a servidor, então os dados nunca saem do dispositivo.

Quais plataformas o Shapes suporta?

O Shapes é distribuído como SDKs nativos no dispositivo para Swift, Kotlin, JavaScript / TypeScript.

Quanto custa o Shapes?

Cada modelo é grátis para até 100 mil dispositivos ativos mensais por SDK. Inferência ilimitada por usuário. Fale conosco para licenças personalizadas.

Qual a precisão e a velocidade do Shapes?

Menos de 10 ms por traço, a partir de um modelo de 0,2 MB, sem runtime de inferência na web.

Recursos