Desert Ant Labs

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

Reconhecimento de formasDisponível

Reconhecimento de formas de traço único no dispositivo que transforma um gesto desenhado à mão num retângulo, elipse, triângulo, estrela ou linha perfeitos.

O Shapes recebe um único traço desenhado à mão, uma lista de pontos [x, y], e devolve 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.

Na Apple, adiciona ao PencilKit o encaixe inteligente em formas ao estilo da app Notas, com uma única chamada e a pré-visualização ao vivo intacta. O próprio «Snap to Shape» da Apple é uma API privada que as apps de terceiros não podem invocar, por isso o Shapes preenche essa lacuna. O modelo é suficientemente pequeno para ser incluído dentro da app sem descarregar qualquer modelo, e a versão web usa um pipeline WebAssembly local com inferência do LiteRT.js.

Demonstração

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 formas

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

Casos de uso

Formas inteligentes ao estilo da app Notas

Adicione o encaixe em formas a um canvas do PencilKit com canvasView.enableShapeSnapping(). Pré-visualização ao vivo, anular e refazer preservados, preenchendo a lacuna deixada pela API privada Snap to Shape da Apple.

Ferramentas de diagramas e quadros brancos

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

Desenho multiplataforma

O mesmo reconhecedor é executado em iOS, Android e na web, por isso uma funcionalidade de desenho comporta-se de forma idêntica em todo o lado.

Sem descarregar modelos

Com cerca de 0,2 MB, é incluído dentro da app. Ao contrário do Google ML Kit Digital Ink, não há qualquer modelo de ~20 MB para obter em tempo de execução.

O que faz

  • Reconhece retângulo, elipse, triângulo, estrela e linha, e rejeita o que não são formas.
  • Encaixa em eixos, círculos, quadrados e rotações de 15 graus.
  • Encaixe ao vivo no PencilKit com uma única chamada: canvasView.enableShapeSnapping().
  • Inferência web através 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 o seu assistente de programação com IA
Prompt
Add Shapes from Desert Ant Labs to this project.

Reconhecimento de formas de traço único no dispositivo que transforma um gesto desenhado à mão num retângulo, elipse, triângulo, estrela ou linha perfeitos.

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 de 4 bits na Apple)
Latência
<10 ms
Runtime web
WebAssembly + LiteRT.js

FAQ

O que é o Shapes?

Reconhecimento de formas de traço único no dispositivo que transforma um gesto desenhado à mão num retângulo, elipse, triângulo, estrela ou linha perfeitos.

O Shapes é executado no dispositivo?

Sim. O Shapes é executado inteiramente no dispositivo: a inferência acontece localmente, sem qualquer chamada a servidores, por isso os dados nunca saem do dispositivo.

Que plataformas o Shapes suporta?

O Shapes é disponibilizado como SDKs nativos, executados no dispositivo, para Swift, Kotlin, JavaScript / TypeScript.

Quanto custa o Shapes?

Todos os modelos são gratuitos para até 100k 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, sem runtime de inferência na web.

Recursos