tags : Quil

Tyler Hobbs と Quil のコード例まとめ (2025-08-26)

Tyler Hobbs は Clojure の Quil ライブラリを使って数多くのジェネレイティブアートを制作しており、 彼自身が Quil を活用したコード例を複数公開しています。以下に主な記事と内容をまとめます。

1. Creating Soft Textures Generatively

  • Quil を使ったテクスチャ生成の例。
  • 透明レイヤーの重ね方、確率分布を使った形状の幅のランダマイズ、 `begin-shape`〜`vertex`〜`end-shape` を用いたポリゴン生成のコード例が掲載。
  • 記事リンク

2. Working with Color in Generative Art

  • Quil での色彩表現に関するコード例。
  • HSB カラーモードの活用、確率的な色選択(`weighted-choice`)などが紹介。
  • 記事リンク

3. Utilizing Random Number Generator Seeds

  • 再現性を確保するための乱数シード活用。
  • Quil の `random-seed` 使用例、シード生成や描画保存の流れを解説。
  • 記事リンク

4. その他の記事

  • Code Goes In, Art Comes Out: Quil を使ったアート制作の一般的アプローチ。 記事リンク
  • How to Hack a Painting: 水彩風のジェネラティブアートの手法解説。 記事リンク
  • What Programming Brings to Art: Quil を用いた作品シリーズ生成の事例。 記事リンク

結論

Tyler Hobbs の Quil コード例は以下の記事が特に参考になる:

  • Creating Soft Textures Generatively
  • Working with Color in Generative Art
  • Utilizing Random Number Generator Seeds

実際のコードを学びつつ、自分の Quil プログラムにも応用できる。

補足: 最初に書いた Quil コードについて

Tyler Hobbs 本人が「これが最初の Quil コード」と断言して公開している資料は見つかっていない。 ただし、2015年以降の記事や講演で示された初期例から、彼の初期スタイルがうかがえる。

  • 2015年の記事では透明矩形や確率分布を用いた幅のゆらぎのコード例が公開されている。
  • 2016年の記事では `color-mode :hsb` を使った色彩表現や、重み付き選択のサンプルがある。
  • 2019年の講演テキストでは `(begin-shape) → (vertex …) → (end-shape)` を核にしたシンプルなスケッチが紹介されている。

本人の「最初のコード」そのものは未公開だが、以下のような最小例が当時のスタイルに近いと考えられる。

(ns sketch.core
  (:require [quil.core :as q]))
 
(defn setup [] (q/frame-rate 1) (q/no-loop))
 
(defn draw []
  (q/background 255)
  (q/no-fill)
  (q/stroke 0)
  (q/begin-shape)
  (doseq [i (range 0 360 15)]
    (let [r (+ 120 (q/random -10 10))
          x (+ 200 (* r (Math/cos (q/radians i))))
          y (+ 200 (* r (Math/sin (q/radians i))))]
      (q/vertex x y)))
  (q/end-shape q/CLOSE))
 
(q/defsketch demo
  :title "minimal-hobbs-like"
  :setup setup
  :draw draw
  :size [400 400])

追記: 「最初の Quil コード」について (2025-08-26)

  • 本人が「これが最初の Quil コード」と特定して公開している一次情報は見つかりませんでした。
  • 公開されている初期のコード例としては、2015年前後の記事に掲載された Quil/Processing のサンプルが最古級のものとして参照できます。
  • これらから読み取れる初期スタイルは、`begin-shape` → `vertex` → `end-shape` を核に、乱数や重み付き選択、HSB カラーモードなどを併用する手法。

参考: Hobbs の初期スタイルに近い最小スケッチ(再構成 / Clojure + Quil)

(ns sketch.core
  (:require [quil.core :as q]))
 
(defn setup [] (q/frame-rate 1) (q/no-loop))
 
(defn draw []
  (q/background 255)
  (q/no-fill)
  (q/stroke 0)
  (q/begin-shape)
  (doseq [i (range 0 360 15)]
    (let [r (+ 120 (q/random -10 10))
          x (+ 200 (* r (Math/cos (q/radians i))))
          y (+ 200 (* r (Math/sin (q/radians i))))]
      (q/vertex x y)))
  (q/end-shape q/CLOSE))
 
(q/defsketch demo
  :title "minimal-hobbs-like"
  :setup setup
  :draw draw
  :size [400 400])
  • ※上記は本人の「最初のコード」そのものではなく、公開情報から読み取れる書きぶりを踏まえた最小例です。