4次元コンテンツサイエンスアゴラ出展の記録

この記事は、数学カフェ_4次元コンテンツ出展の記録 Advent Calendar 2016 の、13日目となる記事です。
こんにちは。バーテンツチノコ(仮) の近藤です。
六本木のBARで夜な夜な、コードは書くけどカクテルは作れないバーテンダーをやっています。

私は今年、数学カフェのメンバーとして、11月5, 6日のサイエンスアゴラに出展をしてきました。
(※個人での参加であり、いかなる所属団体・DMMと関係ありません)
(※当記事は研究された事実を示すものではなく、実験中の試みになります)

こちらが展示の様子です。

何だか椅子に座ってヘッドマウントディスプレイを被っている人がいたり、
「4次元を見てみよう」というタイトルと、ポスターにたくさんの文字が書いてあったり。
ヘッドマウントディスプレイは、被ると立体が目の前に出現したりするのですが、それらだけ1人で見ても「???」ですよね。

コンテンツを展示するにあたっての口頭説明(接客)は必須です。

というわけで、本日は、「サイエンスアゴラ 出展当日の口頭説明」というテーマでブログを書きます。
実際にブースに遊びに来たようなつもりになってお付き合いいただければ幸いです。

====================

まず、「立体視」とは、どういう仕組みでしょうか。

私たちが目でものを見るときは、2次元の像しか見えないにも関わらず、目で見ているものがどんな立体なのかを知覚することが出来ます。

 

以下の像1枚だけを見ると、

赤で囲んだ面を手前と見た「立方体」か、黄色で囲んだ面を手前と見た「ちょっと歪んだ6面体」かの2通りに見えてしまいます。

これを「立方体」に見るためにはどうすれば良いでしょうか。

ものが立体に見える要因はいくつかありますが、影響が大きい要因を紹介します。


■左右の目の視差

試しに、何か物体を目の数十cm前に用意して、右目と左目を片目ずつパチパチつぶって見てみると、目の位置のズレから、同じものを見ているのに違う像が見えるはずです。

たとえばサイコロであったら、同じ場所にあってもそれぞれの目にはこんな風に違う像に見えたのではないでしょうか。

    

(※ちなみに、↑の画像で、「交差法」での立体視ができます)

私たちは、その2つの視点の差から情報を得て、頭の中で奥行きを認識します。

★ポイント: 左目と右目でそれぞれで別の角度から立体の像を見ると、脳内ではひとつの立体に見えます
では、同じように2つの目でものを見るときに。
現実に両目で見た時のように3次元上の距離の視差を作るだけではなく、4次元の方向(!)にも少しだけ視差を作ってものを見たとしたらどうなるでしょうか。

4次元な立体視(!?)が出来るのでは?

そんな仮説も入れ、今回の展示物は作成されました。

======

では、4次元の方向に傾けるというのはどういうことでしょう。

 

まずこちらの折り紙。

壁(2次元)に画鋲ではりつけてくるくると回すと。
角度が変わっていくけど、形は変わらず正方形ですね。

では同じ折り紙を、1次元上げて3次元空間上でくるくる回すとどうなるでしょうか。

正方形だった折紙が、ゆがんで台形になっていきます

(※↑の画像でも、「交差法」での立体視ができます)

 

次に1次元あげてこちらのサイコロ。

3次元上でくるくると回すと。
角度は変わっていくけど、形は変わらず立方体ですね。

では同じサイコロを、1次元あげて4次元空間上でくるくる回すとどうなるでしょうか。

折り紙のときと同じように、
立方体だったサイコロが、ゆがんで四角錐台になっていきます

(※↑の画像のように立体物が並んでいれば、「交差法」での四次元立体視が・・・出来るかも!?)

 

今回の展示物であるOculus Riftは、装着すると3次元の物体と4次元の物体が表示され、そのとき視点があたっている物体をゲームコントローラで操作してぐりぐり回転させることが出来るというものでした。

「回転」とは。先ほどサイコロをくるくる回したような3次元空間上での回転ボタンとは別に、今回は四次元の方向へ回転させるためのボタンと、左目と右目それぞれに見える物体を変化させ、四次元の立体感を出していくためのレバーを準備しました。

レバーは、NINTENDO 3DSの右についている、立体感を調節するためのレバーをご想像いただくと、わかりやすいかと思います。両目の距離を、4次元の方向に離していきます。

レバーを調節することで、従来の立体視とは違い、左目と右目にそれぞれ、「同じ形なんだけど4次元の方向にずれていく物体」が見えます。

4次元の方向にずれる時のサイコロが立方体から四角錐台になるような動きは、3次元仕様の脳をもつ私たちには直感的ではない動きですし、明らかに別の物体である「立方体」と「四角錐台」を両目ばらばらに見ることも大分気持ち悪い感じです。

ですが、その四次元方向にずれた「左目に見える物体」と「右目に見える物体」を無理やり同じ物体と思いこんで見てみることで、四次元のずれはこういうことなんだな、と認識することが出来れば・・・そんな期待を持って開発しました。

実物は、現在どこかに展示しているわけではないので見ることは出来ませんが、また発表の機会がありましたら、是非体験しに来てください。

以上、視覚から4次元を体感してみよう!といった展示での口頭説明でした。
たまたま持っていた小道具(折り紙やルービックキューブ)を使って、なるべく理解しやすく説明するよう努めました。

最後に個人の感想を書きますと、両眼の視差で四次元立体視が本当に出来るのかどうかは、いまだに半信半疑ではありますが、
VRを用いて4次元物体や3次元物体を4次元空間上で眺め続けること、自分で自由に操作することで、高次元への理解がより深まったと感じております。

素敵な企画に関わることが出来てよかったです!

ご協力いただいた方、ご来場くださった方、どうもありがとうございました!!!

PPAP – Printing Performance Achitecture Protocol

そろそろ忘年会シーズンです。
PPAP、練習してますかー?

ちなみにPPAPというのは、HPの独自プロトコルです。
詳細は以下を読んでください。

PPA – HP Printing Performance Architecture
http://www.undocprint.org/formats/page_description_languages/ppa

 

英語は苦手ですよね?
最近パワーアップしたというGoogle翻訳を使ってみました。

PPAPをGoogle翻訳

英語

The PPA protocol is actually composed of two protocols: a lower-level packet protocol called VLink and the Sleek Control Protocol (SCP). The VLink protocol regulates all data transferred back and forth between the printer and the computer. SCP sends command sequences to tell the printer to do things like load a sheet of paper, eject, and print a sweep.

Although PPA is a bi-directional protocol, I have mainly concentrated on its uni-directional component. It is not required for the host to be aware of the bi-directional nature of the device, which makes this easy to do.

All values are stored in big endian format.

日本語

PPAプロトコルは実際には、VLinkと呼ばれる低レベルパケットプロトコルとSCP(Sleek Control Protocol)という2つのプロトコルで構成されています。 VLinkプロトコルは、プリンタとコンピュータ間で転送されるすべてのデータを制御します。 SCPは、コマンドシーケンスを送信して、プリンタに用紙のセット、取り出し、掃引などの処理を指示します。

PPAは双方向プロトコルですが、私は主にその一方向コンポーネントに集中しています。 ホストがデバイスの双方向性を認識することは必須ではありません。このため、これを簡単に行うことができます。

すべての値はビッグエンディアン形式で格納されます。

 

ほぼ完璧な翻訳。
Google翻訳すげー、というネタでした。

忘年会で無駄な小ネタを披露してツルツル滑って欲しいな、と願っています。

「NTT西日本杯」第6回 ICTトラブルシューティングコンテスト 問題解説 “調子が悪いんでしょうか?”

こんにちは、saiです。
「NTT西日本杯」第6回 ICTトラブルシューティングコンテスト(以下、トラコン)にて運営委員を務めさせて頂きました。

第6回トラコンでは15問の問題が学生の手によって出題されました!

今回は、私が担当した問題の内一つを紹介していきます。

Continue reading “「NTT西日本杯」第6回 ICTトラブルシューティングコンテスト 問題解説 “調子が悪いんでしょうか?””

DEC 21140 (tulip.c)のおもいで

注意: 読んでも時間の無駄、思い出話です。35歳未満の方はそっと閉じていただければ幸いです。

15年前 「まぁまぁ」定番のNIC

 10年、いや15年以上前の Linux。コンピュータ屋さん以外にもやっと Linux というものが認知されはじめ、流行のディストリビューションは Slackware から Red Hat Linux へ。「どうやら最近の Linux は結構ちゃんと動くらしいね」という巷での噂 …そんな頃を思い出すモノが会社の廃棄物置き場で発見され、思わず救出しました。

dec21140
DEC 21140

 もしかしてこれは DMM が東京進出した際にはじめて導入されたサーバに入っていたNICかも…?

 これは DEC の 21140 というチップが載った 100BASE-TX の NIC です。tulip というコード名のほうが通りがよいでしょうか。当時 Linux での NIC といえば、カニ(Realtek RTL8139シリーズ), 3com 3c905シリーズ、Intel PRO/100(8255x), そしてこの DEC の 2114x 系列 (tulip/de4x5) がポピュラーでした。他にもあることにはありましたが、Linux においての選択肢は多くありませんでした。

  1. Intel eepro100, 3com 3c905: 高級、ちゃんと動く
  2. DEC 21140: そんなに高価じゃない(6,000円程度と記憶) まあまあちゃんと動く
  3. RTL8139C or lator: 安価(2,000円?), やたらCPUを食う、運が悪いとNICが止まってOS再起動、カーネル刺さる
  4. それ以外: 安価、動くかわからない、カーネル刺さる

 この中で “まぁまぁ” の NIC は DEC 21140, これが定番でした。

安いNICはよくカーネルがpanicした

 安いNICはろくなことがありませんでした。CPUを食う、kernel panic で死ぬのは高負荷時とも限らず再現性が謎、速度が超遅くなる、NICの存在ごと沈黙、たまたま動いていてもカーネルをアップデートするとおかしくなるなどなど。珍しいパターンでは ネットワークに何かしら流れていないとCPUが食われてしまう(トラフィックのグラフと CPU使用率のグラフが対称っぽい形を描く)、などなど、さまざまな珍現象に見舞われました。

 FreeBSDの rl, RTL8139 ドライバのソースに「史上最低のひどいチップだ」のようなコメントが書かれていたことも話題になりました。

dec21140_2
DEC 21140 裏 (ぷらっとホーム)

 なんと、ぷらっとホームのシールが貼られています。DMM が東京進出した際のサーバがぷらっとホームの3Uのものだと聞き及んでおりますので、それに入っていた NIC でしょうか。

 tulip 互換をうたうチップはいくつか存在し(NETGEAR, ADMtek, なんかがあったような), ドライバのソースは互換チップのバグ ワークアラウンドで肥大化していた記憶があります。でも互換チップもちゃんと動かなかったような…

 この頃の PC-UNIX はメジャーな製品(≒ブランド品)しか動かず、貧乏学生のお財布には厳しかったものです。今日 2016 年 では Linux でもだいたいドライバはあるし、カーネルを巻き込んで死ぬようなものはとても少なくなりました。仮想化もあるし。何かハードウェアを買おうとする前に、Linux で動くのかどうか調べまくる人も減ったでしょう。


 ――なんて話を同年代の方々にしたら「チューリップ? そんなのあったなー」「俺は BSD だったし 21140 に特に思いdeはない」など しょっぱい反応……。そんな方々にも以下のカードはお気に召していただけたようです。

adaptec AHA-2940U2W
adaptec AHA-2940U2W

写真を撮ったあとそっと廃棄物置き場へ戻しました…。Interop 2016 でインターネットの未来を見たあと、ちょっと昔の思い出に耽っていました。
「歴史って、人類や生命全体の “おもいで” に違いないのよ」

人狼GM LINE BOT

はじめまして!バーテンツチノコ(仮) の近藤です。六本木のBARで、カクテル作れないバーテンダーをやる傍らで、夜な夜なプログラミングをしています。

人狼をみんなで集まってやる時、人間GM(ゲームマスター)の代わりに司会者をやってくれるLINE BOTを作りました。その名もとろろ人狼BOTです。

今日はそのBOTの紹介をしたいと思います。

 

 

 

使用イメージはこんな感じ

 

とろろ人狼BOTを友達登録し、代表者1名(以後、便宜上「GM」と表記)が「村」を準備し、参加者が集まったら開始合図を行います。

開始後は、会話をしつつ、各々がBOTとやりとりをしながらゲームを進行していきます。

 

ゲームの流れを順を追ってご紹介します。

1.友達登録すると、名前を聞かれるので答えます

2.左上の、「村を作成」をタップすると「村」を作成できるので、友達にQRコードを教えて参加してもらいます

※参加する側(うさぎさん)のLINE(先ほどとは別人物のLINEです)

3.人数を確認。こんな感じに5人集まりました

4.村を開始するとこんな感じ

村人3人、人狼1匹、占い師1人がいるそうです。自分(とろろ) は占い師でした。このメッセージは全員宛にアナウンスされます

 

~~ここから、実際には話し合いが始まります~~

うさぎ『ねこさんが人狼かな?』

ねこ『いや、ねずみさんじゃないかな』

ひつじ『そうかなあ』

ねずみ『うさぎは人間だと思うな』

~~~~~~~~~~~~~~~~~~~~~

(※話し合いは一例です。実際にはもっと殺伐とする可能性があります)

5. といった話し合いの結果、自分が人狼だと疑わしいと思ったうさぎさんに投票することにしましょう

6.皆の投票が済んだら、GMは「時間を進める」コマンドを使います。この時、未投票の人がいると警告が表示されます

うさぎさんが処刑されてしまいました。(※うさぎさんは、実は村人でした)

7.夜が来ます。夜の間は誰とも会話禁止で、各々が淡々と自分の能力を使います
自分(とろろ) は占い師なので、占い先をセットしましょう
ひつじさんを占いたいと思います

8.全員が能力をセットしたら、翌朝に時間を進めます

ねずみさんが人狼に殺されてしまいました。
占いの結果、ひつじさんは人狼だったので、他のメンバーにそれを伝え、ひつじさんへ票を入れてもらうように説得します。

9.投票を行い、時間を進める

10.決着

13393054_1144158248940477_1216561269_n

 

いかがでしたでしょうか。キャプチャを淡々と貼り付けただけの紹介でしたが、ゲームの流れは以上です。

★LINEがインストールさえされていればアプリインストール・ユーザ登録不要

★それぞれがBOTを通じてコマンド入力を行うので、自分の挙動を隠したりする必要がなく進行がスムーズ

★GMが不要になるので、全員で同じ情報量・立場でゲームに参加出来る

何度かテストプレイをしていますが、上記の点でたいへんご好評をいただいております!

 

とろろ人狼Bot(@tororo_jinro) というTwitterアカウントを作っております。

公開出来ると判断でき次第、LINE QRコードを公開しますので、良かったらフォローしてください(๑´ㅂ`๑)

 

ではでは

 

 

補足:GM用 チートシート