KISSColor: Kinetic and Intuitive Stroke Stretching for Vector Drawing Colorization
Yiming Dong, Hongxu Xin, Zhiyang Dou, Rui Xu, Yuan Liu, Shuangmin Chen, Shiqing Xin, Changhe Tu, Taku Komura, Wenping Wang
Published in ACM Transactions on Graphics (TOG), Vol. 44, No. 6, Article 224 (December 2025)
DOI: 10.1145/3763307
KISSColor is the official Qt/C++ implementation accompanying our ACM TOG 2025 paper.
It introduces an intuitive and kinetic approach for vector sketch colorization, capable of recovering closed, visually meaningful regions from imperfect hand‑drawn strokes.
✨ Key Features
- Kinetic Stroke Stretching — simultaneous growth of open strokes via a kinetic data structure
- Winding‑Number Field Guidance — forms geometrically consistent closures
- Redundant Region Suppression — minimizes fragmentation in dense sketches
- Works with real vector art — robust to gaps and noisy intersections
This project is easiest to build on Windows using MSVC, Ninja, vcpkg, and Qt 5.
- Visual Studio 2022 (Desktop development with C++)
- CMake ≥ 3.25 (if using presets)
- Ninja (install via VS / winget / chocolatey)
- vcpkg (e.g.
E:\code\vcpkg) - Qt 5 (MSVC 64-bit) (e.g.
D:\Qt\5.12.12\msvc2017_64)
vcpkg install libxml2 cgal opencv4 tinyspline --triplet x64-windowsPresets read these environment variables:
| Variable | Meaning |
|---|---|
VCPKG_ROOT |
vcpkg root folder |
QT_ROOT |
Qt root used as CMAKE_PREFIX_PATH |
$env:VCPKG_ROOT = "E:/code/vcpkg"
$env:QT_ROOT = "D:/Qt/5.12.12/msvc2017_64"
cmake --preset ninja-release
cmake --build --preset release➡️ Output: cmake-build-release/bin/KISSColor.exe
Debug mode:
cmake --preset ninja-debug
cmake --build --preset debugcmd /c ""C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 && cd /d E:\code\SKCircle\SketchPainter && cmake -S . -B cmake-build-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=E:/code/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_PREFIX_PATH=D:/Qt/5.12.12/msvc2017_64 && cmake --build cmake-build-release --target KISSColor --parallel 8"If you launch the .exe directly, ensure Qt/vcpkg DLLs are discoverable in your PATH.
Release example:
cmd /c "set PATH=E:\code\vcpkg\installed\x64-windows\bin;D:\Qt\5.12.12\msvc2017_64\bin;%PATH% && cd /d E:\code\SKCircle\SketchPainter\cmake-build-release\bin && KISSColor.exe"Debug example:
cmd /c "set PATH=E:\code\vcpkg\installed\x64-windows\bin;D:\Qt\5.12.12\msvc2017_64\bin;%PATH% && cd /d E:\code\SKCircle\SketchPainter\cmake-build-debug\bin && KISSColor.exe"Example input sketches are provided in the repository under data/.
If you use this work or reference the method in research, please cite:
@article{Dong2025KISSColor,
author = {Yiming Dong and Hongxu Xin and Zhiyang Dou and Rui Xu and Yuan Liu and Shuangmin Chen and Shiqing Xin and Changhe Tu and Taku Komura and Wenping Wang},
title = {KISSColor: Kinetic and Intuitive Stroke Stretching for Vector Drawing Colorization},
journal = {ACM Transactions on Graphics (TOG)},
volume = {44},
number = {6},
pages = {224:1--224:13},
year = {2025},
month = dec,
doi = {10.1145/3763307},
publisher = {ACM},
note = {Official implementation: https://github.com/yourusername/KISSColor}
}© 2025 KISSColor Authors.
Code is released under the MIT License.
Paper under CC BY 4.0 (ACM Open Access).
Third‑party components: Qt, CGAL, OpenCV, tinyspline, NanoSVG.
See THIRD_PARTY_NOTICES.md for license details.
Developed jointly by:
- Shandong University, China
- The University of Hong Kong, Hong Kong SAR
- HKUST, Hong Kong SAR
- Qingdao University of Science and Technology, China
- Texas A&M University, USA
