Design By Numbers(以下、DBN)を実行する方法をメモしておきます。
自分の環境は以下の通りです。
- macOS 13.3.1
- MacBook Air
- Apple M1
- Java
- openjdk version “17.0.1” 2021-10-19
- OpenJDK Runtime Environment (build 17.0.1+12-39)
- OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
手順は、こちらの記事の内容と同じです。
https://maeda.pm/2017/12/01/design-by-numbers-in-2017/
先にシェルで実行するコマンドを記載しておきます。
curl -OL https://maeda.pm/wp-content/uploads/2017/12/dbn-3-0-1-in-2017.zip
unzip dbn-3-0-1-in-2017.zip
cd 'dbn-3.0.1 in 2017'
java -classpath classes DbnApplication
このコマンドを実行するとDBNの画面が表示されます。 やっぱりProcessing IDEに似ていますね。
先ほどの記事に記載されていた内容を日本語で詳しく書き出すとこのようになります。
dbn-3.0.1 in 2017
をダウンロード- Javaがインストールされていることを確認
- されていなかったらJDKをインストールする
- https://www.oracle.com/java/technologies/downloads/
- Zipを解凍する
cd 'dbn-3.0.1 in 2017'
で解凍したディレクトリに移動するjava -classpath classes DbnApplication
でDBNを実行する
DBNについて
Wikipediaより
Design By Numbers (DBN)は、1990年代にMITメディアラボにおいて開発されたグラフィック・プログラミング環境である。このプロジェクトはジョン・マエダと彼の学生によって率いられた。デザイナーやアーティストといったノンプログラマーがプログラミングを用いた表現を行えるよう、学習の容易なシンプルな言語仕様であることが特徴であり、その後のプログラミング教育やクリエイティブ・コーディングに広範に渡る影響を及ぼした。
2022年現在、Design By Numbersはアクティブなプロジェクトでは無いが、プログラミングをエンジニア以外の人々がより利用しやすいものとすることを目的とした数多くのプロジェクトに影響を与え続けている。その最も著名な例は、マエダの学生であるケイシー・リアス(Casey Reas)とベン・フライ(Ben Fry)によって開発されたProcessingである。これはDesign By Numberでの開発経験を元に、より複雑な表現が可能となるよう改良が施された統合開発環境であり、国際的な成功を収めている。
https://ja.wikipedia.org/wiki/Design_By_Numbers
というように、DBNは現在のクリエイティブ・コーディング環境(Processing, p5.js, oFなど)に、 影響を与えたプログラミング環境です。
現代では、クリエイティブ・コーディング環境が発展し、容易にリッチな表現が可能になりましたが、 限られた表現の中でクリエイティブ・コーディング環境を見つめ直すためにDBNを触ってみる価値はあると思います。
構文
examplesを確認しながら、わかる範囲でコマンドを書いていきます。 こちらは更新していく予定です。
paper
画面の色を指定するコマンドです。
Processingの background()
のように、
引数が1つならグレースケール、3つならRGBで表示されます。
引数で与える値の範囲は0 ~ 100です。
0が白で100が黒です。
paper 10
paper 10 0 0
pen
ペンの色を指定するコマンドです。
Processingの stroke()
のように、
引数が1つならグレースケール、3つならRGBで表示されます。
引数で与える値の範囲は0 ~ 100です。
0が白で100が黒です。
pen 10
pen 10 0 0
line
線を引くコマンドです。
Processingの line()
のように、
x1 y1 x2 y2
を与えることで線を引くことができます。
line 10 20 20 50
set
点を打つ(ピクセルの色を設定する)コマンドです。 座標と色を引数として渡します。
set [(x*10)(y*5)]80