Takahiro Aoyagi Japan LinkedIn: https://www.linkedin.com/in/takahiro-aoyagi-41a10a96 GitHub: https://github.com/takahirox Portfolio: https://takahirox.github.io Blog: https://blog.mozvr.com/author/takahiro/ -------------------------------------------------------------------------------- Summary: - Senior full-stack software engineer. Interested in low-level, open source, performance, browser development, web technologies, and web standards(WebGL, WebGPU, WebXR). - Aggressive open source contributor. -------------------------------------------------------------------------------- Technical skills: (A-Z) AI, AR, Blender3D, C/C++, CSS, Database, Docker, Elixir, Git, GLSL, glTF, JavaScript, HTML, Node.js, Operating System, Processors, Python, RISC-V, Rust, SQL, Three.js, TypeScript, UNIX, VR, WebAssembly, WebAudio, WebExtensions, WebGL, WebGPU, WebRTC, WebSocket, WebXR -------------------------------------------------------------------------------- Professional experience: Mar.2018 - Jan.2024 Senior Software Engineer - Mozilla Corporation. Mountain View, CA - Hubs team https://hubs.mozilla.com/ - Hubs is a Web-based open and global virtual collaboration platform - I worked mainly for Client like ECS architecture migration, performance optimization, better Mac/Android/iOS support, contribution to Three.js on which Hubs is built, glTF extension support, documenting, and backend with Elixir. - Mixed Reality team - Contributed to WebXR and its submodule sepcifications by pointing out unclear descriptions and sending the patches clarifying them - Leading WebXR Emulator browser Extension project which emulates WebXR (VR/AR) devices and improves WebXR content creators' productivity by allowing the test of WebXR applications in their desktop browsers. https://blog.mozvr.com/webxr-emulator-extension/ - Helped the iOS WebXR Viewer project, the first web browser supporting WebXR API on iOS. Worked on the JavaScript API to provide the latest WebXR API to users. https://blog.mozvr.com/webxr-viewer-2-0-released/ - Led the Immersive Custom Elements project, a set of web components to allow users to easily embed immersive (VR/AR) content into their web pages even without the knowledge of JavaScript, 3D graphics, or VR/AR. https://github.com/MozillaReality/immersive-custom-elements - Firefox Reality (VR Browser) Content Feed, a showcase of the best WebXR applications for users to easily dicsover the great WebXR experiences. Worked on the admin site and backend database server for the contents management with React, Heroku, and PostgreSQL. https://blog.mozvr.com/firefox-reality-12/ - Worked on the performance analysis of WebXR/WebGL/JavaScript applications and reported the feedback to the Firefox team. Feb.2013 - Mar.2017 Senior Software Engineer - Fujitsu Technology and Business of America, Inc. Sunnyvale, CA - Worked on the Oracle In-Memory database project which enables fast analysis of TB-Scale datasets. - Led the C/C++ chip-level performance tuning project of Oracle in-memory database library for Fujitsu SPARC/UNIX platform with Oracle database team, Fujitsu compiler team, and Fujitsu processor team. - Achieved 100x better performance on SSB(Star Schema Benchmark) compared to traditional databases. Jun.2007 - Feb.2013 Hardware Engineer - Fujitsu Limited. Kanagawa Japan - Worked on high-end server processor. Designed and developed the modules of - Multi port L1 cache memory used in Supercomputer K which received first place on the TOP500 project in June 2011. Individually made automated timing library build system and shared with the team. - High-speed and High-density cache memory for interconnect processor. Patented a technique for archiving fast read and small area circuit. - Last level cache memory controller for Exascale supercomputer. Obtained four patents to improve memory capacity and energy efficiency. - Worked with SystemC, verilog, and SPICE Apr.2006 - May.2007 Hardware Researcher - Fujitsu Laboratories, Ltd. Kanagawa Japan - Researched power saving CMOS circuit with sleep transistor -------------------------------------------------------------------------------- Open source contributions: https://github.com/takahirox - Three.js: Collaborator and top 10 contributor out of 1700 contributors. Three.js is the most widely-used JavaScript + WebGL graphics library. Contributed glTF, MMD, Cartoon rendering, Renderer, Physics, IKSolver, WebXR manager, optimization, bug-fixes, and so on. - Chromium: Contributor Chromium is an open-source web browser project and is based for Google Chrome. I have been contributing to it as an individual mainly for WebGPU implementation. https://chromium-review.googlesource.com/q/owner:hogehoge@gachapin.jp https://dawn-review.googlesource.com/q/owner:hogehoge@gachapin.jp - WebGPU: Contributor WebGPU is a new web standard API to provide modern 3D graphics and compute capabilities to web developers. The API is designed to efficient mapping to lower-level native GPU APIs like Vulkan and Metal. I have been contributing to WebGPU specification mainly for bugfix and clarification as an individual. Also, contributing to WebGPU Conformance Test Suite. - WebGPU devtools: Author WebGPU devtools is a Web browser extension that helps debug WebGPU applications by monitoring WebGPU usage. You can check created WebGPU objects, WebGPU command history and callback, error WebGPU commands, WGSL shader code and compile error, Buffer/Texture/Framebuffer contents, and so on. - Online WGSL editor: Author WGSL (WebGPU Shading language) is a new shading language introduced for WebGPU. Online WGSL editor is a live coding WGSL editor running on web browser for people who want to learn. They can easily start to try WGSL by just opening the editor page The editor supports rendering, automatic compilation, and error highlighting. - Tiny Web Metaverse: Author Tiny Web Metaverse is a Web-based multi-user 3D virtual space lightweight framework with high flexibility, good extensibility, and easy self-hosting. It is built on web standards, making it familiar and easy to use for developers with Web development experience. Its high scalability makes it a good match even for AI, for example it supports runtime 3D model generation using Text to 3D Generative AI. - In-browser local AI inference apps: Author I am interested in in-browser local AI inference from the perspectives of usability and privacy. I have created several experimental apps. Web AI Chat is a web app that incorporates an inference engine, allowing users to chat with AI without installing any special software. Whisper as Web Extension is a browser extension that incorporates an inference engine and OpenAI's Whisper model, enabling serverless speech to text recognition. - three-gltf-extensions: Author This project provides the handlers of glTF extensions, which the official Three.js doesn't support, for Three.js glTF loader/exporter at top of the loader/exporter extensibility mechanism. - glTF extension Blender addons: Author I made several Blender addons for some glTF extensions that are not supported by the Official Blender glTF I/O at that time or for a certain special Blender use. - Three.js MMDLoader sample applications: Author VR, Music live, Face tracking, HTML5 Speech Synthesis, Physics simulation, Interactive, Post processing with GLSL, Water simulation with GPU, and so on. - Touhou style game with JavaScript and raw WebGL/WebSocket/WebRTC: Author A fan game of Touhou Project(Shooter game project of Team Shanghai Alice). It's known for good performance, draws over 1000 elements in a scene with WebGL and well-tuned JavaScript at 60fps on browser. And it supports online coop play with WebSocket and WebRTC. - RISC-V emulator in Rust + WebAssembly: Author I wrote RISC-V processor and peripheral devices emulator in Rust and compiled to WebAssembly so that you can run Linux both as desktop application and in your web browsers. It also supports debugger so you can step execution, examine memory content, and so on. Good for RISC-V learners. - NES(Famicom) emulator in Rust + WebAssembly: Author I wrote NES hardware emulator in Rust and compiled to WebAssembly so that you can run NES both as desktop application and in your web browsers. - xv6-riscv: Contributor I contributed to xv6-riscv, RISC-V port of a tiny Unix based OS for educations, by sending patches to follow RISC-V and peripheral devices specifications more properly. - A-Frame VR: Collaborator and core contributor - riscv-isa-manual: Contributor - WebAssembly vs JavaScript benchmarks: Author - PDP-11 emulator in JavaScript: Author - MMD viewer with JavaScript and raw WebGL: Author -------------------------------------------------------------------------------- Publications: - はじめてのOSコードリーディング / ISBN 978-4-7741-5464-0 Introduction to OS source code reading https://gihyo.jp/book/2013/978-4-7741-5464-0 Used in multiple colleges courses. - 初めてのThree.js 第2版 (付録寄稿) / ISBN 978-4-87311-770-6 Japanese translation of Learning Three.js 2nd edition (Appendix contribution) https://www.oreilly.co.jp/books/9784873117706/ -------------------------------------------------------------------------------- Presentations at conferences: 第25回日本バーチャルリアリティ学会大会, Sep 18 2020 The 25th Annual Conference of the Virtual Reality Society of Japan http://conference.vrsj.org/ac2020/program/3A2.html https://docs.google.com/presentation/d/1PUGR-GXkQZY-hcsfyCVdOtsVS6Vx5qjSlynpx3-awOg -------------------------------------------------------------------------------- Educations: Tokyo Institute of Technology, 2006 - Tokyo Japan M.S., Computer Science - Web technologies Lab -------------------------------------------------------------------------------- Honor & Award: Google Open Source Peer Bonus Oct.2017 as a Three.js contributor