---
title: PencilKit
framework: PencilKit
role: collection
role_heading: Framework
platforms: [iOS 13.0+, iPadOS 13.0+, Mac Catalyst 13.0+, macOS 10.15+, visionOS 1.0+]
path: pencilkit
---

# PencilKit

Capture touch and Apple Pencil input as a drawing, and display that content from your app.

## Overview

Overview PencilKit makes it easy to incorporate hand-drawn content into your iPadOS or macOS apps. PencilKit provides a drawing environment for your iOS app that receives input from Apple Pencil or the user’s finger, and turns it into images you display in iPadOS, iOS, or macOS. The environment comes with tools for creating, erasing, and selecting lines. You capture content in your iPad app using a PKCanvasView object that you integrate into your existing view hierarchy. It supports the low-latency capture of touches originating from Apple Pencil or your finger. The canvas object sends final results as a PKDrawing object, whose contents you can save with your app’s content. You can also convert the drawn content into an image for display in iOS or macOS app. For information about handling user interactions on Apple Pencil in your UIKit app, see Apple Pencil interactions.

## Topics

### Canvas

- [Drawing with PencilKit](pencilkit/drawing-with-pencilkit.md)
- [Customizing Scribble with Interactions](pencilkit/customizing-scribble-with-interactions.md)
- [Inspecting, Modifying, and Constructing PencilKit Drawings](pencilkit/inspecting-modifying-and-constructing-pencilkit-drawings.md)
- [Importing Bézier path data into PencilKit](pencilkit/importing-external-drawing-data-into-pencilkit.md)
- [Controlling stroke rendering for animation and editing](pencilkit/controlling-stroke-rendering-for-animation-and-editing.md)
- [PKCanvasView](pencilkit/pkcanvasview.md)
- [PKDrawing](pencilkit/pkdrawing-swift.struct.md)
- [PKStroke](pencilkit/pkstroke-swift.struct.md)
- [PKStrokePath](pencilkit/pkstrokepath-swift.struct.md)
- [PKStrokePoint](pencilkit/pkstrokepoint-swift.struct.md)
- [PKInk](pencilkit/pkink-swift.struct.md)

### Handwriting recognition

- [Building a handwriting recognition experience with PencilKit](pencilkit/building-a-handwriting-recognition-experience-with-pencilkit.md)
- [Recognizing handwriting and converting it to text](pencilkit/recognizing-handwriting-and-converting-to-text.md)
- [PKStrokeRecognizer](pencilkit/pkstrokerecognizer.md)

### Tools

- [Configuring the PencilKit tool picker](pencilkit/configuring-the-pencilkit-tool-picker.md)
- [PKToolPicker](pencilkit/pktoolpicker.md)
- [PKInkingTool](pencilkit/pkinkingtool-swift.struct.md)
- [PKEraserTool](pencilkit/pkerasertool-swift.struct.md)
- [PKLassoTool](pencilkit/pklassotool-swift.struct.md)
- [PKTool](pencilkit/pktool-swift.protocol.md)

### Backward compatibility

- [Supporting backward compatibility for ink types](pencilkit/supporting-backward-compatibility-for-ink-types.md)
- [PKContentVersion](pencilkit/pkcontentversion.md)
