2019年のデイリーコーディングを振り返る
はじめに
デイリーコーディングについては,過去にこのようなエントリを書きました.
デイリーコーディングは「毎日コーディングする習慣」を指す造語で,時間ややり方については,明確な定義を設けていません.自分なりに考えて,今は「日々の生活の中で,少しでも時間をとって自分のためにコードを書く習慣を続けること」というふうに考えています.そして,この活動を少しでも誰かと共有し,コードを日々書くことで得られる楽しさを伝えていきたいと思っています.
僕は2015年の1月からの約4年,毎日短いコードを書く習慣を続けています.そして,今年2月に行われたProcessing Community Day 2019に参加したあとから,書いたコードを公開するようになりました.今回のエントリでは,コードを公開し始めて変わったこと,そこで得られた発見についてまとめていこうと思います.誰かの役に立つかもしれないし,自分の1年の振り返りにもなるという,いわゆる一石二鳥を狙っていきます.
デイリーコーディング公開以前
コードを公開する以前にやっていたデイリーコーディング(当時はそんな呼び方もしていませんでしたが)では,基本的に「少しでもコードに触れられればOK」,「自分のなかで何かひとつでも発見があればOK」という観点で習慣を続けていました.それはある種,非常に内省的にコードを書くことでした.エディタを開いてコードを書くその行為自体は,今やっていることとそれほど変わりはありません.
一方で,書いたコードを振り返ることはあまりしませんでした.コード自体もチュートリアルやリファレンスといった誰かのコードを探して,それを書き写したりしていました.それ自体は悪いことでもありませんが,過去に書いたコードから派生して何かを作るということもあまりしませんでした.今思うと,それはとても「もったいない」ことでした.なぜならそこにコードと自分,他者と自分の対話がなかったからです.
#Everydays の先駆者
書いたコードを公開しようと思うきっかけには,様々な分野で活動する人たちの影響がありました.例えばメディアアート、インターフェイス研究者の水野勝仁さんは,研究メモとしてnoteやtumblrに引用や自分の考えを日々投稿しています.コンピュータグラフィックスやクリエイティブコーディングの分野では,いわゆる #Everydays の先駆者として知られるBeepleやZach Liebermanさんは,日々素晴らしい制作物をSNSで公開しています.国内ではp5.jsと同じクリエイティブコーディング環境であるopenFrameworksで,junkiyoshiさんが毎日コードを公開していたりします.また,先に紹介したProcessing Community Dayで,デイリーコーディングについて紹介するLTをしたことも大きなきっかけになりました.
そういった前提から公開すると決めた一方で,何か展望を持っていたわけでもなく,ぼんやりと「せっかくやっているんだったら,書いてるものが多少未熟だとしても,公開してもいいのかもしれない(そもそも見返してないし)」くらいの見通しでスタートしたことも記録しておこうと思います.
コードを公開することと,作品の価値についての個人的見解
コードを公開することで得られた発見,自分に起こった変化について述べる前に,誤解があるといけないので自分の考えを予め表明しておきたいと思います.それは,コードを書くことで得られる喜びや表現された作品的価値は,公開/非公開とは全く関係がない,ということです.美術館やパフォーマンスで表現されるメディア・アートやインタラクティブアートといった表現の多くはコードを公開していません.原理をみせたいのではなく,コードの実行結果の現れとして,作品を理解してほしい場合も多くあります.そういった場合には,コードを公開することで作品理解を阻害する場合すらありえます.僕はコードが公開されていない制作物を鑑賞することが誰かのコードを読むのと同じくらい好きですし,作品から見えないコードを見ようとしてリバースエンジニアリングしたりするのも楽しいことだと思っています.
そのような前提から,これから話す自分の得た気づきはコードを公開しない作品を毀損するものではないことをお伝えして,自分の取り組みについて述べたいと思います.
デイリーコーディング公開後の変化
実際に書いたもののダイジェスト10選
線はすべて白(HSBで0,0,100)だけど,線の密度の関係でか白から薄黄色にみえる🧐 #p5js #dailycoding https://t.co/oHAl4kLuUY pic.twitter.com/dcOOHBxG6n
— takawo shunsuke (@takawo) 2019年3月13日
- 一番最初の投稿.
ベルギー🇧🇪ぽい配色にしたほか,シェイプに影つけてみるなど #p5js #dailycoding https://t.co/ZpBlOQ5TEF pic.twitter.com/kAzadq8OJR
— takawo shunsuke (@takawo) 2019年3月15日
- 割と最初期から影や粒状感といったCG的な工夫を始めている.
グリッド状に敷き詰めた正方形の中を,円弧,半円,線などで描画し,領域を部分的に塗る.灰色ハイジさん @haiji505 の #dailypattern にインスパイアされた.#p5js #dailycoding #creativecoding https://t.co/PD3QB6CLJH pic.twitter.com/JjNbECRbyh
— takawo shunsuke (@takawo) 2019年3月25日
- 配色,造形的工夫の点で個人的ブレイクスルーがあった.
格子状に檻を作って配置し,その中を徘徊する点の軌跡を描画する.点は檻の端や中点,中央で大きくなる. #p5js #creativecoding #dailycoding https://t.co/PraTYSeHEA pic.twitter.com/1oCUoP4gXE
— takawo shunsuke (@takawo) 2019年3月30日
- 基本図形から外れたコードを書いてみる試み.最近のコードにもつながっている.
進捗です🍺 #p5js #creativecoding #dailycoding pic.twitter.com/bZuBrqr7m4
— takawo shunsuke (@takawo) 2019年4月16日
- ピクセルのマニピュレーション.完成形よりも,その下準備で行うこういった進捗で発見が多かった.
格子状にドットを打つ.ドットは左右対称に展開し,一定の確率で色を変える.#p5js #creativecoding #dailycoding https://t.co/IeBc4cYUXm pic.twitter.com/1EKp1ADtve
— takawo shunsuke (@takawo) 2019年5月21日
- 左右対称に展開することで顔を探してしまう人間の認知を利用する,とかなんとか.
poseNetを使ってイメージの中にある顔の位置を推定し,emojiを重ねて表示する.https://t.co/GPuCpsEs6q #p5js #ml5js #creativecoding #dailycoding pic.twitter.com/48ZKuCgUqW
— takawo shunsuke (@takawo) 2019年5月27日
- 節操なくml5.jsなど新しい技術にも取り組んだが,Teachable Machineが新たにでたので,改めて触りたい.
絵文字をノイズを使って移動させながら連続的に描画する.スケールやシアー,表示される絵文字は一定間隔で変化する.https://t.co/l34AAq5uQA #p5js #creativecoding #dailycoding pic.twitter.com/IKriNhGIcR
— takawo shunsuke (@takawo) 2019年7月10日
- Emojiのグラフィックへの応用はとても楽しく,またp5.jsならではの表現なので,もっと取り組みたい.
画面上にJIS第一水準漢字 + 常用漢字からランダムで1文字を表示する.文字のアウトラインを沿うように円を配置する.#p5js #creativecoding #dailycoding https://t.co/ZylidmXd25 pic.twitter.com/Js4CgpadDu
— takawo shunsuke (@takawo) 2019年10月1日
- 体調が悪いときに思いついた「文字を病気にする」という発想.
画面を覆う領域内に,格子状に動く点を配置する.点の軌跡によって多角形を描画し,その色は時間経過によって変化する.https://t.co/jHvxIsMgBb #p5js #creativecoding #dailycoding pic.twitter.com/el8iqVXjg1
— takawo shunsuke (@takawo) 2019年12月21日
- 動きに関しては,まだまだ工夫の余地がある.
1. 参照・言及されることが増えた
個人的でわりとライトな動機から始めた「コードを日々公開する」活動は,想像以上に自分のコーディングへの向き合い方を変えたように思います.毎日コードを書くことは変わらないのですが,書いたコードをp5.js/ProcessingのコードプラットフォームであるOpenProcessingで公開するようにしました.またアルゴリズムを文章でまとめて画像や映像と合わせてツイートしています.これらはTwitterのリンクから参照することができます.
twitter.com takawo - OpenProcessing
コードを公開するようになって真っ先に思い付く大きな変化は,いろんな方からコメントがもらえたりフォーク(改変)したコードを見せてもらえたりしたことです.順不同ですが,@deconbatchさんや@okazz_さん,@falworks_jaさん,@naoto_hiedaさん,@reona396さん,@junkiyoshiさんには年間を通じて,多くのフィードバックをいただけました.また同じように日々コードを書く仲間として @UglyPixel さんの活動も励みになりました.彼らのコメントやコードから派生して次のコーディングのアイデアをもらったり,インスピレーションをもらいました.こういったコードを介したコミュニケーションが活発になると同時に,コーディングに対する反射神経,当意即妙にコードを書く力が鍛えられたように思います.
それは,今年自分が少しできるようになったと実感する「楽器を弾くように」「文章を綴るように」コードを書く力になったと感じています.
2. 発表の機会が増えた
コードを公開していくことで必然的に書いたものを見てもらえること,露出が増えました.その結果として自分が「毎日コードでなにかグラフィックを作っている人」という認知が,SNSを中心に少し広まったように思います.それに関連したこととして,今年9月にNEORT主催のイベントで,ワークショップを企画・実施させてもらうことができました.関西から東京で,日々のコーディングで得た知見を広める機会がいただけたことはとてもよい経験になりました.ワークショップの資料はこちらです.
paper.dropbox.comクリエイティブコーディングの共有サイト「NEORT」主催の展示で,p5.jsのワークショップを9/15(日)16:00-19:00 MTRL by FabCafeで実施します.テーマは「グラフィックのための(動かない)コード」です.初心者歓迎です,興味がある方,ぜひぜひご参加ください!😃https://t.co/KKPItyAabp pic.twitter.com/NTuMLn69zX
— takawo shunsuke (@takawo) 2019年8月22日
合わせて,渋谷駅地下で先日まで作品展示をすることができました.これも当初意図していなかった広がりだと言えます.
また,グラフィック・デザイナーの鈴木哲生さんの作成した日本語バリアブルフォントを,p5.jsでアニメーションさせた映像が,韓国ソウルで開催された国際タイポグラフィビエンナーレTypojanchi 2019で展示されました.
3. コードの中に自分らしさを発見できた
書いたコードを自分のものとして公開することは,それがどんなもので,コーディングの最中に何を考えたのか,日々まとめていく日記的行為でもあります.それは自分がこれまで何度か言葉にしてきた「雰囲気でコードを書く」ことから,一見随分と遠いことのように思えるかもしれません.しかし,プログラム(指示書)は実行される以上,明確なものです.日々のコードを書いていく中で,ある程度の方向性を持ちながら骨子として明確に記述する部分と,その中にジェンガのように抜き出し動かせる部分を探し,そこで遊ぶような書き方は両立し得ると今は思っています.というか,自分のコーディングに限ってはそういった手順でコードを書くことがとても多いです.
今は「ただコードを書くだけではなく,書いたコードを振り返り,それと自分がきちんと向き合うことがとても大事」だと思っています.ですが,それは一方で少し難しいことだった気がしています.コードを書くこと自体よりも,書いたコードを振り返るためには,コードを書く時間以外の,コードについて考えセルフレビューする時間が必要だからです.
ささやかなものでも,そこで自分なりに工夫したことは何か.作ってみた今それをどう思っているか,どう考えたか,色や形,動き,質感についての考察.そのときの思考の過程が記され,足跡が追えることが,何よりも大事です.
なぜなら,コードがどこにでもあるような変数や関数やオブジェクトの寄せ集めであっても,そこで気づいたこと,感じたことは自分だけが得たものだと言えるからです.人間同士が言葉を交わすように,コードを書き換えて変化する現れと対話し,そのことを思い出す.朝コードを書いて,出勤しながらコードを振り返ったり,帰り道で思い出す.そういった瞬間に得た着想や気付きが,今年のデイリーコーディングで得たもっとも大きな収穫でした.
最後に
また,こういった形でデイリーコーディングを紹介するエントリを書いていただけたこともとても嬉しいことでした.今後も日々のコードを通じて,楽しみながら,得た知見と活動を広めていきたいと思います.ハッピーコーディング!
この記事はProcessing Advent Calendar 2019の22日目の記事として書かれました. 前日の記事は@t_ritocoさんの「【Processing】"Processing iCompiler"と"つぶやきProcessing"で作品制作をしてみた 」です.明日は@deconbatchさんです.楽しみにしています!