将来的にプログラムを作成するための仮想性の可能な使用

プログラマーは仮想現実(VR)でより生産的に作業できると信じています。 なんで? まず、プログラマーは、2次元モニターの代わりに3次元開発環境に囲まれて作業することができます。 第二に、VRとのやり取りは、マウスとキーボードを使用するよりも自然で無料です。



BPの利点、プログラマを支援できる2つの既存のデバイスプロトタイプ、およびプログラミングの分野でBPが期待するものについて説明します。



BPの利点



VRに慣れていない場合:これは大きなステップであり、人々が物理的な世界で通常行われているのと同じ方法でデジタルの世界とやり取りできるようにします。 この相互作用は、人体の機能をより完全に使用するため、原則として、生産性の高い作業、トレーニングコストの削減、ユーザー満足度の向上につながります。



深さ


立体画像は、 Oculus RiftのようなBPメガネで使用される技術であり、目ごとにわずかに異なる画像が表示されます。



画像



したがって、人は実際の世界のように、仮想世界の深さを感じます。 深さは、脳の空間的思考を活性化します。 そしてこれにより、作業の生産性が向上します。



たとえば、Data Mountainツールは、斜めの平面にWebブックマークを保存するために作成されました。 クリエイターは、深みを増すために空間的思考を使用しているため、スピードが向上すると感じました。 マイクロソフトは、「 空間的思考により 、保存と取得の時間とエラーの数が削減された 」ことを示す調査を実施しました。



体の動き


デバイスのセット全体で体の動きを読み取ることができます。 これにより、自己表現の機会が増え、その結果、新しい機会が生まれます。



Oculus Riftのようなメガネは、ターンと頭の位置を読み取ります。 Leap Motion Controllerは、手と指の動きを感知する小さなデバイスです。 Kinectカメラは、脚、腕、体の動きを認識します。 Virtuix Omniの全方向性トレッドミルを使用すると、自分の動きをゲームアバターの動きに変換できます。 Cyber​​ith Virtualizerでは、ジャンプしてしゃがむこともできます。



画像



最近、脳を介してコンピューターを制御する実験が行われ、参加者は脳をスキャンしながらBPの動きを想像するように求められました。 研究者は、70%が歩くことを考えているだけで、仮想の通りを歩くことができることを発見しました。



コンピューターと通信して体の動きをすることにより、ユーザーはこの通信でより自由になります。 そして、さらに説明するように、この余分な自由は、生産性の向上など、非常に実用的なメリットにつながります。



仮想環境の可塑性


BPが役立つ理由の1つは、物理的な環境よりも変更が簡単だからです。 これは、BPのタスクをより迅速かつ安価に完了できることを意味します。



たとえば、アメリカ兵は戦闘シミュレーターで訓練されています。 兵士はある時点で山で訓練を受け、次の時点で砂漠に落ちることができます。 BPでは、これを迅速かつ安価に行うことができます。



BPは、物理世界と仮想世界の最高の特性を組み合わせ、それらを1つに結合するための新しいツールを提供します。



用途



VRの利点を実証するコードをプログラムおよびテストできる既存のVRプロトタイプの例を次に示します。



RiftSketch-ライブコーディング


RiftSketch-Three.jsで3次元シーンを記述することができるBPのプログラミング環境



ツリーは、仮想空間に浮かぶエディターでユーザーがプログラムする再帰アルゴリズムによって作成されます。 鳥は、Twitter APIを介して送信されたツイートです。



画像



Stephen Tanimotoの記事で説明されている「ライブコーディング」は、実行中にプログラムを編集できる開発環境です。 従来の開発サイクルには、編集、コンパイル、リンク、起動の4つのフェーズが含まれます。 ライブコーディングには1つのフェーズしかありません。 プログラムは編集中でも常に実行されます。



このプロジェクトを使用すると、コードに加えられた変更をすばやく確認できます。 また、開発者はどこでミスを犯したかを簡単に確認できると主張されています。



RiftSketchは、空のBPで彼の前を飛んでいるシンプルなテキストエディターをユーザーに提供します。 プログラマーがコードの入力を開始すると、仮想世界が更新され、コードに応じて3次元のシーンが表示されます。 コールバック関数を使用してシーンをアニメーション化できます。 シーンの状態は、オブジェクトの動作を設定することで変更できます。 VRに没頭して見ると、ユーザーはシーンの中にいるかのように感じられます。



キーボードでの作業を容易にするために、デバイスに搭載されたWebカメラは、実世界から画像を送信し、それが仮想世界に重ねられます。



画像

画像



さらに、プロジェクトでは、プログラムテキストをすばやく変更できる情報を入力するためのホットキーやその他のシステムを提供しています。 ジェスチャ処理の助けを借りて、プログラムパラメータの高速な編集と変更が実現します。 たとえば、ジェスチャを使用して、デジタルパラメータの値をすばやく変更できます。これは、座標や回転角度からRGBコンポーネントやオブジェクトの速度に至るまで、何でも示すことができます。



使用例



宇宙船が彗星の表面にちょうど上陸したと想像してください。 10年の飛行後、プローブは日光が届かないような位置にあります。 バッテリーが切れるまでに24時間かかります。 プローブプログラムを変更して、位置を変更できるようにする必要があります。 彼に同行した仲間は、プローブが着陸した表面に関するすべての必要な情報を収集しました。



受信した情報に基づいてBPを作成し、RiftSketchなどのツールを使用して環境を調査します。 プログラムを変更し、シミュレーションがどのように機能するかを観察しながら、あらゆる可能性を検討します。 プローブがサポートの上にしっかりと立ち、さらなる作業に適した位置にあることを確認しようとするたびに、BPでプローブの周りを回ります。 最後に、満足のいくシミュレーションの後、プログラムをレビュー用に送信します。



浸漬-コード検証


Immersionは、メソッドをコードのスニペットとして提示し、スニペットのグループをフロア上のヒープとして表示します。 束を3次元のリングに配置できます。 フラグメントを意味的に増加させる機能により、コードの一部が非常に小さい場合でもコードが読みやすくなります。



レビューアはコードを読み取り、プローブの位置を変更します。 左側には、コードフラグメントのリングがあります。 彗星モデルとフライバイパスは左上にあります。 右上には、コード変更の詳細が表示されます。



レビューアは、最初に画面の中央に現在のコードフラグメントを表示しますが、それに関連付けられている他のフラグメントはフロアのヒープにあります。 BPに焦点を当て、審査官は、フラグメントのヒープと現在のフラグメントとの関係の程度を、それらがどの程度近くにあるか、およびサイズによって評価します。



画像



Immersionは、ソフトウェアパッケージに基づいてフロアをセクションに分割し、パッケージがどの程度変更されたかを示す色で強調表示します。 BPに沿って「歩いている」検査官は、このようなコードの空間表現により、改善された視覚モデルを構築できます。 また、脳は空間環境でよりよく機能するため、プロジェクトの詳細を思い出しやすくする必要があります。



ジェスチャーの相互作用


審査官は、たくさんの破片をつかんで持ち上げ、それをリングに変えて詳しく調べることができます。 これで、最も近いフラグメントを読むか、リングを別のフラグメントにスクロールできます。 調査したフラグメントを上下に移動できます。 アクションをキャンセルする必要がある場合は、テーブルを掃除しているように移動できます。



VRとプログラミングの未来



リモートインタラクション


同じ部屋で作業しているチームは、直接通信できます。 分散型は試してみますが、ビデオ会議は遅すぎ、インスタントメッセージングは​​制限されすぎています。 3次元画像を送信するのに十分な高速データ交換は、プレゼンスの効果を提供します。 Startup High Fidelityは 、90ミリ秒以内の遅延でオーディオとビデオを転送できるインフラストラクチャを開発しています。 さらに、彼らのプログラムはリアルタイムで人の顔をスキャンし、彼の感情を認識し、彼のアバターに転送することができます。











他のモーションおよび体位センサー、Leap MotionおよびPrioVRも、ボディーランゲージの送信に使用できます。



ペアプログラミング


コラボレーションの利点の1つは、2人の開発者が同じコンピューター上で同時にプログラムを操作し、互いのエラーをキャッチできるペアプログラミングの可能性です。 BPは、このような開発者が1つの仮想ワークプレイスの背後で作業できるようにします。 同時にファイルを表示し、話をし、コードの各フラグメントを表示することもできます。



ペア開発


一緒に働くデザイナーはホワイトボードでチャットできます。 Shared BPは、誰もが他の人の行動を確認できる仮想ルームを提供できます。 その中で、ファイルまたはコードの一部またはグラフィックフラグメントをドラッグアンドドロップしたり、プログラムやデータベースの図や構造を描くことができます。



シミュレーション


BPは巨大なシミュレーション機能を備えており、プロジェクト検証の新しい視点を開きます。 工場や工場の設計を行って、ロボットや新しい車のシミュレーションと対話してみてください。



BPの問題と問題



没入度


画像



Microsoft HoloLensのようなデバイスは、現実世界で動作するように設計されており、その上にいくつかの仮想オブジェクトが追加されます-拡張現実で。 DRは物理的な世界を拡大し、VRは人を完​​全に仮想的な世界に没頭させます。 どちらがより便利で生産的ですか?



入力フォーム


ビデオゲームコントローラは、単純なアクションの操作と実行に便利であり、キーボードを使用すると、より複雑なデータを入力できます。 ただし、これらのデバイスでは、ユーザーが実世界と仮想世界の両方を同時に操作する必要があります。 ジェスチャー認識により、現実の世界で作業する必要がなくなりますが、これは非常に面倒です。 BPにユーザーデータを入力する最良の方法は何ですか?



物理的な世界からの分離


BPメガネを着用すると、物理的現実から切り離されます。 同僚から。 これは、物理的なコミュニケーションの可能性を制限し、実際に現実世界との相互作用を制限します。 ウェブカメラをメガネに装着すると、実世界の翻訳を仮想世界に整理するのに役立ちますが、範囲が制限されます。



3D放送


3Dでは想像しにくいタスクもあります。 たとえば、Immersionは2次元のコードを3Dで表現しようとしますが、コードには3番目の次元がないため、その表現は不完全です。 この分野では、特にAndy Coの研究で提案されているように、いくつかの3次元プログラミングを発明することができます



技術的な制限


Oculus Rift Development Kit 2の解像度は1080pです。 テキストを読むことはできますが、通常のプログラミングにはもっと必要です。 Riftを使用するには、瞳孔間の距離を正しく測定する必要がありますが、現在のツールは使用に時間がかかるか不便です。 Riftをメガネで動作するように設定することで、メガネはさらに苦しむ必要があります。



仮想現実はここにあります


二次元開発環境は、人体のすべての機能を使用するわけではありません。 BPは、3次元の画像と体の動きを効果的に関連付けることができる開発環境への一歩です。 これらの利点により、以前は利用できなかったツールを作成する新しい可能性が生まれます。 これらの機能により、生産性が向上し、創造性とユーザーエクスペリエンスが向上します。



ほとんどの場合、3Dで何かを作成する開発者やデザイナーは、VRを使用することで恩恵を受けます。 モニター上の2次元画像は、作業を大幅に制限します。 また、他の開発分野でも3Dを使用することでメリットが得られますが、このためには、できるだけ多くの人がBPを操作するためのツールを作成する必要があります。



仮想性はすでにここにあります。 彼女を助けるために何ができますか?



All Articles