進化する授業@コンピュータグラフィックス

 この授業では、CGを描画するために利用されている技術を学び、習得し、それを応用する力を身につけることを目標としています。ですので、授業や課題ではOpenGLを用いてCGを描画するプログラムを作成したり、OpenGLの関数の機能を自作するなどといった実際に手を動かして取り組むものが多く、CGその周辺分野に興味を持つ学生であれば退屈しない授業だと思います。

 こちらは実際の授業の様子です。

今はVRなどでも利用されている、立体表示の仕組みの解説でしょうか。なんの変哲もない授業、、に見えますが実は普通ではないんです。

 CGの授業ではコロナ禍にある2022年現在、対面とオンラインを組み合わせたハイブリッド授業が取り入れられています。私も気分によって両者を使い分けて受講しているのですが、Zoomで行われているオンライン講義の様子がこちら。

画面の左半分には横長の黒板全体を二つに分けて表示し、右半分には先生が書いている場所が拡大表示されていることが見て取れるかと思います。Zoomの画面がこれであれば先生が書いた文字や図も見やすいですし、万が一書いているところを見逃しても全体が写っているので安心できますね。ですがこれ、カメラを操作している人がいたり、後から映像を編集して作ったものではありません。先生が開発したシステムを使って実現しています。

 仕組みをざっくりとご紹介しましょう。

一枚目の写真にも右端にすこーしだけ写り込んでいるのですが、このような機材が教室の前に置かれています。ただのカメラのようにも思えますが、Kinectという体の動きを検出できるデバイスです。下の動画はKinectを使用した別のシステムで、体の動きを綺麗に3Dアバターに反映させることができていることが分かるかと思います。

これと同じようにして手の正確な位置を検出し、それに合わせてカメラの拡大位置を変更することで先ほどの動作を実現しています。

 ですがこのシステムにたどり着くまでには試行錯誤もありました。初めのうちはジェスチャを検出して黒板の映す位置を変更する仕組みになっていたのですが、ジェスチャがうまく検出されないことがあったり、逆に意図しない仕草がジェスチャとして判定されて関係のない位置が映し出されてしまうなんて事もありました。それから数回の授業を経て現在の仕様に落ち着く事になりました。

また、2019年度は下のリンクにあるような、また違う方向性の授業も行っていらっしゃったそうです。

 それから去年度の授業から導入されたのが、、

このアバターを使った授業は今年度もあったのですがやっぱり見ていて楽しいですよね!

 このようにこれまでの大学の授業から少しずつ進化しているコンピュータグラフィックスの授業。そこのあなたもぜひ体験してみてはいかがでしょうか?

CED TA 活動報告 (2021年11, 12月)

こんにちは。はじめまして。2021年度 Ⅰ類(情報系)計算機室(CED)のTAの上原です。簡単に自己紹介しますと、電通大の修士1年でカーリングの研究をしています。カーリングは1時間ほど体験しただけですが…。

とりあえずこの記事の趣旨である2021年11月と12月のCED TAの活動報告をしたいと思います。

活動報告(2021年11, 12月)

10月末の段階で大学の授業は対面主体方式(対面を主体としつつも、遠隔での授業参加も可能な方式)に切り替わりました。それを受けて、11月は遠隔利用でのトラブルシューティングに加え、CEDのPCを対面で利用した際のトラブルの対応も行いました。具体的な授業名では情報領域演習第二、信号処理実験、MICS実験第二の対応を主に行いました。トラブルの内容はPCがフリーズしたとかそういった内容や、遠隔でPCのGUIを利用するVNCというツールに関連するものが多かったです。

余談:CMakeの紹介

研究では主にC++を用いているのですが、C++を使うにあたって便利な「CMake」というツールを最近知ったので、(書くことも無いので)紹介したいと思います。

簡単に言うとCMakeは様々なプラットフォームでC/C++をビルドするためのツールです。CMakeを使わないと、LinuxではMakefile、WindowsではVisual Studioのソリューションやプロジェクト、MacではXCode(よく知らない)などでビルド設定ファイルを作る必要があり、複数のプラットフォームでC/C++をビルドするのは煩雑になるのですが、CMakeを用いると一つのビルド設定ファイルを作るだけで様々なプラットフォームでビルドできるようになります。なので、複数のプラットフォームでC/C++をビルドしたい人は覚えておいて損は無いと思います。また、多くのC/C++のオープンソースのライブラリもCMakeを用いているので、C/C++ビルド設定ファイルのディファクトスタンダードだと思われます。

CMakeの欠点があるとすれば、日本語の文献の情報が古いため、新しいバージョンの習得には英語を読む必要があることです。現在出回っている情報にはCMakeバージョン2準拠のものとバージョン3準拠のものがありますが、日本語の文献は大体古いバージョン2のものです。バージョン2は色々不自由なので、バージョン3を使うべきなのですが、日本語で調べてもほぼ出てきません。マイナーな技術あるあるですが、こればかりは仕方ないです。

最後にCMake(バージョン3)を利用する上で大変参考になる文献を置いておきます。

  1. An Introduction to Modern CMake: https://cliutils.gitlab.io/modern-cmake/
  2. Professional CMake: A Practical Guide: https://crascit.com/professional-cmake/

1.はCMakeで普通のアプリケーションを作りたい方には情報がまとまっていて、とても良い入門サイトと思います。2.は有料ですが、CMakeでオープンソースのライブラリを作りたい方は購入して読むと救われます。私は救われました。

英語を読むのは大変ですが、習得できればどのプラットフォームでも同じ方法でC/C++プロジェクトを作れるので、めちゃくちゃ便利です。CMakeを習得して良いC/C++ライフを送りましょう!

以上、上原でした。

前期CED TAを振り返って(2021年度版)

2021年度 Ⅰ類(情報系)計算機室(CED)のTAの岡崎です.今回は,CEDにおける今年度前期のTA業務について軽く振り返ります.

本記事執筆時点でのCEDのHP (https://sites.google.com/gl.cc.uec.ac.jp/ced/) の様子

CED,CED TAについて

CEDについてはⅠ類の学生さんであれば知っている方も多いのではないでしょうか.主にⅠ類・I専攻(情報・ネットワーク工学専攻)の学生向けの計算機室として,西9号館2階に”CED”が設置されています.CEDの紹介動画

私たちCED TAは,主に計算機室の開館・閉館作業や,対面で利用者の質問対応を行う予定でした.しかし,新型コロナウイルスの影響で,昨年度と同様,オンライン主体での取り組みに向けた補助業務を行っています.

CED TA Zoomオフィスアワー,HP管理

昨年度より,引き続き行っている取り組みとして,”Zoomオフィスアワー”があります.これは,決まった時間にCED TAがZoomのミーティングルームを開放しておき,時間内の好きなタイミングで学生の皆さんから受けた質問に対応,補助を行うものです.また,遠隔での実験や演習の授業の際にCED TAがサポートに入ることもありました.

皆さんから多く寄せられる質問はCEDのHPにまとめています.特に,遠隔実験,演習で使用するMobaXtermやVNC接続関係の質問が多く寄せられました.

CEDのHP ユーザからの質問 (https://sites.google.com/gl.cc.uec.ac.jp/ced/faq)

また,CED HPの管理を行っており,特にCEDのGUI環境を実行するためのVNCの利用方法についてHP上にまとめています.今学期は皆さんからの質問を受け,VNCの設定方法をブラッシュアップし,設定方法についての動画を作成しました.動画はWindowsはこちらで,Macはこちらです.※UECクラウドアカウントのみ閲覧可能です.

FPGAボードの作成

今年度は昨年度同様,情報数理工学/コンピュータサイエンス実験第一のJ1実験にて学生の皆さんはプログラムで回路を設計するFPGA,およびそれを操作するFPGAボードを遠隔で利用しました.私たちCED TAは半田付けを行い,FPGAボードを作成しました.皆さんの中にはこちらのボードを遠隔で利用した方もいらっしゃるのではないでしょうか.

J1実験で使用するFPGAボード

J1実験のオンライン化の取り組みについては下記の記事をご覧ください.

対面へ向けての取り組み

本記事執筆時点(2021/11/1)では,新型コロナウイルスの感染者数が減少傾向にあり,大学の授業も対面主体方式へと切り替わりました.そのような動きを受け,CEDにおいても対面化に向け計算機の消毒,清掃などを行っています.対面で利用可能な端末は限られていますが,現在は遠隔,対面のどちらの形式でも利用可能にし,皆さんが柔軟に選ぶことができるようにサポートしています.対面では既に十数人の学生の方が来室し,友人同士で相談して実験や演習を行っています.

CEDの計算機
CED TAが学生のサポートを行っている様子

後期は対面化も進み,Ⅰ類1年生の利用も増えます.私たちCED TAは今までCEDを使ったことのない方からの質問や,遠隔利用時のトラブルなどにできる限り答え,サポートいたします.活発に議論しながら計算機に向かう皆さんの姿を見られることを楽しみにしています.今後もCED TAをよろしくお願いします.

I類(経営・社会情報学プログラム)経営・社会情報学実験(月2, 3限)ガイダンスについて(2021.10.1掲載)

経営・社会情報学実験(月2, 3限)が10月4日から始まります.

WebCLASSにログインし,2021 経営・社会情報学実験のコースを追加してください.

10月4日 2限目開始時間になりましたらオンライン(ZOOM)でガイダンスを行いますので,参加してください.

ZOOMのURL情報はWebClassに掲載しています.

FPGA班&VR班2021前期最終発表(2021/8/10)

電気通信大学1年の濱野です。

情報工学工房のFPGA班&VR班の前期最終発表について紹介します。

【VR班】

・VRで3D迷路

・Unreal Engineを用いたゴルフゲーム

・3D都市モデルを使用したフライトシミュレーター

【FPGA班】

・Bitcoinのマイニング

・ゲームボーイのエミュレート

・CPUのエミュレーター開発

・自作CPUの設計,制作

・テトリスの実装

私は,前期にFPGA班で自作CPUやテトリスの実装に挑戦しました。
テトリスの作成では,通常なら4年生の時に研究室で使用する機材を使って,自作CPUは自分で本を買ったり先生から本を借りしたりして実装しました。
初めは何もわからない状態から始めましたが,必要なプログラミングの知識やツールの使い方なども0から学ぶことができました。
FPGA班には,2年以上参加している先輩も多く,何かわからないことがあった時に聞くことができたり,過去に制作したものや最新の機器などを触ったりすることができました。(VRゴーグルを触らせてもらって感動しました)

実際に作りながら学べ,わからないことがあったらすぐに聞くことができるので,好きなことや興味のあることを学ぶにはとても良い授業だと感じました。

また,私は総合型選抜で入学し,1年生ですが研究室に出入りさせて頂いています。そこでも興味のある分野を研究している先輩方のお話を聞けたり,イベントに参加したり(9/24にMICS杯というものが開催されます)と1年生ではなかなかできない貴重な経験ができました。

後期では,より複雑なCPUの実装などに挑戦したいと考えています。

FPGA班&VR班2021前期中間発表(2021/6/15)

先日行われた情報工学工房の中間発表の内容を、ダイジェストでご紹介いたします!

【VR班】

・3D都市モデルを利用したフライトシミュレータの作成

・Unreal Engineを用いたゴルフ、ボーリングのゲーム作成

・BlenderとUnityを用いた3D迷路の作成

VR班は3名から成り、それぞれまだ企画の段階ですがどれも興味を惹かれる題材ですね!

【FPGA班】

・FPGA上でのWindows95の起動やマンデルブロー集合の描画

・CPUの作成やアクセラレータ、IOの取り付け

・仮想通貨のマイニング

・CPUの自作とチューリング完全な命令セットの実装

・自作CPUでのxv6の起動

・テトリスの実装

CPUを自作したり、「仮想通貨」といったワードが出てきたり・・・

                            FPGAとは奥が深い装置ですね!

(正直FPGA班の方は8割何を仰っているのか分かりません(汗))

中には数年連続でこの工房を受講している方もおり、技術力にただただ驚かされます・・・。

しかしながら、言うは易し行うは難し・・・皆さんが最終発表までに一体何処まで完成させられるのか、首を長くして待ちましょう!

乞うご期待!!

FPGAテトリス(オンライン実験)

2020年度のテトリス実験はオンラインで行いました。

実験にはJ1実験で利用したリモート操作可能なFPGAボードを使用しています。テトリス実験は課題の中で音声出力モジュール、映像出力モジュールを作ります。しかし、リモート操作用FPGAボードには映像や音声を出力するための端子がありませんでした。そこで、VGAや音声出力用の端子を利用するために拡張基板をFPGAボードに接続して使用しました。また、リモート操作アプリケーションは実験室の音声を聞ける機能が追加されました。

授業では例年通り1-6回目の授業でテトリスの作成をして、7回目の授業にプレゼン発表をしました。

今年は実験室の開室時間外でもFPGAボードの実機動作確認(遠隔)ができるようになったこともあり、手の込んだ作品が多く見られました。(昨年までは実験室が空いてないと実機動作は出来ませんでした)

また、昨年と使用するFPGAボードが変わり、使用できる回路資源が減ってしまったことから、リソースの少ない回路を作る必要がありました。そのため、テトリミノの形や色、ドット絵、ゲーム性、音など人によって力を入れる場所が異なっていました。

情報工学工房「Coqで学ぶ計算機ソフトウェアの基礎」授業紹介(2020/10/11)

電気通信大学1年の伊藤です。情報工学工房の今年のコースの1つ、「Coqで学ぶ計算機ソフトウェアの基礎」の紹介をします。

授業内容を簡単に説明すると、毎回宿題として教科書を読み、証明の問題を解いてきて、解いてきた証明について、授業中に解説などをする、と言った感じです。

この授業の大きな特徴は、証明に「Coq」を使うことです。Coqというのは、証明が正しいかどうかを検証してくれるツールです。証明というと日本語や英語などの自然言語で書くのが普通ですが、Coqを使った証明では、プログラミング言語を使います。

証明の内容は、基本的な自然数の性質やリスト(配列)の性質を証明したり、とても簡単なプログラミング言語を定義してその性質を証明をしたり、アルゴリズムの正しさ(思った通りの振る舞いをするか)を確かめたり、といった感じです。教科書で扱うものはどれも、世の中で実際に扱われている対象を簡易化したものですが、演習問題は難しく、私は結構苦戦しています。

上の画像は、実際に証明を組み立てている画面です。鳩の巣原理を証明しようとしています(鳩の巣原理を知らない場合は調べて下さい)。まだ証明できていません。演習問題の答えをネット上の検索エンジンで検索できる場所に上げないで下さいと教科書に書いてあるので、一応まだ解けていない問題を選んでみました。こんなことも証明できるのかと驚いた問題の1つです。まだ証明できていませんが…

まだまだ授業は続くので、引き続き腕を磨いていきたいと思います。

MICS杯

9月5日〜25日の期間に、MI/CSコースの学生を対象にFPGAを使ったゲーム大会(MICS杯)を開催しました。MICS杯ではゲームを設計する設計部門、作ったゲームをプレイする競技部門があり、参加者はそれぞれの部門で競い合いました。

MICS杯では前期のJ1実験で使用したリモートで操作可能なFPGAボードを使用しました。このFPGAボードではGUIアプリケーションを使ってFPGAボード上のスイッチを操作したり、カメラからオシロスコープの波形を確認したりすることができます。

※リモート操作可能なFPGAボードについてはこちらの記事でも紹介されています。

設計部門は5日から23日まで行われました。最終的に3つのゲームがエントリーしました。

・Light out:全てのランプを消すようにスイッチを押すゲーム

・FPGAマインスイーパー:周辺の地雷の数から地雷の入ってないマスを見つけるゲーム

・洞窟Run:岩(上の波形)を避けながら洞窟を走るゲーム

競技部門では24日に予選が、25日に決勝戦が行われました。表彰式では藤井雄大さんが優勝、ブシャダさんが敢闘賞、桃太さんが設計部門賞で表彰されました。

MICS杯は公式Twitterアカウントもあります。Twitterでは設計部門で投稿されたゲームの動画での紹介などをしています。是非ご覧ください!!

https://twitter.com/MICScup_uec











※ここから先はMICS杯の裏話

MICS杯は成見研主催で開催されました。

成見研究室では毎年9月に夏の合宿を行っています。夏合宿では昼間に旅行先で遊んだり、夜にB4の学生の卒研中間発表の練習をしたりします。しかし今年は新型コロナウイルス感染症の影響で合宿は中止となりました。そこで合宿の代わりとなったイベントがMICS杯だったのです。

予選・決勝を行った24日、25日の午前中は研究室で密を避けながら発表練習をしました。午後はご飯を食べにお出かけをして、夕方からMICS杯の準備、開催をしました。

25日のお昼は調布飛行場に隣接するプロペラカフェに行きました。

窓から見える滑走路

プロペラカフェのハンバーガー

VRフライトシミュレータを体験する成見先生

前期CED TAを振り返って。CEDのオンラインでの取り組みのまとめ

2020年度 I類(情報系)計算機室 (CED) のTAの青見です。本日は、CEDにおける今年度前期のTA業務について軽く振り返ってみようと思います。

本記事執筆時点でのCEDのHP (https://www.ced.cei.uec.ac.jp/) の様子

多くのI類の学生の皆さんは御存知だと思いますが、主にI類・I専攻の学生向けの計算機室として、西9号館に”CED”が設置されています。私たちCED TAは、主に計算機室の閉館作業や、現地での利用者の質問対応等を行う……予定でしたが、昨今の新型コロナウイルスの影響もあり、今学期はCEDのオンラインでの取り組みの補助業務を行っておりました。

今学期より始めた取り組みのうちの一つとして、”Zoomオフィスアワー”があります。これは、決まった時間にCED TAがZoomのミーティングルームを開放しておき、時間内の好きなタイミングでCEDの利用方法や、オンライン講義のための設定補助をしていました。

CEDのHP (https://www.ced.cei.uec.ac.jp/) 最下部の”Zoomオフィスアワー”

私自身も、本URLを見つけていらっしゃった方や、事前にCED宛にメールを頂いた方を中心に何人かの補助をさせていただきました。お役に立っていれば幸いです。

また、普段リモート接続されなかった学生の方を中心に、CEDと手元のPCとのファイルの送受信の方法について問い合わせをいただくことがありました。これに合わせ、scpsftpといったコマンドの使い方や、MobaXtermを用いたGUIによるSFTPのファイル送受信方法の資料を作製し、CED HPに掲載していただきました。

CEDのHP (https://www.ced.cei.uec.ac.jp/) 中段部「お願い」に掲載していただきました!

簡易的な資料ではありますが、こちらの資料を通して「意外と簡単だな」と思って、積極的に利用していただけると幸いです。後期になるとCEDの利用者も増えると思いますが、わからない方はぜひ一度目を通してみてください。

さらに今年度CEDでは、CEDのGUI環境を実行するためにVNCの利用方法をHP上に掲載しています。こちらのVNC Viewerの設定方法も調査し、記載させていただきました。情報数理工学/コンピュータサイエンス実験第一のJ1実験では、CEDの計算機にインストールされている回路設計のためのアプリケーションをGUI上で動作させる必要があり、非常に多くの人に利用していただきました。私たちも、実際にJ1実験の時間に実験のZoomに参加し、導入の補助を行いました。今学期のJ1実験に関しては下の記事を御覧ください。

後期はI類1年生の利用も増え、今までCEDを使ったことのない利用者が増えることが予想されます。そういった学生が使いやすいように、出来る限りのサポートをさせていただきたいです。よろしくお願いいたします。