FLIP
FLIP(Freehand & Letters, Instantly Presented)は、授業やセミナーにおいて、学生がスマートフォンから手書きまたはテキストで回答を送信すると、教員の画面にリアルタイムでグリッド状に一覧表示される回答収集・提示ツールである。WebRTC DataChannelにより各端末からストローク座標や文字列データを集約するだけで動作するため軽量であり、ルームIDを共有するだけでブラウザから即座に参加できる。
クイズ番組のフリップボードのように、学生全員の回答が教員の画面にタイルとして並び、書いている途中の様子もリアルタイムで確認できる。教員はプロジェクターへの画面切り替えタイミングを自分でコントロールすることで、「はい、やめ!」のタイミングで一斉に回答を公開するといった演出が可能である。匿名モードと記名モードを切り替えることで、場面に応じた柔軟な運用ができる。
概要
FLIPは、P2P(Peer-to-Peer)技術を使用したリアルタイム回答収集・提示ツールである。サーバーを必要とせず、教員と学生のブラウザがWebRTC DataChannelを通じて直接通信を行う。各端末から送られるデータは手書きのストローク座標やテキスト文字列であり、軽量に動作する。
授業、セミナー、ワークショップ、研修など、学生や参加者の回答をリアルタイムに収集し、一覧で提示したい場面で活用できる。教員は学生が回答を書いている途中の様子を手元の画面で確認しつつ、プロジェクターに映すタイミングを自分でコントロールできる。
特徴
- サーバー不要 — WebRTC DataChannelによるP2P直接通信のため、専用サーバーを用意する必要がない
- ブラウザ動作 — 専用アプリケーションのインストールが不要で、ブラウザだけで動作する
- リアルタイム一覧表示 — 学生の回答が書かれている途中も含めて、教員画面にグリッド状のタイルとして一覧表示される
- 手書き+テキスト対応 — 学生は手書き(指で描画)とテキスト入力を自由に切り替えて回答できる
- 匿名/記名切り替え — 教員が匿名モードと記名モードを切り替えられる。匿名モードでは回答者名が非表示になる
- 繰り返し利用 — リセット操作で全員の回答をクリアし、次の問題にすぐ移行できる。1回の授業で何問でも繰り返せる
- 簡単参加 — ルームID共有、QRコード、URLパラメータの3つの方法で学生を招待できる
- 最大30人 — 一覧性を確保するため、1ルームあたり最大30人の学生が参加可能
システム構成
FLIPは、1台の教員端末(PC推奨)と、最大30台の学生端末(スマートフォン推奨)で構成される。学生の各端末が教員の端末に対して1対1のDataChannel接続を張るスター型トポロジを採用している。教員のブラウザが中央ハブとして機能し、全学生の回答データを集約してグリッド状のタイル一覧に反映する。PeerJSの公開シグナリングサーバーがICE候補の交換を仲介するが、接続確立後のデータ通信はP2P直接通信となる。
通信データの種類
FLIPでは、同一のDataChannel上で以下の種類のデータが送受信される。データ種別は type プロパティで判別される。
| データ種別 | 方向 | JSON形式 | 説明 |
|---|---|---|---|
| 参加 | 学生→教員 | { type: "join", name: "山田太郎" } |
ルーム参加時に名前を送信 |
| 手書きストローク | 学生→教員 | { type: "stroke", points: [[x,y], ...] } |
手書きの1ストローク分の座標配列 |
| 手書きクリア | 学生→教員 | { type: "clear_canvas" } |
消しゴムによるキャンバス全消去 |
| テキスト | 学生→教員 | { type: "text", content: "回答内容" } |
テキスト入力の内容 |
| リセット | 教員→学生 | { type: "reset" } |
全員の回答をクリアし白紙に戻す |
使い方
手順1:教員の準備
- 教員用のデバイス(PC推奨)でFLIPにアクセスする
- 「🎓 教員」をクリックする
- 「ルームを作成」ボタンをクリックする
- 表示されるルームID(英数字6文字)を学生に共有する
手順2:学生の接続
学生は、各自のスマートフォン・タブレット・PCで以下を行う。
- FLIPにアクセスする(URLを直接入力、またはQRコード読み取り)
- 「✏️ 学生」をクリックする
- 名前を入力する
- 教員から共有されたルームIDを入力する
- 「ルームに参加」ボタンをクリックする
- 「接続済み」と表示されれば回答の入力・送信が可能
?room=XXXXXX 付きのリンクやQRコードからアクセスすると、自動的に学生モードになり、ルームIDが入力された状態で表示される。学生は名前を入力して参加ボタンを押すだけでよい。
手順3:回答の入力と確認
学生は画面の入力エリアで手書きまたはテキストにより回答を入力する。入力内容はリアルタイムで教員の画面に反映される。教員は手元のPC画面で全員の回答をタイル一覧として確認できる。
手順4:回答の公開
教員は任意のタイミングでプロジェクターの表示をFLIPの画面に切り替え、学生全員に回答一覧を見せることができる。普段はスライドを映しておき、「はい、やめ!」のタイミングで画面を切り替える運用を想定している。
手順5:次の問題へ
教員が「リセット」ボタンをクリックすると、全学生の回答がクリアされ、学生の画面も自動的に白紙に戻る。次の問題にすぐ移行できる。
教員画面
教員画面は、学生全員の回答をリアルタイムで一覧表示するダッシュボードである。手元のPCで回答状況を確認しながら、適切なタイミングでプロジェクターに映して学生全員に公開する。
画面構成
| 要素 | 説明 |
|---|---|
| ルームID表示 | 現在のルームIDを表示。「コピー」ボタンでクリップボードにコピー可能 |
| QRボタン | 参加用QRコードをモーダルで表示 |
| 接続人数 | 現在接続中の学生数をリアルタイム表示(例:「12人接続中」) |
| 匿名/記名切り替え | 匿名モードと記名モードをトグルで切り替え |
| 回答タイル一覧 | 全学生の回答をグリッド状に一覧表示するメインエリア |
| リセットボタン | 全員の回答をクリアし、白紙に戻す(確認ダイアログあり) |
| 終了ボタン | セッションを終了し、全学生との接続を切断 |
回答タイル一覧
学生の回答は、グリッド状のタイルとして画面に敷き詰められる。1タイルが1人の学生の回答に対応する。
| 項目 | 仕様 |
|---|---|
| レイアウト | グリッド状のタイル表示。接続人数に応じてタイルサイズが自動調整される |
| 最大表示数 | 30人(1ルームの最大参加人数) |
| タイル内容 | 手書きの場合はキャンバスの描画内容、テキストの場合は入力文字列を表示 |
| 名前表示 | 記名モード時のみ、タイルの上部に学生の名前を表示 |
| リアルタイム更新 | 学生が手書き中・テキスト入力中の内容がリアルタイムで反映される |
| 空タイル | 未回答の学生のタイルは「未回答」と表示される |
グリッドレイアウトの自動調整
接続人数に応じて、タイルの列数とサイズが自動で調整される。
| 接続人数 | 列数(目安) |
|---|---|
| 1〜4人 | 2列 |
| 5〜9人 | 3列 |
| 10〜16人 | 4列 |
| 17〜25人 | 5列 |
| 26〜30人 | 6列 |
匿名モード/記名モード
| モード | 表示 | 用途 |
|---|---|---|
| 匿名モード | タイルに名前を表示しない。回答内容のみが並ぶ | 学生が気軽に回答できる。正解・不正解を気にせず書ける |
| 記名モード | タイルに学生の名前を表示する | 教員が個別の理解度を把握したい場面。指名して深掘りする場面 |
切り替えはいつでも可能で、切り替えた瞬間に表示が反映される。
学生画面
学生画面は、スマートフォンでの操作に最適化された回答入力画面である。手書きモードとテキストモードを自由に切り替えて回答を入力できる。
画面構成
| 要素 | 説明 |
|---|---|
| 接続ステータス | 教員との接続状態を表示(「接続済み」「接続中...」「切断」) |
| モード切り替え | 「✏️ 手書き」「⌨️ テキスト」のタブで入力モードを切り替え |
| 入力エリア | 手書きモード時はキャンバス、テキストモード時はテキスト入力欄を表示 |
手書きモード
| 項目 | 仕様 |
|---|---|
| キャンバス | スマートフォン画面の幅いっぱいに表示される描画エリア |
| ペン色 | 黒一色(固定) |
| ペン太さ | 固定(変更不可) |
| 消しゴム | キャンバス全体をクリアする消しゴムボタン |
| 入力方法 | 指でタッチして描画。タッチの軌跡がストロークとして記録・送信される |
| データ送信 | 1ストローク(指を離したタイミング)ごとに座標配列を教員に送信 |
テキストモード
| 項目 | 仕様 |
|---|---|
| 入力欄 | テキストエリア。プレースホルダーに「回答を入力...」と表示 |
| 入力方法 | キーボードで文字を入力 |
| データ送信 | 入力内容が変更されるたびに(デバウンス処理あり)テキスト全体を教員に送信 |
モード切り替え
| 項目 | 仕様 |
|---|---|
| 切り替え方法 | 画面上部の「✏️ 手書き」「⌨️ テキスト」タブをタップ |
| 切り替え時の挙動 | 切り替え前の入力内容はクリアされる。教員画面のタイルも新しいモードの内容に更新される |
| 自由切り替え | いつでも何度でも切り替え可能 |
リセット時の挙動
教員がリセットを実行すると、学生の画面は以下のように変化する。
| 項目 | 挙動 |
|---|---|
| キャンバス | 白紙にクリアされる |
| テキスト入力欄 | 空欄にクリアされる |
| 入力モード | 現在のモード(手書きまたはテキスト)が維持される |
| 通知 | 「リセットされました」と短時間表示される |
手書きデータの通信仕様
手書きデータは画像ではなく、ストローク(線の軌跡)の座標配列として送信される。これにより通信データを軽量に保つ。
ストロークデータ
| 項目 | 仕様 |
|---|---|
| データ形式 | 座標ペア [x, y] の配列 |
| 座標系 | キャンバスの左上を原点 [0, 0] とした正規化座標(0.0〜1.0) |
| 送信タイミング | 1ストローク完了時(指を離したタイミング)に送信 |
| 1ストロークのサイズ | 座標数に依存するが、通常数百バイト〜数KB程度 |
座標を正規化(0.0〜1.0)することで、学生のスマートフォン画面サイズと教員のPC画面タイルサイズが異なっていても、正しく描画を再現できる。
[0.1, 0.8][0.5, 0.4][0.9, 0.3]消しゴム操作
| 項目 | 仕様 |
|---|---|
| 動作 | キャンバス全体をクリアする(部分消しゴムは非対応) |
| データ送信 | { type: "clear_canvas" } を教員に送信 |
| 教員画面 | 該当学生のタイル内の描画が全てクリアされる |
教員画面での描画再現
教員画面の各タイル内にはミニキャンバスが配置され、学生から受信したストロークデータを順次描画する。正規化座標をタイルサイズに変換して描画するため、タイルサイズが変化しても回答内容は正しく表示される。
QRコード・ルーム共有
共有方法
教員は以下の3つの方法で学生にルームを共有できる。
| 方法 | 操作 | 推奨場面 |
|---|---|---|
| ルームIDを口頭で伝える | 画面に表示された6文字のIDを読み上げる | 少人数の教室 |
| コピーボタン | 「コピー」ボタンでIDをクリップボードにコピーし、チャット等で共有する | オンライン授業 |
| QRコード | 「QR」ボタンでQRコードを画面に表示し、プロジェクターに映す | 教室・セミナー会場 |
URLパラメータによる自動参加
FLIPのURLにクエリパラメータ ?room=XXXXXX を付加すると、学生はアクセスするだけで自動的に学生モードになり、ルームIDが入力された状態で表示される。
例:
このURLをチャットに貼り付けたり、QRコードにしたりすることで、学生はルームIDの手入力なしで接続画面に到達できる。名前の入力と「ルームに参加」ボタンのクリックのみで参加が完了する。
トラブルシューティング
接続できない
- すべてのデバイスがインターネットに接続されているか確認する
- ルームIDが正しく入力されているか確認する(英数字6文字、大文字で入力)
- ブラウザを最新版に更新する
- 教員が先にルームを作成しているか確認する
- 企業や学校のファイアウォール環境では、WebRTC通信がブロックされる場合がある
回答が教員画面に表示されない
- 学生が接続済みか確認する(教員画面の「○人接続中」を確認)
- 学生が回答を入力しているか確認する
- 手書きモードの場合、指を離したタイミング(1ストローク完了時)でデータが送信される
手書きの描画がずれる
- ブラウザのズーム倍率が100%になっているか確認する
- ページを再読み込みして再接続を試みる
「ルームが見つかりません」と表示される
- ルームIDの入力ミスがないか確認する
- 教員がルームを作成済みか確認する
- 教員がブラウザを閉じたり、セッションを終了していないか確認する
- 接続試行はタイムアウトするため、再度試す
一部の学生だけ接続できない
- 該当デバイスのネットワーク接続を確認する
- ブラウザのキャッシュをクリアして再試行する
- 別のブラウザで試す(Chrome、Edge、Safari、Firefoxに対応)
- モバイルデータ通信とWi-Fiを切り替えて試す
学生画面で「接続中...」のまま進まない
- ネットワーク接続を確認する
- ルームIDが正しいか再確認する
- ページを再読み込みして再接続を試みる
セッションが突然切断された
- 教員がセッションを終了した可能性がある
- ネットワーク接続が不安定な場合に切断されることがある
- 「トップに戻る」ボタンを押して最初からやり直す
リセットされたが白紙に戻らない
- ネットワーク接続が不安定で、リセット信号が届かなかった可能性がある
- ページを再読み込みして再接続する
注意事項
- インターネット接続が必要(PeerJSシグナリングサーバーへの接続およびP2P接続の確立に使用)
- 通信が不安定な環境では、手書きストロークの反映に遅延が発生する可能性がある
- 教員がブラウザを閉じると、全学生との接続が切断される
- 1ルームあたりの参加人数は最大30人。30人を超える授業では、複数ルームに分けて使用する
- 回答データはブラウザのメモリ上にのみ存在し、外部サーバーに保存されることはない
- リセット操作で回答は完全に消去され、復元できない。回答を記録として残したい場合は、リセット前にスクリーンショットを撮影する
- 手書きモードの消しゴムはキャンバス全体のクリアのみ対応。部分的な消去には対応していない
- モード切り替え(手書き↔テキスト)を行うと、切り替え前の入力内容はクリアされる
- NAT越えが必要なネットワーク環境(企業VPN内など)では、P2P接続が確立できない場合がある
- QRコードリーダーで正しく読み取れない場合は、URLパラメータ付きリンクを直接共有すること