Shapes.
Reconnaissance de formes sur l'appareil qui transforme un trait à main levée en rectangle, ellipse, triangle, étoile ou ligne, en moins de 10 ms.
Démo
Croquis grossier. Forme parfaite.
Dessinez un cercle grossier et Shapes l'ajuste en un cercle net. Shapes reconstruit une géométrie vectorielle précise, l'aligne sur les axes, les cercles, les carrés et les rotations de 15 degrés, et rejette les gribouillis qui ne sont pas des formes.
Sur Apple, un seul appel ajoute à un canevas PencilKit l'alignement intelligent des formes façon Notes, et l'aperçu en direct reste. Le « Snap to Shape » d'Apple est une API privée que les applications tierces ne peuvent pas appeler : Shapes fait le même travail en une ligne.
Le modèle est assez petit pour être livré dans l'application, sans téléchargement. Dans le navigateur, Shapes passe par LiteRT.js.
Moins de 10 ms par trait.
Moins de 10 ms par trait, depuis un modèle de 0,2 MB sur Apple et 1,3 MB sur Android et le web.
Mesures internes. Core ML sur Apple, LiteRT.js dans le navigateur, bibliothèques natives précompilées sur Node.
Formes intelligentes façon Notes
Ajoutez l'alignement des formes à un canevas PencilKit avec canvasView.enableShapeSnapping(). Aperçu en direct, annulation et rétablissement préservés, comblant le manque laissé par l'API privée Snap to Shape d'Apple.
Mettre au propre un schéma à main levée
Transformez des tracés approximatifs en géométrie précise dans un outil de diagramme ou de tableau blanc. Compatible avec les données de tracé de tldraw et Excalidraw.
Dessin multiplateforme
Un seul moteur de reconnaissance couvre iOS, Android et le web : le code d'alignement, vous ne l'écrivez qu'une fois.
Livré dans l'app, pas téléchargé
Sur Apple, le reconnaisseur pèse 0,2 MB et est livré dans le binaire, et le package Android l'embarque par défaut. Dans le navigateur, le SDK récupère 1,3 MB une fois et le met en cache.
Inspiration
Des idées à construire avec Shapes. Copiez un prompt dans votre agent de code et lancez-vous.
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.
Ce que fait le modèle
- Un trait à la fois, passé sous forme de ses points
[x, y], depuis PencilKit, tldraw, Excalidraw ou votre propre canevas. - Reconnaît rectangle, ellipse, triangle, étoile et ligne, et rejette les non-formes.
- Ajuste aux axes, aux cercles, aux carrés et aux rotations de 15 degrés.
- Ajustement en direct dans PencilKit via un seul appel :
canvasView.enableShapeSnapping(). - Tourne via LiteRT.js dans le navigateur. Node utilise des bibliothèques natives précompilées.
Prise en main
Ajoutez reconnaissance de formes à votre application iOS or macOS, Android or web en quelques lignes de code. Docs 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: Shapes : reconnaissance de formes à trait unique sur l'appareil. 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: Shapes : reconnaissance de formes à trait unique sur l'appareil.
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: Shapes : reconnaissance de formes à trait unique sur l'appareil. 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.
Spécifications
- Classes de formes
- Rectangle, ellipse, triangle, étoile, ligne
- Taille sur l'appareil
- 0,2 MB Core ML (Apple) ; 1,3 MB LiteRT (Android, web)
- Vitesse
- <10 ms
- Runtime web
- LiteRT.js dans le navigateur, bibliothèques natives sur Node
Shapes lit un trait à la fois : une forme dessinée en deux gestes n'est pas reconnue. Les tracés très approximatifs ou ambigus sont rejetés volontairement, si bien qu'un gribouillis ne devient jamais un triangle.
Les schémas en plusieurs traits demandent d'abord votre propre étape de regroupement.
FAQ
Qu'est-ce que Shapes ?
Reconnaissance de formes sur l'appareil qui transforme un trait à main levée en rectangle, ellipse, triangle, étoile ou ligne, en moins de 10 ms.
Shapes fonctionne-t-il sur l'appareil ?
Oui. Shapes s'exécute sur l'appareil, sans appel serveur : les données restent chez l'utilisateur.
Quelles plateformes Shapes prend-il en charge ?
Shapes est livré sous forme de SDK natif sur l'appareil pour Swift, Kotlin, JavaScript / TypeScript.
Combien coûte Shapes ?
Chaque modèle est gratuit jusqu'à 100k appareils actifs mensuels par SDK. Inférence illimitée par utilisateur. Contactez-nous pour des licences sur mesure.
Quelle est la précision ou la vitesse de Shapes ?
Moins de 10 ms par trait, depuis un modèle de 0,2 MB sur Apple et 1,3 MB sur Android et le web.