Stippling of 2D Scalar Fields - Simon Hagendorfer & Michelle Kornherr

View Live Demo on GitLab Pages

Source Code

The full source code is available on our GitLab repository: https://gitlab.tuwien.ac.at/e193-02-visvu-students/visvu-2025-goertler-2019-hagendorfer-kornherr

Project Goal and Visualization Technique

This project implements a stippling-based visualization technique for 2D scalar fields, following the paper Stippling of 2D Scalar Fields by Görtler et al. Scalar values are encoded through stipple density, optionally combined with stipple size variation and contour-enhancing techniques.

Algorithm Summary

The core of the project is a generalized Linde–Buzo–Gray (LBG) stippling algorithm for raster-based 2D scalar data. Stipples are redistributed iteratively to match the scalar field density.

Technologies

Installation and Setup

Requirements:

Install and Run:

npm install
npm run dev
    

User Guide

The application provides an interactive interface for image-based stippling. Users can select the input mode:

For random images and color gradients, the image resolution (width and height) can be specified.

Controls are divided into live (non-expensive) settings and expensive (algorithm) settings.

Live (Non-Expensive) Visual Settings

Expensive Algorithm Settings (Require Re-run)

A dedicated “Re-run Algorithm” button recomputes the stippling for the same input image, enabling comparison between parameter configurations.

Gallery

The following examples demonstrate different stippling modes and enhancements implemented in our system.

Basic stippling without enhancements
Basic Stippling
Uniform stippling without contour enhancement or restrictions.
Stippling with contours
Simple Contours
Pixel weights are binned, leading to stronger stipple grouping. Edges are however not visually enforced.
Mach-banding contour enhancement
Machbanding Contours
Pixel weights are binned, leading to stronger stipple grouping. Edges are here additionally highlighted by giving stipples an incentive to move towards them.
Restricted stippling at boundaries
Restricted Stippling
Pixel weights are binned, leading to stronger stipple grouping. Edges are here additionally highlighted by restricting pixels to land on them.
Different stipple shapes
Custom Stipple Shapes
Stipple shapes can be custom picked.

References

Görtler, J., Spicker, M., Schulz, C., Weiskopf, D., & Deussen, O. (2019).
Stippling of 2D Scalar Fields. IEEE Transactions on Visualization and Computer Graphics, 25(6), 2193–2204.
https://doi.org/10.1109/TVCG.2019.2903945