
2026/07/06 14:26
パターンコレイラー:準周期タイルパターンを生成・探求する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Pattern Collider は、Aatish Bhatia と Henry Reich によって開発されたインタラクティブな Web プラットフォームであり、非周期タイル配置パターン(特に五対称のペンスロータイル)の生成と探索を目的としています。ニコラス・ゴベルト・デ・ブリューンの多重格子法を用い、どの方向においても反復せずにモチーフが無限に現れる非反復構造を構築します。下層技術依存には、描画用の p5.js、インタラクティブ性用 vue.js、色指定用 hsluv.js、乱数生成用 seedrandom.js が含まれます。
ユーザーはグリッド/タイル表示の切り替え、クリックによるリボンまたは交点の選択、彩度・コントラスト・充填・輪郭・回転・パンニング・N 対称性の設定調整(四辺以上の多角形が表示されるようにするための特定のオフセットを含む)などを通じて体験をカスタマイズできます。主な機能として、「Randomize」ボタンがあり、Disorder > 0 の場合、ラインファミリーにランダムなオフセットを適用して新しいパターンを生成します。「Share Pattern」機能により、それぞれ独特のデザインには固有の URL が付与され、クリエイターは成果物をブックマークしたり共有したりできます。本プロジェクトは MIT ライセンスでコードが公開されており、フィードバック提供へ Arkarup Banerjee、Shefali Nayak、Vijay Ravikumar、Connie Sun にクレジットを与えています。参考文献には、David Austin の「Penrose Tilings Tied up in Ribbons」および Paul Steinhardt の「The Second Kind of Impossible」が挙げられます。
本文
パターン・コリダー (Pattern Collider)
概要と特徴
パターン・コリダーは、**準周期タイルング(quasiperiodic tiling)**パターンの生成と探索を可能にするツールです。主な特徴は以下の通りです:
- 独自のカスタム URL:作成したあらゆるパターンに付与され、ブックマークや共有が可能です。
- 原理の解説:動作原理については、『Minute Physics』の動画(※)をご参照ください。
注:※原文には動画へのリンクまたは言及があるが、具体的な URLs は提供されていないため、「動画を視聴してご覧ください」と記述。
クレジットとライセンス
本プロジェクトの開発および構成に関する情報は以下の通りです:
- 開発者:Aatish Bhatia 氏による開発、Henry Reich 氏との協力により完成。
- 感謝申し上げます:有益なフィードバックおよび助言をいただいた方々へ(Arkarup Banerjee 氏、Shefali Nayak 氏、Vijay Ravikumar 氏、Connie Sun 氏)。
- ライセンス:本リポジトリに含まれるすべてのコード(特に事前のライセンスが付与されていないもの)は、オープンソースの MIT ライセンス 下で公開されています。
準周期パターンとは?
「どの方向へスライドさせても自己重复しないが、動機(タイルのクラスター)全体がパターン内を無限に頻繁に現れる」ようなパターンを指します。
- 代表的な例:
- ペンローズタイルング(最も有名な例)。
- 中世イスラム美術に見られるデザイン。
- 自然界における准結晶。
- 視覚的特徴:多数の繰り返し動機を含みますが、全体としてどの方向も重複しません。
- 数学的な理由:周期的に反復する部品から構成されていますが、周期同士の比率が無理数であるため、互いに一致しない点にその秘訣があります。
「有名」なタイルングパターン
パターン・コリダーで再現可能な、以前に命名されたパターンの一例です:
- 5 重対称 ペンローズタイルング
- 6 重対称 ステップドプレーン(ランダム化をクリックしてバリエーションを生成可能)
- 7 重対称 ソコラータイルング
- 8 重対称 アマン・ビーエンカータイルング
- 12 重対称 ソコラータイルング
動作原理
パターン・コリダーは、数学者ニコラース・ゴベルト・デ・ブリュイネが発見した**「多重グリッド法(multigrid method)」**を用いています。
基本構成
- 直線の集合:互いに交わる直線の集合が全てタイルングパターンを生み出します。
- 多数の直線から始め、それらが交差する点を特定。
- 各交差点で、直線に垂直な辺を持つ正多角形を描画するとそれが「タイル」となります。
- タイルは二つの直線の交点によって生じ、形状は交差角度によって決定されます。
- 双対関係:このタイルングパターンと直線グリッドは互いに双対(代替表現)の関係にあります。
ペンローズタイルの構築例
デ・ブリュインの手続による具体的な適用例です:
- 前セットに対してそれぞれ $360°/5 = 72°$ の角度で傾けた5 組の等間隔な平行線を引く。
- これを**「ペンタグリッド(pentagrid)」**と呼びます。
- このグリッドをデ・ブリュインの手続によって変換すると、よく知られたペンローズタイルングが得られます。
- ペンタグリッド内の直線は二種類の角度のみで交差するため($72°$ または $144°$)、タイルは**「薄い菱形」と「厚い菱形」**の 2 種類のみからなります。
無限の可能性
- 直線を平行移動させても間隔や向きを保持すれば、無限 families のペンローズ様のタイルングを生成できます。
- 異なる数の平行線組(多重グリッド)に対して手順を繰り返せば、多くの他のパターンも作成可能です。
パターン・コリダーの使用方法
インタラクション操作
- 画像保存:パターンの右上にある保存アイコン💾をクリック。
- 直線の選択:
- グリッド上の直線をクリックすると選択され、対応するタイルパターン内の帯(ribbon)がハイライト表示されます。
- クリック&ドラッグで平行な直線/帯を一括選択できます。
- タイルの選択:
- タイルをクリックすると選択され、グリッド上の対応する交差点がハイライト表示されます。
- クリック&ドラッグで複数のタイルを選択できます。
- リセット操作:
- 「クリア選択」ボタン:すべての選択を解除。
- 「リセット」ボタン:すべての変更を元に戻してデフォルトのタイルングパターンへ戻す。
パターン設定(パラメータ)
- 対称性(Symmetry):
- パターンの回転対称性を制御します。値が高くなるほど、平行線/帯の組数が増加します。
- 対称性 3, 4, 6 の場合を除き、すべての対称性値でパターンは準周期的になります。
- N 重対称パターンの場合、パターンを $360/N$ 度回転させたときに同じように見える点が存在します。
- パターン(Pattern):
- グリッド中心からの各直線の家族のオフセットを制御します。
の場合:一点でより多くの直線が交わり、タイルングパターンにおいて四辺形以上の多角形が生成されます。パターン = 0 または 1
あるいはパターン = 0.5
の場合:興味深い現象が起こります。パターン = 1 / 対称性の値- 回転(Rotate):
- パターンをその中心周りに回転させます。
- 注意:回転の中心はタイルングパターンの中央であり、可視パッチの中央ではありません(ただし
の場合は一致します)。glide = 0 - 平行移動(Pan):
- パッチを左右に平行移動させます。
と組み合わせて使用することで、タイルングパターン内を移動できます。rotate- 乱度(Disorder):
- グリッド内の各直線の家族をランダムな量だけオフセットします。
- 無作為なオフセットの大きさは
スライダーで制御されます。これにより、より広い範囲のタイルングパターンを探索できます。disorder - ランダム化(Randomize):
- 新しい一組のランダムなオフセットを作成して、別のランダムなパターンへジャンプします。
- 条件:
の場合のみ機能します。disorder > 0 - パターンの共有(Share Pattern):
- このパターンの URL をクリップボードにコピーし、簡単なブックマークおよび共有を可能にします。
サイズ設定
- 半径(Radius):タイルの円形パッチの半径を設定します。
- ズーム(Zoom):パターンの拡大・縮小を行います。
- グリッド/タイルング表示:グリッドまたはタイルングパターンの表示オン/オフを切り替えます。
色設定
- カラーパレットの変更:タイル用の新しいカラーパレットを生成します。
- 色の反転:カラーパレット内の色の順序を反転させます。
- タイルの方位による着色:
- タイルの面積ではなくその方位に基づいてタイルに色付けします。
- 特に3 重対称または 6 重対称のパターンの視覚化に適しています。
- タイルの色塗り:タイルに色を塗る機能をオン/オフ切り替えします。
- 交差点(Intersections):グリッド内の交差点の識別をオン/オフ切り替えします。
- エッジ(Edges):タイルのエッジの輪郭表示をオン/オフ切り替えします。
- エッジの輝度:エッジの明るさを設定します。
- 色相(Hue):パターンの平均色相を設定します。
- 色相範囲(Hue Range):
- パターンの色相範囲を設定します(負から正までの範囲)。
に設定すると、単一の色相を持つ濃淡でタイルが着色されます。ゼロ- 彩度(Saturation):パターンの彩度を制御します。
の場合にはグレースケールになります。ゼロ - コントラスト:
- パターンのコントラストを制御します(暗さから明るさまでの範囲)。
- 高いコントラストはパターンを目立たせやすくしますが、色相の強調効果が低下します。