Skip to main content

Click here to try the online Ink Designer

The Ink Designer is a web app that demonstrates 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.

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

After opening the pipeline configuration menu, there are several parameters to modify. Descriptions of all parameters follow in the tables, below.

Parameters

Overview

Figure 1: Ink Designer user interface for RASTER MODE.

Raster configuration

Brush

ParameterTypeDescription
shapeimage (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 blendbooleanEnables the maximum blending effect.
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.

Velocity

ParameterTypeDescription
min 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

Pipeline

ParameterTypeDescription
interpolateboolean
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

Overview

Figure 2: Ink Designer user interface for VECTOR MODE.

Shape

ParameterTypeDescription
shape modeenumSwitches between different pre-defined polygon.
shape polygonpoints[]List of points to describe a closed polygon.
spacingintegerSpecifies the spacing between two successive sample.

Velocity

ParameterTypeDescription
min 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

Pipeline

ParameterTypeDescription
interpolateboolean
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.