'RakudaLab' supports software development for smartphone applications and embedded systems, as well as the establishment of development frameworks.
We're particularly good at visualization of data and progress, and contributes to the success of various projects around it.
「RakudaLab」は、スマートフォンアプリや組み込みシステムのソフトウェア開発、そして開発基盤づくりを支援します。
とりわけデータや進捗の可視化を得意とし、その周辺のさまざまなプロジェクトの成功に貢献します。
Software Engineerソフトウェアエンジニア
/ Working in Shizuoka or Tokyo, Japan静岡・東京を拠点に活動
/ 20+ years experience20年以上の経験
/ Loves TV games and snowboardingテレビゲームとスノーボードが好き
Have a interest in data visualization, having been inspired by Charles Minard's Infographics which expresses the rigors of Napoleon's expedition. Be familiar with various visualization techniques that can convey the main points. データ可視化に関心があり、ナポレオンの遠征の過酷さを表したシャルル・ミナールのインフォグラフィックに触発されました。要点を的確に伝える、さまざまな可視化手法に精通しています。
Experienced both front-end and back-end web development in building a core system for business. In particular, be good at handling graphic libraries that run on browsers such as d3 and WebGL. 業務の基幹システム構築において、フロントエンド・バックエンド双方のWeb開発を経験。とりわけ d3 や WebGL など、ブラウザ上で動作するグラフィックスライブラリの扱いを得意としています。
Experience developing non-gaming VR apps running on consumer game consoles. Expertise in handling large scale data with GPU programming. Not limited to VR, but also skills in developing 3D apps that run on browsers. 家庭用ゲーム機で動作する非ゲームのVRアプリ開発を経験。GPUプログラミングによる大規模データの扱いを得意とします。VRに限らず、ブラウザ上で動作する3Dアプリの開発スキルも備えています。
Experience in large-scale software development connecting multiple sites, including overseas. Be aware of the importance of processes and tools in development, and expertise in project start-up. 海外を含む複数拠点をつなぐ大規模ソフトウェア開発を経験。開発におけるプロセスとツールの重要性を理解し、プロジェクトの立ち上げを得意としています。
Development of an algorithm for automatic tracking of recording timers onboard HDD recorders.
Timers for recording regular (e.g., weekly) TV programs, such as drama programs, may shift the start time if irregular programs are included before or after the program. Even in such cases, the timer can be automatically modified to record the entire program.
In the development, it was difficult to verify and evaluate the algorithm. True Positive and False Negative tests were conducted using a large amount of actual program information, and automatic tests were constructed utilizing EPG data updated daily in real time.
HDDレコーダーに搭載する、録画予約タイマー自動追従アルゴリズムの開発。
ドラマなど毎週放送の定期番組の録画予約は、前後に特番などの不定期番組が入ると開始時刻がずれてしまうことがあります。そうした場合でもタイマーを自動的に補正し、番組全体を録画できるようにしました。
開発では、アルゴリズムの検証・評価が難しい点が課題でした。大量の実番組情報を用いた True Positive/False Negative テストを実施し、毎日リアルタイムに更新されるEPGデータを活用した自動テストを構築しました。
Engaged in embedded software development of digital TVs.
In the development, I was mainly in charge of the UI layer and designed and implemented basic UI such as volume bars and menus. I was also in charge of the overall implementation of the 3D control module for the first 3D project.
This was a turning point for a major review of the software structure, as the timing was right for the switch from analog to digital broadcasting, and it was also necessary to respond to the needs of Internet connection. In order to develop a single code set for a large number of lineups, such as for overseas markets and different sizes, we introduced a number of variation management mechanisms with an awareness of Product-Line development.
In large-scale software development, it is essential to have a well-designed architecture and base development process in order to efficiently continue releasing quality software.
デジタルTVの組み込みソフトウェア開発に従事しました。
開発では主にUI層を担当し、音量バーやメニューなどの基本UIを設計・実装しました。また、初の3Dプロジェクトでは3D制御モジュール全体の実装も担当しました。
アナログからデジタル放送への移行期と重なり、インターネット接続への対応も求められたため、ソフトウェア構造を大きく見直す転換点でもありました。海外向けやサイズ違いなど数多くのラインナップを単一のコードセットで開発するため、Product-Line開発を意識した多数のバリエーション管理の仕組みを導入しました。
大規模ソフトウェア開発では、品質の高いソフトを効率よくリリースし続けるために、よく設計されたアーキテクチャと基盤となる開発プロセスが不可欠です。
Defining device APIs and developing SDK for them.
With the widespread use of smartphones, use cases in which devices in a house can be operated from a smartphone have been attracting attention. Among these, Lens-type camera introduced in 2013 was designed to be connected to a smartphone, and in order to make this a reality, it was essential to create a general-purpose mechanism for connecting devices.
In such a movement, I was engaged in the development of a common framework across various devices. The development work included defining APIs for devices and developing SDKs for Android and iOS using these APIs. The key point was how to define APIs in a device-independent manner, and at the time, we defined more than 300 APIs for more than five different products, including TVs and cameras.
When defining APIs, it is important to maintain specification documents that are consistent with these APIs. In addition, since different devices and their lineups have different APIs that can be used, it was necessary to build a system that can output various API definition documents within a single set of definition code. Some of these definition documents (e.g. Camera Remote API) were made available to general developers. (Currently, it seems to have been replaced by a new SDK.)
デバイスのAPIを定義し、そのためのSDKを開発しました。
スマートフォンの普及に伴い、家の中の機器をスマホから操作するユースケースが注目されていました。中でも2013年に登場したレンズスタイルカメラはスマホとの接続を前提に設計されており、それを実現するには機器を接続する汎用的な仕組みが不可欠でした。
こうした流れの中で、私はさまざまなデバイスを横断する共通フレームワークの開発に従事しました。作業内容には、デバイス向けAPIの定義と、それらを用いたAndroid/iOS向けSDKの開発が含まれます。要点はいかにデバイス非依存でAPIを定義するかで、当時はTVやカメラを含む5製品以上に対して300を超えるAPIを定義しました。
API定義では、それらと整合した仕様書を維持することが重要です。加えて、デバイスやラインナップごとに利用できるAPIが異なるため、単一の定義コードからさまざまなAPI定義ドキュメントを出力できる仕組みを構築する必要がありました。これら定義ドキュメントの一部(例:Camera Remote API)は一般開発者にも公開されました。(現在は新しいSDKに置き換わっているようです。)
Visualizing the overcrowded timetable of the Shinkansen in Japan.
(site
It is well known that Shinkansen (especially Tokaido Shinkansen) in Japan operates on an overcrowded timetable, which is rare even in the world, and this site visualizes how each car is running. The site covers not only Tokaido Line, but also Hokkaido to Kyushu Shinkansen. The simulation speed can be selected from constant speed, 60x (one minute is one second), and 600x. In the visualization, the timetable of each station is used as a reference, but when Nozomi overtakes Kodama, the operating speed in the section is adjusted so that Nozomi overtakes Kodama at the proper station.
Click the link below to go directly to the highlights.
Please note that the timetable data is current as of 2016 and is not up-to-date. Also, please note that this site does not provide real-time information on service status (suspensions, delays, etc.).
過密ダイヤで知られる日本の新幹線の運行を可視化しました。
(サイト
日本の新幹線(特に東海道新幹線)が、世界的にも珍しい過密ダイヤで運行していることはよく知られています。このサイトは、各車両がどのように走っているかを可視化したものです。東海道だけでなく、北海道から九州までの新幹線を対象としています。シミュレーション速度は等速・60倍速(1分=1秒)・600倍速から選べます。可視化では各駅の時刻表を基準としつつ、のぞみがこだまを追い抜く際には、適切な駅で追い抜くよう区間の運行速度を調整しています。
下記のリンクから、見どころへ直接ジャンプできます。
時刻表データは2016年時点のもので、最新ではない点にご注意ください。 また、本サイトは運行状況(運休・遅延など)のリアルタイム情報は提供していません。
Launching an aggregation site of tweets about rainbows. (Mock site
Don't you feel happy when you look up at the sky and find a rainbow? I conceived a system that notifies you in real time when there is a rainbow near you, so that you don't miss it. Since Twitter posts about them are almost real-time, the system selected posts about rainbows from the tweets and plotted them on a map.
Even though it is easy to say "Tweets related to rainbow," it was difficult because there were many different patterns. The most difficult ones were those related to games. In some card games, the cards with high rarity are called "rainbow cards" and cannot be extracted simply by a text string, so image recognition is used. In addition, there are cases of posting rainbows that appear rarely in MMOPRGs, and with the evolution of game computer graphics, it has become difficult to distinguish them from actual rainbow images. The location of the rainbow is given by the GPS information in the attribute of the Tweet, which is almost always empty, so I used Geo conversion from place name to location and guess the relationship with other Tweets based on the time.
To realize the recognition function, a large number of rainbow images were manually collected, but the site is now shut down because it could not continue to maintain the expected detection accuracy.
虹に関するツイートを集約するサイトを立ち上げました。(モックサイト
空を見上げて虹を見つけると、うれしい気持ちになりませんか。近くに虹が出たときにリアルタイムで通知し、見逃さないようにする仕組みを考えました。虹に関する投稿はほぼリアルタイムであるため、ツイートの中から虹に関する投稿を選び出し、地図上にプロットしました。
「虹に関するツイート」と言うのは簡単ですが、パターンが非常に多く困難でした。中でも難しかったのがゲーム関連です。あるカードゲームでは、レア度の高いカードを「虹(レインボー)カード」と呼び、文字列だけでは抽出できないため画像認識を用います。加えて、MMORPGでまれに現れる虹の投稿もあり、ゲームCGの進化により実際の虹画像との区別が難しくなっていました。虹の位置はツイート属性のGPS情報から得られますが、ほとんどの場合は空のため、地名から位置へのジオ変換を用い、時刻をもとに他のツイートとの関係を推測しました。
認識機能を実現するため、大量の虹画像を手作業で収集しましたが、期待する検出精度を維持し続けられなかったため、現在サイトは閉鎖しています。
Map of shops and facilities with hours of operation (in Fukui
Just as I was getting interested in data analysis, I found that several local governments were holding application contests using open data. This is a WebApp I made for that purpose. The mechanism is very simple. It uses open data provided by the local government with a little processing, and everything else runs in the browser.
The most ingenious part of the WebApp is that it focuses on the business hours included in the data and displays only shops that are open for business. The time can be changed in the simulation. In addition, the time required to travel from the current location to the shop is also displayed, allowing visitors to find an open shop while sightseeing and ensuring that they can enter during business hours.
Thanks to a lot of supports, I received the Grand Prize in the Fukui contest and the Excellence Award in the Aizu contest. As for the Urban data challenge, I only made an entry.
営業時間つきの店舗・施設マップ(福井
データ分析に興味を持ち始めた頃、いくつかの自治体がオープンデータを使ったアプリコンテストを開催していることを知りました。これはそのために作ったWebアプリです。仕組みはとてもシンプルで、自治体が提供するオープンデータを少しだけ加工して使い、それ以外はすべてブラウザ上で動作します。
このWebアプリの最大の工夫は、データに含まれる営業時間に着目し、営業中の店舗だけを表示する点です。シミュレーションで時刻を変えることもできます。さらに、現在地から店舗までの移動時間も表示し、観光しながら営業中の店を見つけ、営業時間内に入店できるようにしました。
多くの方の支援のおかげで、福井のコンテストで最優秀賞、会津のコンテストで優秀賞をいただきました。アーバンデータチャレンジについては、エントリーのみ行いました。
Prototype development of VR application with visualization of large scale data running on consumer game consoles.
The purpose of this research was to find new customer value by displaying large-scale data available within the company in a 3D space and visualizing it using a VR device. This was the first time to develop software using an SDK for games, and I remember being very puzzled at first. In order to achieve faster rendering, we even went as far as to implement software at the low-level layer (e.g., interrupting the rendering pipeline to perform operations).
The technology for VR applications was still more than mature at this point, and prolonged use caused considerable brain fatigue. (After an hour of validation with VR on, I had a headache for the rest of the day...) However, I saw great potential in mapping large-scale data into a 3D space, and it is my experience that supports my current life's work.
Note that this research and development ended with a prototype, and there are no images captured or other information that can be made public. Therefore, the images on this page are only for illustrative purpose.
家庭用ゲーム機上で動作する、大規模データ可視化VRアプリの試作開発。
この研究の目的は、社内にある大規模データを3D空間に表示し、VRデバイスで可視化することで新たな顧客価値を見いだすことでした。ゲーム向けSDKを使ったソフトウェア開発は初めてで、最初はかなり戸惑ったことを覚えています。より高速な描画を実現するため、低レイヤ(例:描画パイプラインに割り込んで処理を行う)でのソフトウェア実装にまで踏み込みました。
当時のVRアプリ技術はまだ発展途上で、長時間の使用はかなりの脳疲労を招きました。(VRを着けて1時間検証した後、その日は一日中頭痛が…)それでも、大規模データを3D空間へマッピングすることに大きな可能性を感じ、それが現在のライフワークを支える経験になっています。
なお、この研究開発は試作段階で終了しており、公開できるキャプチャ画像などはありません。そのため、本ページの画像はあくまでイメージです。
Development of a data collection function from customer vehicles for automated driving system.
While conducting research and development of large-scale data visualization, I became aware of the difficulty of collecting high-quality data on a large scale and on a continuous basis. Among other things, I believe that new business value could be found by tracking and analyzing the flow of human and vehicle movement. So I left Sony, where I had worked for 13 years, for Toyota. There was an opening for an engineer for automatic driving, and I was able to find a job in the data analysis field.
As of 2021, Toyota has a car on the market with an automated driving system, but at the time the system was still under development. In this context, we had the opportunity to take the lead in developing a new data collection function.
Although I left the project to lead the start-up of the next-generation system development without seeing the functionality completed, it has become the foundation for collecting data that will support the development of Toyota's automated driving system, which will continue in the future.
自動運転システムのための、お客様車両からのデータ収集機能の開発。
大規模データ可視化の研究開発を進める中で、高品質なデータを大規模かつ継続的に収集することの難しさを実感しました。中でも、人や車両の移動の流れを追跡・分析することで、新たなビジネス価値が見いだせると考えました。そこで13年勤めたソニーを離れ、トヨタへ移りました。自動運転のエンジニア募集があり、データ分析の分野で職を得ることができました。
2021年時点で、トヨタは自動運転システムを搭載した車を市場に出していますが、当時システムはまだ開発中でした。そうした状況の中で、新しいデータ収集機能の開発をリードする機会に恵まれました。
機能の完成を見届ける前に、次世代システム開発の立ち上げをリードするためプロジェクトを離れましたが、これは今後も続くトヨタの自動運転システム開発を支えるデータ収集の基盤となっています。
Efforts to innovate the car development process with an emphasis on software development (ongoing)
A car is an aggregate of many ECUs connected by a huge number of harnesses, and its structure is very different from that of digital home appliances such as smartphones and TVs. Even I, who have long experience in software development for digital TVs, was surprised at the number of people involved in the development and the complexity of the process. Nowadays, the area of software development in car development is attracting attention, not only from Toyota but also from other companies. More value provision to customers is shifting to the software side, but I feel that such a trend is several years to more than a decade behind that of the consumer electronics industry.
Now, I am moving away from the development of automated driving systems, and am taking on the challenge of how to improve the efficiency of overall vehicle development broadly, and what software development should be like in that context, in order to make changes that are not limited by the way Toyota has fostered in the past, but can still follow the good parts of the system.
ソフトウェア開発を重視した、車両開発プロセスの革新への取り組み(進行中)。
車は、膨大な数のハーネスで接続された多数のECUの集合体であり、その構造はスマートフォンやTVといったデジタル家電とは大きく異なります。デジタルTVのソフトウェア開発に長く携わってきた私でさえ、開発に関わる人数の多さとプロセスの複雑さに驚きました。近年、車両開発におけるソフトウェア開発の領域は、トヨタに限らず各社から注目を集めています。顧客への価値提供はますますソフトウェア側へ移りつつありますが、その潮流は家電業界に比べて数年から十数年ほど遅れていると感じています。
現在は自動運転システムの開発を離れ、トヨタがこれまで培ってきたやり方に縛られず、それでいて仕組みの良い部分は受け継ぐような変革を実現するために、車両開発全体をいかに幅広く効率化するか、そしてその中でソフトウェア開発はどうあるべきか、という課題に挑んでいます。