Works

Software / CNC

flats-raster-vector-converter

PNG などのラスタ画像の線画を、NC 工作向けに最適化した SVG パスへ変換する Python ツール。

2023 PythonOpenCVscikit-imageNetworkXOR-Tools
flats-raster-vector-converter の処理フロー図

Overview

bitmap 画像を SVG パスへ変換する Python ツールで、CNC milling や laser cutter などの NC 機向けに使うことを想定しています。Illustrator などへ読み込んで使うこともできます。

skeletonization、graph theory による経路最適化、OR-Tools の TSP solver を組み合わせた変換フローで構築しています。パスの連続化やノード数削減まで含めた経路最適化機能付きのツールが見当たらなかったので、自作しました。

線画作成も重要な工程で、当時は Stable Diffusion の preprocessor を使って素材を整えていました。2023年の実装では GitHub Copilot の GPT-4 を補助的に使っており、今なら題材によっては Gemini や ChatGPT 系の画像機能を組み合わせるのもありだと思っています。

Highlights

  • PNG などの線画から SVG パスを生成
  • skeletonization と graph optimization を組み合わせた変換フロー
  • パスの連続化とノード削減を含む経路最適化を実装

Gallery