Desert Ant Labs

Shapes: 온디바이스 단일 스트로크 도형 인식

도형 인식사용 가능

손으로 그린 한 획을 깔끔한 사각형, 타원, 삼각형, 별, 선으로 바꾸는 온디바이스 단일 스트로크 도형 인식입니다.

Shapes는 손으로 그린 스트로크 하나, 즉 [x, y] 점들의 목록을 받아 깔끔한 도형을 돌려줍니다. 사각형, 타원, 삼각형, 별, 선입니다. 정밀한 벡터 도형으로 맞추고, 축과 원, 정사각형, 15도 회전에 스냅하며, 도형이 아닌 낙서는 거부합니다.

Apple에서는 호출 한 번으로 PencilKit에 메모 앱 스타일의 스마트 도형 스냅을 더하며, 라이브 미리보기는 그대로 유지됩니다. Apple의 “Snap to Shape”는 서드파티 앱이 호출할 수 없는 비공개 API이므로, Shapes가 그 공백을 채웁니다. 모델 다운로드 없이 앱 안에 넣을 만큼 작고, 웹 빌드는 ONNX나 WASM 런타임 없이 순수 JS 추론으로 실행됩니다.

데모

성능

웹에서 추론 런타임 없이, 0.2 MB 모델로 스트로크당 10 ms 이내.

0.2 MB
온디바이스
<10 ms
인식당
5
도형 종류

내부 측정. 웹에서는 순수 JS 추론, Apple에서는 Core ML.

활용 사례

메모 앱 스타일 스마트 도형

canvasView.enableShapeSnapping() 한 줄로 PencilKit 캔버스에 도형 스냅을 추가합니다. 라이브 미리보기와 실행 취소, 다시 실행이 유지되며, Apple의 비공개 Snap to Shape API가 남긴 공백을 채웁니다.

다이어그램과 화이트보드 도구

자유롭게 그린 스트로크를 정밀한 도형으로 정리합니다. tldraw, Excalidraw 스트로크 데이터와 함께 작동합니다.

크로스 플랫폼 드로잉

동일한 인식기가 iOS, Android, 웹에서 실행되므로, 드로잉 기능이 어디서나 똑같이 동작합니다.

모델 다운로드 없음

약 0.2 MB로 앱 안에 함께 제공됩니다. Google ML Kit Digital Ink와 달리 런타임에 내려받을 약 20 MB 모델이 없습니다.

기능 소개

  • 사각형, 타원, 삼각형, 별, 선을 인식하고, 도형이 아닌 것은 거부합니다.
  • 축, 원, 정사각형, 15도 회전에 스냅합니다.
  • 호출 한 번으로 PencilKit 라이브 스냅: canvasView.enableShapeSnapping().
  • 순수 JS 웹 추론: ONNX나 WASM 런타임 없음.

플랫폼 및 설치

SwiftiOS, macOS
설치
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/shapes-swift", from: "0.1.0")
예제
import Shapes

let shape = try ShapeRecognizer().recognize(points: stroke)
// Shape? -> rectangle, ellipse, triangle, star, line
KotlinAndroid
설치
// build.gradle.kts (via JitPack)
implementation("com.github.Desert-Ant-Labs:shapes-kotlin:0.1.0")
예제
import ai.desertant.shapes.Shapes

val shape = Shapes.recognize(points)
// Shape? -> rectangle, ellipse, triangle, star, line
JavaScript / TypeScriptWeb, Node.js
설치
npm i @desert-ant-labs/shapes
예제
import { recognize } from "@desert-ant-labs/shapes";

const shape = await recognize(points);
// { type: "ellipse", center: [120, 90], ... } or null

사양

도형
사각형, 타원, 삼각형, 별, 선
온디바이스 크기
0.2 MB (Apple은 4-bit Core ML)
지연 시간
<10 ms
웹 런타임
없음, 순수 JS 추론

자주 묻는 질문

Shapes은(는) 무엇인가요?

손으로 그린 한 획을 깔끔한 사각형, 타원, 삼각형, 별, 선으로 바꾸는 온디바이스 단일 스트로크 도형 인식입니다.

Shapes은(는) 온디바이스로 실행되나요?

네. Shapes은(는) 전적으로 기기에서 실행됩니다. 추론이 서버 호출 없이 로컬에서 이루어지므로 데이터가 기기를 벗어나지 않습니다.

Shapes은(는) 어떤 플랫폼을 지원하나요?

Shapes은(는) Swift, Kotlin, JavaScript / TypeScript용 네이티브 온디바이스 SDK로 제공됩니다.

Shapes의 비용은 얼마인가요?

모든 모델은 SDK당 월간 활성 기기 10만 대까지 무료입니다. 사용자당 추론은 무제한입니다. 맞춤 라이선스는 문의하기 바랍니다.

Shapes은(는) 얼마나 정확하고 빠른가요?

웹에서 추론 런타임 없이, 0.2 MB 모델로 스트로크당 10 ms 이내.

리소스