Skip to main content
Important note

This is documentation for WILL SDK for ink WILL2, which is no longer actively maintained. For up-to-date documentation, see the latest version (WILL3).

Click here to try the online Ink Designer

The Ink Designer is a web app which illustrates the rendering capabilities of the WILL technology. The raster vs. vector rendering, can be configured and tested.

Please note that the Ink Designer uses WebGL which is not fully supported in all versions of Edge

The web app (see Figure 1) consists of a simple ink canvas with three predefined background images. There are two tools available, an eraser and an inking tool.

Overview

Figure 1: Ink Designer user interface.

The Ink Designer uses the current configuration which can be changed in the configuration menu on the upper right.

After opening the pipeline configuration menu there are several parameters to modify, divided between Raster and Vector mode.

Raster mode

Figure 2: Ink Designer Raster mode configuration.

Vector mode

Figure 3: Ink Designer Vector mode configuration.

You can find the description of the parameters in the following sections.

Parameters

Raster configuration

CategoryParameterTypeDescription
Brushshapeimage (PNG)*The shape parameter specifies the shape of the particle. It accepts an image in which the non-transparent pixels define the particle shape. You can also pass a sequence of images to this parameter. In this case, the method interprets them as mipmaps.
fillimage (PNG)The fill parameter specifies the fill pattern of the shape. It accepts an image from which the pattern is sampled. You can also pass a sequence of images in this parameter. In this case, the method interprets them as mipmaps.
rotationenumThe rotation parameter specifies the rotation of the particle. It accepts three possible values: none indicates that the shape will not be rotated. random indicates that the shape will be rotated randomly before it renders. trajectory indicates that the shape will be rotated to match the path trajectory.
max blendboolean
scatteringfloatThe scattering parameter specifies the maximum offset in a direction that is perpendicular to the path trajectory in which the particle is positioned. The actual position of the particle is randomly determined within the interval defined by this parameter.
spacingfloatThe spacing parameter specifies the distance between different particles along the path trajectory.
Velocitymin velocityintegerVelocity is clamped to this value if velocity is below the value.
max velocityintegerVelocity is clamped to this value if velocity is above the value.
min widthintegerMin width value
max widthintegerMax width value
start widthbooleanUsing start value.
end widthbooleanUsing end value.
start width sizeintegerStart width value. The initial value is returned as a result of the function when p1 is null (beginning of stroke).
end width sizeintegerEnd width value. The final value is returned as a result of the function when p3 is null (end of stroke).
min alphafloat
max alphafloat
start alpha sizefloat
end alpha sizefloat
Pipelineinterpolateboolean
split countintegerDetermines the number of iterations for the discretization.
moving average sizeintegerThe default value of moving average window size is 15, which is tuned for hand writing data (sequence of xy positions) at 60Hz. If the input is for example 120Hz, set movingAverageWindowSize to 30.
epsilonfloatThreshold value that determines the level of simplification. Greater values result into polygons with less segments.

Vector configuration

CategoryParameterTypeDescription
Shapeshape modeenumSwitches between different pre-defined polygon.
shape polygonpoints[]List of points to describe a closed polygon.
spacingintegerSpecifies the spacing between two successive sample.
Velocitymin velocityintegerVelocity is clamped to this value if velocity is below the value.
max velocityintegerVelocity is clamped to this value if velocity is above the value.
min widthintegerMin width value
max widthintegerMax width value
start widthbooleanUsing start value.
end widthbooleanUsing end value.
start width sizeintegerStart width value. The initial value is returned as a result of the function when p1 is null (beginning of stroke).
end width sizeintegerEnd width value. The final value is returned as a result of the function when p3 is null (end of stroke).
alphafloat
Pipelineinterpolateboolean
split countintegerDetermines the number of iterations for the discretization.
moving average sizeintegerThe default value of moving average window size is 15, which is tuned for hand writing data (sequence of xy positions) at 60Hz. If the input is for example 120Hz, set movingAverageWindowSize to 30.
epsilonfloatThreshold value that determines the level of simplification. Greater values result into polygons with less segments.