83秒ごとに絵を描き直す腕時計を、Julien Dorra氏が公開した。電子ペーパーの画面に200×200画素の絵が現れ、次に見たときには別の絵に変わっている。あらかじめ用意した画像を切り替えているのではない。そのつど時計の中でコードを走らせて描いている。
時計機能はない。通知もない。生成アートのコードを走らせることだけをする。ボタンで同期済みのスクリプトを切り替え、Wi-Fiでオンラインのエディターと同期し直せる。
なぜ本体でコードを走らせるのか。Dorra氏は、サーバーから画像を送り込むのでは意味がないと考えた。機器の中で本当に描くからこそ、一度同期すればその後は自律して絵を作り続けられる。電子ペーパーは電池が空になっても最後の絵を保つため、白い画面にならない点も理由に挙げる。
スクリプトはMicropatternsという独自のミニ言語で書く。最大16個の1ビットのパターンを、スタンプと塗りつぶしに使うことを中心に据えた言語だ。整数演算に限り、時刻と数え上げ用の値を使って絵を変化させる。Webエディターではコード上のパターンと、描いて作るパターンを双方向に編集できる。
既存の基本ソフトに載せる文字盤ではなく、専用に書き下ろしたソフトウェアだと同氏は説明する。スクリプトを管理し、選んだものをコマンドの木構造に解析し、木をたどって描画命令の一覧を出し、それを画素へ落とす。「中に小さなアートOSが入っている」という表現をしている。
最初に作ったのは、引き出しにあったM5Paper版だった。画面は960×540と大きく美しい。数日前、当初から欲しかった腕時計版をESP32の電子ペーパー時計「Watchy」へ移した。WatchyはPSRAMがなく電池も小さいが、その制約がデータ構造を見直す機会になったという。
意外な結果も出た。スクリプトの実行は画面の更新より速く、部分更新を使っても、再実行にかかる時間の大半を電子ペーパーの書き換えが占める。画面は200×200と小さいが、1回の充電で3日から4日は身につけていられる。
Micropatternsのコードと、ブラウザーで試せるエミュレーターはGitHubで公開している。ただしライセンスを示すファイルは置かれていない。