佐世保で「記憶の告白 – reflexive reading」

佐世保市博物館島瀬美術センターにて開催されている平成23年度企画展「感じる文学ー動く・触る・薫るー」に、平野啓一郎さんと中西泰人の共作「記憶の告白 – reflexive reading」を展示してきました。

2007年に東京都写真美術館にて行われた「文学の触覚」展から展開した新たな企画展です。

佐世保は、食べ物が美味しく(佐世保バーガー、イカや鯵といったお魚、ちゃんぽん等々)軍艦や造船工場などの巨大な人工物が作り出す景色と海と山と島々が織りなす自然の風景がすばらしい街でした。夏休みにハウステンボスに行く予定がある/そんな予定を考えている方がおられましたら、ぜひ足を伸ばしていただければと思います。

カテゴリー: diary, works | コメントする

Pervasive2011にて口頭発表+デモ

Pervasive2011 Logo
先月の話ですが、6月の12日〜15日までSan Fransiscoで行われたPervasive2011という国際会議にて「Hybrid prototyping by using virtual and miniature simulation for designing spatial interactive information systems」という発表タイトルで中西が口頭発表を、北原がデモをしてきました。

研究室では、実世界指向の空間的な情報システムを設計開発するにあたって、Google SketchUpで作った3D空間の中でProcessingを動かすことができるCityCompilerというシステムを作っています。

この発表では、仮想空間だけで設計開発をするよりも、模型空間も使って設計開発をすると、システムを実際に動かす時に調整すべきパラメータを事前に知ることができるようになり、さまざまな環境に対応しやすいシステムに進化させていくことができるメリットがあります、という内容です。

論文はこちら[pdf]、発表時のスライドはこちらです。

カテゴリー: diary | Pervasive2011にて口頭発表+デモ はコメントを受け付けていません

livepic

井上です。
自分の研究分野の関連で、面白いインタラクションを見つけたのでご紹介いたします。

livepic

前の記事にあった、日本ロマンチスト協会の桂信さんが学生の頃(2006年)に作った作品だそうです。
プロジェクションされた画面に専用のブラシでイラストを描くと、そのイラストが人の息+暖かさを感知して飛ばされます。まるでシャボン玉のようです。
こういったお絵描き+αの組み合わせは定番ですが、組み合わせ次第でまだまだ新しいものが作れる予感がしました。
ですが、+α部分の発想が難しいですよね。ロマンスで補えないでしょうか。

カテゴリー: diary | コメントする

面白いもの!!~まだまだあります~

こんにちは、長澤です*

中谷さんに引き続き、CHI2011勉強会において発表された研究をご紹介します。

今回の作品はこちらです↓

Pico Projector Based free downloadable online casino casino spiele games for phones Games With MotionBeam Prototype

これは“ピコプロジェクター”を利用した新しいアプリケーションです。ピコプロジェクターとは、携帯機器への搭載を狙った非常に小さいプロジェクターです。

携帯を動かして壁にプロジェクションしながらゲーム内の操作ができるため、手元に収まる画面を見てするゲームよりも、体感や楽しさをより感じることができそうです。

wiiゲームと少し似ている印象もありました。

動画の楽しそうな様子を見ていると、体験してみたくなってしまいますね!><♪

カテゴリー: diary | コメントする

面白いもの!!

中谷です。初投稿です。

今回は面白いものの紹介をします。

先生がCHI2011勉強会というものに出席して見つけた研究です。

CHI2011とはとても有名なhuman-computer interactionの国際会議です。つまり、人間と機械とを相互作用させる研究に関しての発表を、世界中から集まって行うというものです。

そして、その会議で発表された面白い作品がこちらっ↓

iRiS: Multi-User Interaction on Media Facades through Live Video on Mobile Devices

<img class="alignnone size-full wp-image-938" Zumal die schnell zu casino online erklarenden casino Regeln einfach und verstandlich casino online sind und die Spannung in spelautomater pa natet gratis Online Casinos sich sehr gut darstellen lasst. kasino src=”http://unitedfield.net/wordpress/wp-content/uploads/2011/07/スクリーンショット(2011-07-10-16.04.28).png” alt=”” width=”642″ height=”358″ />

ドイツのmunich大学の研究です。目の前にある建物の正面にある光を自分の手元にあるケータイのタッチパネルで操作できるというもの。色を塗ったり、パズルをしたりといった操作が出来ます。2人以上での操作も可能です。

 

↑先ほどの動画の最初の方に一瞬、オペラハウスが出て来ました。以前研究会でも私が個人的に紹介しましたが、5月から6月にかけてシドニーで行われていたVivid Sydneyからの画像です。

オペラハウスの複雑な形を上手く利用した作品です。見てるだけでワクワクしちゃいます!

 

 

カテゴリー: diary | コメントする

夜景星座

夜景星座

スマートフォン上で動く夜景共有SNS

北原壮, 西牟田和子, 竹内祐太 . 2010年

先人達が光の点に関係性を見いだし、人や動物に例え、ストーリーを作っていったように街の光の点で思い思いの形を描いた星座。夜景星座は街の夜景の光で星座を作り、街の物語を描くことができるアプリケーションです。 続きを読む

カテゴリー: research | コメントする

mailTraveller

mailTraveller

メールの通り道を仮想的に可視化するモバイルアプリケーション

竹内祐太 . 2010年

mailTravellerは、送信者が紙飛行機を飛ばすかの様に携帯電話を身体的な動作を用いて操作する。 送信者は、受信者との物理的な距離に応じて、投げる動作を複数回行う必要がある.強く投げれば仮想的なメールの飛行距離が長くなるためその回数は少なく、弱く投げれば飛行距離が短くなるため投げる回数を増やすことができる。そうした身体的な動作の履歴を、Web上の地図サービスおよび写真共有 サービスを用いて可視化することによって、心理的・物理的な距離感を演出している。 続きを読む

カテゴリー: research | コメントする

PrototypeTracer

プロトタイピング支援ツール

北原壮. 2010年.

Processingを利用したプロトタイプ作成時の思考の外在化を手助けを行います。利用者は、与えられた何かしらのお題に対しProcessingを使いながらプロトタイピングを行います。その際、プログラムを実行する度にソースコードからコメントの抽出と実行結果の保存を行います。これを繰り返しながら、一つのプロトタイプを作成し終わった時点で地図のように並べそこから、新たなアイディアや派生するアイディアを考えプロトタイピングを行います。 続きを読む

カテゴリー: research | コメントする

日本ロマンチスト協会

竹内です。

少し前のことになるのですが、夜景星座とmailTravellerを展示中に日本ロマンチスト協会の方からスカウトをいただきました。ちょっとあやしい感じもしますが、素晴らしいクリエイターの方々がたくさんいらっしゃいます。
私、竹内は中西研ではロマンチストの一員としてロマンスの宣教活動して行く所存でおります。

われこそはロマンチストという方はぜひ中西研を履修してください。
ちなみに新規履修希望の方は研究会シラバスをご覧の上、SAの竹内までご連絡ください。
お待ちしております。
s08475yt[at]sfc.keio.ac.jp

カテゴリー: diary | コメントする

ProcessingでVideoChat(DatagramSocket)

中西研のB4関口です。

今回もProcessingネタになってしまうのですが、今回はProcessingを使ったビデオチャットを実装したいと思います。
方針としては、画像をバイト配列に変換して、データグラム通信で別のPCへ送ってあげる感じにします。今回はわかりやすさのために、スレッドとか使いません。

さくっとまずはソースを乗せてしまいます。

[java]
import processing.video.*;
import java.awt.image.*;
import java.awt.*;
import javax.imageio.*;
import java.net.DatagramPacket;

InetSocketAddress remoteAddress;
DatagramPacket sendPacket;
DatagramPacket receivePacket;
DatagramSocket receiveSocket;

Capture capture;

//送信するバイト配列
byte[] sendBytes;
//受信するバイト配列を格納する箱
byte[] receivedBytes = new byte[300000];

void setup() {
size(600,480);

capture = new Capture(this,640,480);

try {
//受信ポート
receiveSocket = new DatagramSocket(5101);
}
catch(SocketException e) {
}
//受信用パケット
receivePacket = new DatagramPacket(receivedBytes,receivedBytes.length);
//送り先
remoteAddress = new InetSocketAddress(“localhost”,5100);
try{
receiveSocket.setSoTimeout(1000);
}catch(SocketException e){
}
}

void draw() {
capture.read();
/* ここから受信 */

println(receiveSocket.isBound());
try {
receiveSocket.receive(receivePacket);
}
catch(IOException e) {
}

Image awtImage = Toolkit.getDefaultToolkit().createImage(receivedBytes);
PImage receiveImage = loadImageMT(awtImage);
/* 受信終了 */

/* ここから送信 */
//バッファーイメージに変換
BufferedImage bfImage = (BufferedImage)(capture.getImage());
//ストリームの準備
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BufferedOutputStream os = new BufferedOutputStream(bos);

try {
bfImage.flush();
ImageIO.write(bfImage,”jpg”,os);
os.flush();
os.close();
}
catch(IOException e) {
}
sendBytes = bos.toByteArray();
try {
sendPacket = new DatagramPacket(sendBytes, sendBytes.length, remoteAddress);
try{
new DatagramSocket().send(sendPacket);
} catch(IOException e){
}
println(“bufferImageSended:”+sendBytes.length+” bytes #2″);
}
catch(SocketException e) {
}
/* 送信終了 */

//描画
image(receiveImage,0,0);
image(capture,width-width/4,height-height/4,capture.width/4,capture.height/4);
}

[/java]

横着して、catchではなにもしません。

setup()

具体的にsetup()内について見ていきます。
[java]
receiveSocket = new DatagramSocket(5101);
receivePacket = new DatagramPacket(buf,buf.length);
[/java]
ここで、受信ソケットのポートの設定をします(適当に5101番)。今回は、localhost内では2つアプリを起動することになるのですが、受信と送信ポートを互い違いにしないと動かないので注意です。(別のIPが振られてるところに飛ばすなら、全く同じアプリを起動させれば通信するはず)
その下で受信したデータをどこに格納するかを指定します。予め用意しておいたbyte[]を渡すと、受信するたびにそこに値が入っていきます。

[java]
remoteAddress = new InetSocketAddress(“localhost”,5100);
[/java]
ここで、送信先とポートを設定します。今回はlocalhostですが、普通にIPでも大丈夫です。

[java]
receiveSocket.setSoTimeout(1000);
[/java]
最後に受信のタイムアウトを設定します。今回は1000ミリ秒=1秒をタイムアウト時間に設定しました。これを指定してあげないと、受信データが来ない場合に永遠に待ち続けてしまうので、適当な値を指定してあげましょう。

draw()

次に描画部分です。まずは受信部。
[java]
try {
receiveSocket.receive(receivePacket);
}
catch(IOException e) {
}
Image awtImage = Toolkit.getDefaultToolkit().createImage(receivedBytes);
PImage receiveImage = loadImageMT(awtImage);
[/java]
凄く簡単ですね。receiveメソッドを呼んであげれば、予め設定しておいたbyte[]にバイト配列が格納されます。ので、それをまずImageにしてあげて、さらにそれをPImageに変換してます。

次は送信部です。
[java]
//バッファーイメージに変換
BufferedImage bfImage = (BufferedImage)(capture.getImage());
//ストリームの準備
ByteArrayOutputStream bos = new ByteArrayOutputStream();
BufferedOutputStream os = new BufferedOutputStream(bos);
[/java]
まず、キャプチャ画像をBufferedImageにしてあげて、ストリームの準備をします。
[java]
try {
bfImage.flush();
ImageIO.write(bfImage,”jpg”,os);
os.flush();
os.close();
}
catch(IOException e) {
}
sendBytes = bos.toByteArray();
try {
sendPacket = new DatagramPacket(sendBytes, sendBytes.length, remoteAddress);
try{
new DatagramSocket().send(sendPacket);
} catch(IOException e){
}
println(“bufferImageSended:”+sendBytes.length+” bytes #2″);
}
catch(SocketException e) {
}
[/java]

次にImageIOを使ってjpgに変換します。そしてストリームに流し込んで、byteArrayにしてあげます。
DatagramPacketにbyte配列と宛先情報を渡して、それをDatagramSocket.send()すると送られます。
わぁ、簡単。

という感じで、Processingで簡単なビデオチャットが出来ます。


カテゴリー: diary, programming | コメントする