Wacom Ink Layer Language (WILL™) is a cross-platform digital ink technology. It is based on the needs of the end-user and Wacom's experience with different domains. WILL allows you to include premium digital inking features in your applications. It uses a modularized pipeline allowing each module to be configured, replaced, or omitted as required by the specific application, providing you with superior flexibility.
The newly introduced Universal Ink Model is a data model describing ink related data structures and meta-data concept to describe the semantic content of ink. You can also use the file encoding of the Universal Ink Model to exchange ink content between applications and cross-platform.
The Framework includes:
- Software libraries for multiple platforms (Windows, Android, iOS, Web)
- Code samples illustrating particular functionality
- A web-based Ink Designer to configure and test the pipeline
- Comprehensive documentation, including step-by-step guides
The following is an introduction to the Design Concepts for our WILL technology.
WILL 3 technology and its Universal Ink Model is platform and device agnostic, thus the specification does not focus on specific hardware platforms. There are existing formats used for storing digital ink and these are listed in the References. Ink Markup Language [InkML] and Ink Serialized Format [ISF] are the most well-known formats for storing digital ink besides Wacom Ink Layer Language [WILL]. The previous version of WILL did not support the storage of sensor data samples for digital ink (e.g., timestamps, (x,y)-coordinates, or pressure values). WILL 3 gives the ability to store ink sensor samples along with the visual representation of digital ink as well as semantic metadata. As a result it is now possible to make a loss-less conversion of the Universal Ink Data format to other existing formats.
Digital ink has to look natural and similar to real ink. To ensure that the visual appearance of the digital ink can be shared across platforms, WILL 3 contains all relevant data to present ink in a consistent way across all platforms. By using WILL particle ink rasterization, natural brushes can be configured to create artwork, as illustrated in Figure 1.
Figure 1: Artwork created with raster / particle ink.
Mobile apps, Cloud application, or Cloud services have become a part of modern IT infrastructures. Thus, modern data formats need to address issues including:
- Unique identifiable IDs for devices
- Streaming capability for partial updates of ink data
- Document size reduction
- Support for commonly used Web Standards such as JSON
Figure 2: Active Ink.
Meta Data and Semantics
There are three types of metadata:
Descriptive metadata are typically used for discovery and identification, as information used to search and locate an object such as title, author, subject, keyword, and publisher. WILL offers metadata for the description of Document and Author in the ink document.
Structural metadata give a description of how the components of an object are organized. The metadata for ink can be used to describe the structure of ink documents.
Finally, administrative metadata give information to help manage the source. They refer to the technical information including file type or when and how the file was created. Two sub-types of administrative metadata are rights management metadata and preservation metadata. Rights management metadata explain intellectual property rights, while preservation metadata contain information that is needed to preserve and save a resource.
Semantic metadata is slowly becoming the differentiator in the vocabulary of many vendors. Semantics is the study of meaning. As it applies to technology and unstructured content, it represents the ability to extract meaning from words, phrases, sentences, and larger units of text that provide the context within content, and is manually applied or automatically generated as semantic metadata to describe the object. Semantic metadata is typically leveraged to improve search, but any application that uses metadata can achieve significant benefits through the generation or application of semantic metadata. Thus, WILL metadata is based on established metadata for document and author descriptions and defines its own semantic metadata for ink.
Sensor Data and Biometrics
Another important objective in the design of the Universal Ink Model is to support the capture of sensor data from ink devices. For example, sensor data is used in the context of handwriting analysis, as well as signature capture and verification.
Some ink devices provide additional information (see Figure 3) that in most use cases is considered less important and may not be supported by all makes or types of devices. This includes:
- Pressure - the force applied to the nib of the pen
- Inclination - the angle between the pen barrel and vertical
- Orientation - the plain-direction of the pen from the nib
- Rotation - the rotation of the barrel during signing
Figure 3: Overview ink sensor channels.
The forensic character of the data is of paramount importance, and means that the data-collection philosophy differs in many respects from competing signature technologies. A key principle is that during the collection of the signature, the software stores the data exactly as it is supplied by the device. Each type of data (e.g. position, time, pressure, etc.) is collected with metric information which describes the units being used by the device, and this is stored with the raw point data to allow the conversion to true units when required. The advantage of this is that the accuracy of the information is determined by the device and cannot be compromised by the conversion process. In addition to the pen-data, contextual data is collected and stored with the signature. This includes:
- The name of the signatory
- The date and time at which the signature was given
- The reason for signing
- The make and type of digitizer being used
- The type and version of the digitizer driver being used
- The type and version of the operating system of the client PC being used
- The Network Interface Card address of the PC
The objective is to store sensor data and the characteristics of the ink device alongside the visual representation of the digital ink.
The WILL technology is designed to be a platform-independent inking engine, providing the most relevant capabilities:
- Ink Geometry Pipeline and Rendering - Converts sensor data from an input device into a geometry which is rendered by a platform-specific rendering engine
- Ink Serialization - Exchanges the rendering results, the collected sensor data, and relevant metadata; the Universal Ink Format is used to serialize and de-serialize the information
- Ink Manipulation - Manipulates the generated geometry; the ink manipulation operations will be able to scale, move, rotate, and erase ink strokes (including exact split)
The sections that follow provide a deeper explanation on the geometry and the rendering pipeline.
Ink Geometry pipeline
WILL 3 is a pipeline, consisting of a chain of processing blocks (processors, producers, etc.) (see Figure 4).
Figure 4: Rendering pipeline for WILL 3.
The ink geometry pipeline transforms pointer input data - from different input providers such as mouse, finger, or pen - to an ink geometry. The pipeline is comprised of different stages that can be configured according to the requirements for the produced ink. The common pipeline stages are:
- PathProducer - Creates a path from pointer input data
- Smoother - Smooths the path values
- SplineProducer - Converts the path into a Catmull-Rom spline
- SplineInterpolator - Discretizes the spline to create multiple sampled points along the ink path
There are several pipeline stages that are used only for vector brushes:
- BrushApplier - For each sample point along the ink path, the BrushAppplier creates a transform and then transforms the brush shape
- ConvexHullChainProducer - Computes the convex hull of each pair of successive brush samples
- PolygonMerger - Computes the union of the convex hulls; the result is a polygon with zero or more internal contours (holes)
- PolygonSimplifier - Simplifies the polygon by reducing the number of its vertices
A more detailed description is shared in the documentation on the pipeline.
Serialization module provides algorithms for encoding and decoding ink content.
These algorithms are optimized to work with the WILL stroke mathematical model (referred to as the "stroke model" within this documentation).
The algorithms support the following features:
- Fast encoding and decoding
- Developer choice between compact file size or JSON serialization
- Portability across operating systems and devices
- Binary representation that can be embedded in different container formats
A more detailed description is shared in the documentation on the serialization.
Manipulation module provides a set of algorithms that operate over the Universal Ink Model.
These algorithms can be used as building blocks to implement functions such as:
A more detailed description is shared in the documentation on the manipulation.
This Introduction has provided you with a brief introduction to the WILL technology and the Universal Ink Model. More detailed information is provided within the different parts of the documentation. Depending on your interest, the following table provides links to the relevant parts of the documentation to continue your journey:
|Ink Geometry Pipeline||Contains additional details on the algorithms and steps for the geometry pipeline and better describes the parameters used within the setup of the pipeline.|
|Samples||List of all the available samples, to enable developers to dive into the code directly.|
|Third-party licenses||Lists Third-party licenses per platform.|
|Universal Ink Model||Introduction to the data model for digital ink and its related meta-data. Each part of the Universal Ink Model contains detailed descriptions of input data, ink data, meta data, and semantics.|
|URI Scheme||Introduction of the encoding of semantic data Uniform Resource Identifier (URI) and pre-defined schemes, which must be used within applications in order to achieve interoperability.|
|Encoding||The Universal Ink Model is encoded in a binary data format based on Google protobuf. This page describes the data structure definition in further detail.|
|Sample Code Guides||Sample code snippets explained step-by-step: Ink Rendering, Ink Serialization, and Ink Manipulation|
|Ink Designer||A web app that illustrates the configuration options of the geometry pipeline and the rendering setup.|
[ InkML ] Ink Markup Language (InkML)
[ ISF ] Ink Serialized Format (ISF)
[ WILL ] Wacom Ink Layer Language (WILL), Version 1.