Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎨 KISSColor

Paper License: MIT Qt CGAL Made with C++17

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


🖼 Overview

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.

KISSColor example result

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

⚙️ Setup (Windows / MSVC + Ninja + vcpkg + Qt5)

This project is easiest to build on Windows using MSVC, Ninja, vcpkg, and Qt 5.

0️⃣ Install tools

  • 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)

1️⃣ Install dependencies via vcpkg

vcpkg install libxml2 cgal opencv4 tinyspline --triplet x64-windows

2️⃣ Configure + build (recommended: CMake presets in PowerShell)

Presets 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 debug

3️⃣ Classic one-liner (cmd.exe, no presets)

cmd /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"

▶️ Run (Windows)

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"

📂 Data

Example input sketches are provided in the repository under data/.


📚 Citation

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}
}

⚖️ License

© 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.


🏛️ Acknowledgements

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

About

Implementation of the paper "KISSColor: Kinetic and Intuitive Stroke Stretching for Vector Drawing Colorization".

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages