CoolFace
Datasetpublic

finnbusse/handwriting-test-v2

handwriting-test-v2 This dataset contains handwriting stroke data collected using a stylus (S Pen) on a tablet device. Optimized for training RNNs (Recurrent Neural Networks) on handwriting generation/recognition tasks. Data Format Each row in the Parquet files represents a complete handwriting sample: Column Type Description id string Unique identifier (UUID) text string The prompt text that was written dx string (JSON array) Delta X offsets… See the full description on the dataset page: https://huggingface.co/datasets/finnbusse/handwriting-test-v2.

sourceHugging Facemitupdated 8mo agoView on Hugging Face
0likes32downloads
Dataset Card

handwriting-test-v2

This dataset contains handwriting stroke data collected using a stylus (S Pen) on a tablet device. Optimized for training RNNs (Recurrent Neural Networks) on handwriting generation/recognition tasks.

Dataset Description

  • Schema Version: 1.0.0
  • Format: Apache Parquet (columnar, compressed)
  • Language: German

Data Format

Each row in the Parquet files represents a complete handwriting sample:

ColumnTypeDescription
idstringUnique identifier (UUID)
textstringThe prompt text that was written
dxstring (JSON array)Delta X offsets between consecutive points
dystring (JSON array)Delta Y offsets between consecutive points
eosstring (JSON array)End-of-stroke flags (1 = pen lift, 0 = continue)
scaledoubleScale factor used for normalization
created_atstringISO timestamp of creation
session_idstringCollection session identifier

RNN Training Format

The stroke data is stored in the format commonly used for RNN handwriting models:

  • dx/dy: Position deltas from the previous point (first point has dx=dy=0)
  • eos: Binary flag indicating pen lifts (end of stroke)
  • Data is normalized by bounding box for consistent scale

Visualization

Preview SVGs are available in renders_preview/ for HuggingFace Dataset Viewer.

Usage

python
from datasets import load_dataset
import json

# For private repos, use: load_dataset("finnbusse/handwriting-test-v2", token="YOUR_HF_TOKEN")
dataset = load_dataset("finnbusse/handwriting-test-v2")

# Access a sample
sample = dataset['train'][0]

# Parse stroke data
dx = json.loads(sample['dx'])
dy = json.loads(sample['dy'])
eos = json.loads(sample['eos'])

# Reconstruct absolute positions
x, y = 0, 0
positions = []
for dx_i, dy_i, eos_i in zip(dx, dy, eos):
    x += dx_i
    y += dy_i
    positions.append((x, y, eos_i))

Collection Method

Data was collected using a web application with Pointer Events API, capturing stylus input including pressure and tilt when available.