Processingは、ケイシー・リースとベンジャミン・フライによって開発されたオープンソースの
プログラミング言語および
統合開発環境(IDE)です。元々は
MITメディアラボで開発され、電子アートやビジュアルデザインの分野で広く利用されています。
特徴
Processingは、特にアーティストがコンテンツ制作を行う際に、複雑な設定を必要とせずに直感的に操作できるように設計されています。視覚的なフィードバックが即座に得られるため、プログラミング初心者でも容易に学習を始めることができます。このため、電子スケッチブックの基盤としても活用されています。Processingは
Javaをベースにしていますが、グラフィック機能に特化しており、よりシンプルで使いやすいように改良されています。
IDEとプログラミング
Processingには、sketchbook(スケッチブック)と呼ばれる必要最小限のIDEが付属しています。Processingで記述されたコードは、内部的には
Javaのコードとして扱われ、コンパイルされます。ただし、クラス内の静的変数や静的メソッドの使用には制限があり、これらの機能を利用するには、ユーザーが明示的に純粋
Javaモードを指定する必要があります。
グラフィックAPI
Processingは、GPUドライバが提供するAPIを簡略化して提供しています。これにより、簡単な描画処理は容易に行えますが、高度な表現を行う場合には、APIが提供していない機能(例えば、OpenGLで標準的にサポートされている環境マッピングなど)を独自に実装する必要があるため、不便に感じることもあります。
プログラムの作成と共有
Processingで作成したプログラムは、アプリケーションとしてエクスポートすることが可能です。また、processing.jsの機能を利用することで、作成したコードをWeb上で実行し、結果を共有することができます。
プログラム例
以下に簡単なProcessingのプログラム例を示します。
processing
// Hello World
println("Hello World");
よりProcessingの特色を示す例として、図形を描画するコードは以下のようになります。
processing
// 図形を描く例
void setup() {
size(200, 200);
}
void draw() {
ellipse(100, 100, 80, 80);
}
日本地図の塗り分け
Processingでは、SVG形式の地図データを読み込み、特定の地域を塗り分けることができます。例えば、日本の地図データを利用して、特定の都道府県のみを塗り分けるプログラムを作成することも可能です。
関連プロジェクト
Processingから派生したプロジェクトとして、以下のものがあります。
Wiring: ProcessingのIDEにC言語を組み込み、マイクロコントローラのプログラミングを可能にするプロジェクトです。
Arduino: Wiringをベースにしたハードウェアプラットフォームで、電子工作分野で広く利用されています。
Mobile Processing: Processingで書かれたソフトウェアをJavaを内蔵した携帯機器上で実行するプロジェクトです。
受賞
2005年、ケイシー・リースとベンジャミン・フライはProcessingに関する業績により、アルス・エレクトロニカのゴールデン・ニカ賞(ネットビジョン部門)を受賞しました。
ライセンス
統合開発環境はGPLの条件で公開されています。
アプリケーションやアプレットに含まれるライブラリコードはLGPLの条件で提供されています。
開発したプログラムは任意の
ライセンスで利用できます。
名前について
当初、processing.orgのドメインが取得済みだったため、proce55ing.orgというドメインを使用していました。その後、processing.orgのドメインを取得しましたが、proce55ing.orgから取られたp5という略称は現在でも使われることがあります。
バージョン履歴
2008年11月24日:初のリリースバージョン1.0がリリースされました。
2013年6月:バージョン2.0がリリースされました。
2015年9月:バージョン3.0がリリースされました。
2022年8月:バージョン4.0がリリースされました。
関連項目
Processing.js: ブラウザ上でProcessingのコードを実行するためのJavaScriptライブラリです。
openFrameworks、
cinder: 他のクリエイティブコーディングツールです。
外部リンク
公式ウェブサイト
Processing Foundation
Processing4 - GitHub
Processing Foundation - Facebook
Processing Foundation - Medium
processingorg - Instagram
processingorg - X(旧Twitter)
Processing - YouTubeチャンネル
Processing Foundation - Vimeo
processinghacks.com
Processing Blogs
processing.js
*
p5js.org