見出し画像

手に馴染む言語にしたら作品数が10倍になった!〜Rubyでクリエイティブコーディング〜

こんにちは、chobishibaです。普段はソフトウェア開発をしているクリエイティブコーディング好きです。
この記事は、Processing Advent Calendar 2023 17日目の記事です。

Processingとの出会いは2016年くらいで、普段自分が仕事でやってるプログラミングでアート作品が作れるというのが面白くて始めました。

慣れた言語で書きたい欲求

普段Rubyという言語を使っていることもあってどうもProcessing(Java)の構文に馴染めない。つい「RubyならXXって書くのになーProcessingならどう書くんだっけ」と思考が中断されるのが悩みでした。これはp5.js(JavaScript)でも同じで、なんだかしっくりこないけどときどき作品が作りたくなって、年2つか3つ作品を作って普段は他の方の作品とコードの鑑賞をし、年末にはこのProcessing Advent Calendarを楽しみにして来年こそもっと作るぞなんて思うことを繰り返していました。

クリエイティブコーディング * Ruby

それが2023年3月に ruby.wasm と p5.js を組み合わせた p5.rb と出会ったのでした。

Rubyの構文でp5.jsの関数を呼び出して作品が作れる、念願のRubyで書ける環境を手に入れてたのです!楽しくてどんどん作りました。

ちょっと試してみたいp5.jsの関数を試したり
参加イベントロゴのファンアート描いてみたり
6月にあった #minacoding に参加したり
時にはロジックミスで偶然表示された図形が気に入って作品の方向を変えたり

RubyだとOpen Processingのようなプラットフォームがないことと、コードをgitで管理しながら作りたいので、作ったものはGitHub Pages使って公開してます(15日目のきむらこうやさんの記事にあるweb editorでこねこねしてたら幻の作品になってしまった件、身に覚えしかありません!今のスタイルにしてからそういう悲しい事故を減らせました)。

そんなふうに作っていたら、気がついたら20近くの作品(習作に近い実験的なものも多いのですが)作ってました。つまり今までの10倍です。

円を描いたり、色の指定だったりはp5.jsの関数を使っているのでロジックをRubyで書いても完成作品はp5.jsオンリーで書いてもさほど変わりません。
変数の定義や繰り返し処理、ランダムの指定といった部分がRubyの構文で書かれているだけです。でもたったそれだけのことでも、絵作りに集中できてより作り込むことができました(当社比)。

決してクリエイティブコーディングをするのにRubyが向いていると言いたいわけではありません。たまにprocessingをやってた方がp5.jsにしたらすごく作りやすくなったとか、その逆とかの話を聞きますが、私にとってはRubyだったという一例です。

調べてみるといろんなプログラミング言語でprocessingを動かしてみようという試みはあるので慣れた言語がある人ほどそうしたい欲求があるのかなと勝手に想像してます。
processing.py というのもあるのでPythonに慣れてる方はこちらの方がスムーズに作れるということがあるかもしれません。
言語に自分を慣らしていくのももちろん素敵なことだと思いますが、違う言語を試してみると新しい扉が開くかもしれません。

自分だけでなく他の人にも

クリエイティブコーディングもRubyもやってる人は多いですが、掛け合わせると珍しいみたいで、勉強会(200人近い人が集まる)で登壇の機会がもらえました。

Ruby好きの人が集まる勉強会だったので始めてくれる人が増えたらいいな、0から作るよりベースがあったほうがとっかかりやすいかなと、ここでは改変自由なコードを作って配布してみました。

でも、もしかしたらワークショップとかハンズオンの方がとっかかりやすいのかなと登壇後の反応や、この前参加したCOLOFULのイベントを見ながら思ったりもしてます。

なんでRuby周辺に広めたいかというと、一つでも多くの作品が見たい。出会いたい。作ってる人と話してみたい。クリエイティブコーディングを知らないだけでやってみたら楽しい!ってなる潜在的なクリエイティブコーダーがいるんじゃないか。そんなところが動機です。

というかそもそも私が出会ってないだけで実はいらっしゃって、私がやってるよ〜と言ってたら見つかるのではという期待もあります(実はp5.rbと出会う前からRubyでクリエイティブコーディングを楽しめる方法は他にもあったので、ただ単に私のアンテナ感度が低いだけでは疑惑)。

これからやりたいこと

手に馴染む道具を手に入れたのでもっと作品作っていきたい!これにつきます。まだ技術的に振り回されてる感じがするので、もっと使いこなして自分作風見つけて行きたいです。
そしてイベントがあったら積極的に参加もしていきたいです。

あとは新たに始める人が出てきてくれるように働きかけたい〜とこの記事を書いてたらついに始めてくれる人が出てきた!!サンタさんがプレゼントもって来てくれたかと思いました!!!

他にもちらほらクリエイティブコーディングに興味を持ってるRuby繋がりの人を観測してるので、ちょっとしたもくもく会とかワークショップとかできたら楽しいんじゃないかなととぼんやり考えてます。そんな大掛かりなものじゃなくて数人で集まってちょっと手を動かしてみるとかそういうことできたら楽しそうだなと思ってます。

いろいろ書きましたが、これからも楽しくクリエイティブコーディング生活を続けていきたいです!


この記事が気に入ったらサポートをしてみませんか?