Yoshiki Ohshima, Ph.D.
About Me
Hello! I’m Yoshiki Ohshima :) As a computer scientist and software engineer, I have been working on creating new programming languages and environments, designing and implementing dynamic interactive systems and applications, especially for the education field. I have published dozens of academic papers and served as a program committee member for conferences and workshops.
At the graduate school of Tokyo Institute of Technology, I was working on an optimizing compiler project but also a research prototype of a programming language with nested transactions. It was fine... But now looking back, I think I felt it was a bit too narrowly focused because I did not know how much of a bigger picture there was in the field of computing. It all changed when an interesting twist changed the course of my life.
As shown below, I had the great opportunity to closely work with Dr. Alan Kay and his group over the decades. They were thinking about questions like “what is computing?” in the “Koan-like” sense that “what is computing if you take away all hardware in front of your eyes?”, and “what does computing mean to humanity?” The group was not only talking about those things, but was also actually making those ideas concrete.
I consider myself an above-average programmer but I have been trying to learn about more than just programming. I think that the knowledge and outlook I accumulated over time are making some differences on what I create.
Projects
![](./rie-jun.png)
Rie and Jun: A Declarative Compiler (1993-)
Under the supervision of Professor Masataka Sassa, I worked on a compiler construction project. The project's aim was to write all stages of an optimizing compiler in declarative forms, particularly in variations of Attribute Grammar.
![](./harmony.png)
The Harmony/2 Language (1995-)
Under the supervision of Dr. Ken Wakita, I worked on an object-oriented language with nested transactions.
![](./squeak.png)
Squeak Smalltalk (1997-)
I attended OOPSLA 1997 in Atlanta as a student volunteer, where an interesting twist of fate put me in touch with John Maloney of the Squeak Team at the reception. I was volunteered by Professor Satoshi Matusoka to try porting Squeak to a PDA called Zaurus, developed by the Sharp Corporation in Japan, that Prof. Matsuoka was carrying around (and showing off). I only had a very vague idea of what Smalltalk was about. I was familiar with Emacs, and had somewhat understood that an interactive and scriptable computing system was good... But I was completely blown away that the entirety of the system (really) was coherently constructed as a dynamic system. Since then, many of the things I do in computing have been influenced by the ideas of whole system design, dynamic modification of a living system, and the educational aspects of computing — all of which has come from Smalltalk and Squeak.
Perhaps the most important contribution to Squeak I made was “multilingualization”. It was a deep change into a fundamental part of Squeak, and it is still being used 15 years later.
![](./zauchu.jpg)
Porting Squeak to Zaurus PDA (1998)
Squeak was designed to be portable and to run on a wide variety of hardware, including low-power handheld devices. In 1998, I started porting Squeak to Zaurus, and thanks to lucky coincidences (such as Sharp just releasing their first public SDK, and the latest hardware having just enough memory, etc.) I managed to make the port work in about two weeks. Because of this and other contributions I had made to the Squeak Project, I was invited by Dr. Alan Kay to visit Walt Disney Imagineering R&D in Los Angeles, and to attend that year’s OOPSLA, held in Vancouver.
It also marked the first time I had to make a layover at an airport (SFO), where... I missed the connection.
![](./netfront.png)
Porting NetFront Web browser to Zaurus PDA (2000)
The ACCESS Company was spearheading the mobile web industry with their NetFront browser. Not unlike Squeak, NetFront was designed so that it could be ported to a new platform by supplying platform-dependent code. I blatantly repurposed some of the code I had written for Squeak for the NetFront browser. But hey, it was open source, and I was the original writer anyway. It probably gave them the impression that I was a ridiculously fast coder.
![](./parkspda.png)
Parks PDA(2000)
Walt Disney Imagineering R&D was interested in nascent portable electronic devices. They explored what they could do with the devices to enhance guests’ experiences. Around that time, a model of Zaurus PDA was unique in that it had 1) a color screen viewable under California and Florida sunlight, 2) enough performance to play audio and frame-based animation at the quality that Disney required, and 3) an external storage slot to store media-rich content. I joined as an intern to the group led by Andy Ogden to implement software for the project. With the Squeak port to Zaurus, it was possible for John and I to make a new custom user interface framework that in turn allowed the designers to create high quality content easily. We spent two early November weeks in Orlando, where we stayed at an affiliated hotel. Once the test started going smoothly, I had a lot of free time and went to all the parks and jumped to the front of the queue lines with my R&D badge.
We were anticipating some news coverage of our test that would make some buzz, but the Bush-Gore election controversy happened and there was no space on the newspaper for our fun stuff.
![](./stitch.jpg)
Stitch's Photo Phone (2002)
This was a new experimental interactive theme park attraction. In a phone booth large enough to fit a family, we put a large flat screen as one of the walls. A cast member could puppet a 3D character (Stitch) in real time with a game controller and chat with the family. At the end of a short session, Stitch took a photo of the family, and gave a printed version of the photo taken with an actual camera hidden in the set to the family. Because it was with a cast member, the live conversation was so believable for young children, and we heard that talking with Stitch was the highlight of the day for many families.
I worked on the code that captured the image from a hidden video camera. The experiment won the 10th annual Themed Entertainment Association Award. The tests with actual guests were done at the Disneyland in Anaheim, and for various reasons, I drove there every day from Glendale three weeks in a row, often after midnight.
![](./etoys.png)
Etoys (2003)
At Disney, I was officially working on other projects than Squeak itself (though I was using it for some projects and still contributing to it). After the 9/11 attack, the bottom line of the Disney Company was hurt, and the Squeak team were laid off. I was kept a bit longer but eventually also let go. I would have to return to Japan due to the visa restriction, but thanks to Dr. Masanobu Matsuo, I got a position at his company, Twin Sun. I was more and more closely involved in the projects of Viewpoints Research Institute, which had been founded by Alan Kay and Kim Rose. A major project of Viewpoints was Etoys, which is an end-user authoring environment built on top of Squeak. From around this time, I was involved in improving and extending Etoys. Over time I came to assume the leading role of the project.
![](./kedama.png)
Kedama (2005)
Following Mitch Resnick's StarLogo and John Maloney's StarSqueak. I created a massively parallel particle simulation system that was integrated with Etoys. With this integration, thousands of particles could be controlled by Etoys block scripting and their behavior could be changed on the fly. This became the basis of my Ph.D. thesis.
![](./squeak-croquet.png)
Squeak Version of Croquet (2006)
While I was working on Squeak and Etoys, my colleagues David Smith, Andreas Raab, David Reed and Alan Kay started a new real time 3D collaboration environment called Croquet. I was on and off contributing to it. I wrote a prototype of Paxos during the exploration phase. Some ideas were made into papers.
![](./tweak.png)
Tweak (2006)
Andreas Raab led the effort to create a language system called Tweak. One of the goals of Tweak was to make a new generation of Etoys. I created a version of a particle system, and helped debug the end-user program editing system in Tweak.
![](./olpc.png)
Etoys for OLPC (2007-)
The OLPC (One Laptop Per Child) project aimed to create an inexpensive laptop that was designed for child usage around the world. Our group was involved in early discussions of software design. There was an idea to use Squeak as the foundation for the laptop so that children could engage in “learning by doing”-style activities. That idea was scrapped, but we put considerable effort to make Etoys run as an application. Because there were not too many other applications for OLPC where users could actually make things, Etoys was popular among teachers and learners. I was taking the leading role of the effort.
![](./steps.png)
The STEPS Project (2007-2013)
Viewpoints Research received a 5-year grant from the National Science Foundation to demonstrate the feasibility of the idea that the kernel of an entire personal computing system can be written in about 20,000 lines of code. That includes the compiler, the network driver, the memory management system, the graphics system, text formatting algorithms, the application framework and applications. It was a large group effort, and various members came up with many interesting ideas and systems. I took on the task of making an application framework, and I chose Functional Reactive Programming as its basis, with a twist of allowing the dynamic modification of running code. Also, we designed the framework so that all “applications” on the framework can be embedded into another. The declarative nature of reactive description and not having distinction between applications and widgets allowed us to make a universal authoring application in compact code.
![](./gp.png)
GP (2013-)
With John Maloney (who was the lead developer of Scratch) and Jens Mönig (of Snap!), I worked on a new block-based programming system called GP. The three of us combined had had considerable experience in making various end-user programming systems, but we had been bothered by the fact that none of the systems we had created were truly “general purpose”, in a sense that they weren’t powerful enough to write complex applications, such as a blocks-based programming system. John was the main architect and developer, and I worked on various parts such as designing a module system, porting the virtual machine to 64-bit platforms, etc.
I lobbied to pick a cute guinea pig (GP) as our mascot, but it did not catch on.
![](./kanto.png)
Kanto (2017)
I have always been interested in computer-based collaboration, especially a place where people can make something together and learn from each other. It occurred to me that with screen sharing and a channel in WebRTC, we could create a collaborative environment even for different block-based editors. I modified the Snap! block editor to allow multiple pointers and hooked up the WebRTC based collaboration system to have a functional collaborative blocks-editing environment. The same collaboration framework could be used to make SqueakJS and the web version of GP collaborative as well.
The name of the system is Kanto. The tradition of this kind of collaboration space was started by a system called Kansas, named after a state with a large rectangular flat area. Squeak followed with its own implementation called Nebraska. As I was working with Jens, I thought it might be fun to pick a flat area in Germany... but when he told me that it would be “Schleswig-Holstein”, I realized that a German name probably was not going to fly, and would be unpronounceable for most people. I picked the Kanto region in Japan as the name of the system.
![](./shadama.png)
Shadama (2017)
I had the urge to make yet another particle simulation system where the program can be modified dynamically while a simulation is running. Web browsers have the bindings to the GPU via WebGL that enables some form of General Purpose GPU programming (GPGPU), and JavaScript allows live programming. The result was Shadama.
One could say that it is embarrassing to work on your Ph.D project again... But sometimes it just happens.
![](./machine-learning.png)
Machine Learning (2018-2019)
I worked on the preparation and exploration phases of the Vianai Company. The goal was to understand the current machine learning trends, and also to create some AI application prototypes. I worked closely with Dr. Vishal Sikka. After the company was officially launched, I continued to work as a contractor at Vianai. I contributed to the demo that Vishal and Dan Amelang showed at the Oracle Open World event.
![](./croquet.png)
JavaScript version of Croquet (2017-)
When Y Combinator Research could no longer support our research activity, David Smith and some of my colleagues, including Dan Ingalls, Vanessa Freudenberg and Aran Lunzer, formed a startup. The main goal was to have real time collaboration technology going on the web. The fundamental algorithm had been devised years earlier by the original Croquet group. We reimplemented the algorithm in JavaScript, and created an SDK so that a real-time collaborative application could be created easily.
While the SDK provides a good foundation, making a larger application needs higher-level abstraction, especially when the application requires dynamic DOM manipulation and scripting. I designed and created a virtual DOM based application framework (with help from colleagues, certainly). I also have been developing a shared space application called Greenlight (formerly known as Croquet Q).
We are working on a 3D collaborative environment called Croquet Microverse from the end of 2021. Microverse is a space where users can create their own interactive and collaborative spaces together and from within the running system itself.
![](./mieco.png)
Mozilla Internet Ecosystem (2022-)
I was accepted into the Mozilla Internet Ecosystem (MIECO) Program. The program supports individuals who are doing work in the area of bringing people together on internet to foster creation and collaboration. My work on Croquet and other things fortunately caught the funders' eyes. The website is "future" .mozilla.org so you can tell that Mozilla thinks this is an important initiative.
Books and Other Documents
![](./powerful-ideas.png)
Japanese translation of “Powerful Ideas in the Classroom” (2005)
I helped publish the Japanese translation of “Powerful Ideas in the Classroom” by B. J. Allen Conn and Kim Rose. This is a book on Squeak Etoys and it focuses on the powerful ideas that an interactive computing environment like Etoys can teach. The main theme is that using technology can allow children to more easily understand gravity by representing it in a discrete differential form, and with help from a computer, they can actually interact with it.
![](./inventive-minds.jpeg)
Japanese translation of “Inventive Minds” (2020)
I was involved in the original project of “Inventive Minds”, which I later translated into Japanese. The book is a compilation of essays by Marvin Minsky, and each essay is accompanied by an article written by Marvin's friends and collaborators. Alan wrote an elaborate essay that he wanted to have dynamic interactive programming elements. The paper version of the book cannot contain it, obviously, but with John Maloney, we created the “active essay” version of Alan's article. My long time friend Mr. Kazuhiro Abe connected O'Reilly Japan to me, and I agreed to take on the translation work.
![](./intelligent-archive.png)
Viewpoints Intelligent Archive (2018-)
I am interested in the history of computing. Viewpoints Research Institute had over one thousand videotapes from the 70's and on. Many of those tapes are Alan Kay's talks, but they also include internal meetings of Apple ATG and Walt Disney Imagineering, etc. I have digitized (and wtched) all tapes and archived it. Some of those movies are uploaded to my channel on YouTube. I maintain a web site called Viewpoints Intelligent Archive. that lists available movies of talks by Alan, and papers by Alan and other Viewpoints folks, including myself.
Academic Activities
I have published and presented papers at international and domestic conferences and workshops. I have also served as a program committee for various conferences.
It is sufficient to put a link to my Google Scholar page. Some papers I authored or co-authored are referenced quite often. Most of my papers are also available at the Viewpoints Intelligent Archive.
Starting in August 2022, I got a visiting professorship at Shizuoka University Graduate School. I am grateful of the support from people who made this happen, and looking for opportunities this brings.
Here is the (partial) list of conferences and workshops where was a member of the program committee. The C5 conferences were “ours” in the sense that Viewpoints was organizing them. But others invited me to join because I think I tend to provide detailed reviews with technical and historical contexts that are different from what typical reviewers provide. (While making this list, it appears that I have been more reviewing recently and less writing my own.)
- The 6th International Conference on Creating, Connecting and Collaborating through Computing (2008)
- The 7th International Conference on Creating, Connecting and Collaborating through Computing (2009)
- The 8th International Conference on Creating, Connecting and Collaborating through Computing (2010)
- The 9th International Conference on Creating, Connecting and Collaborating through Computing (2011)
- The 10th International Conference on Creating, Connecting and Collaborating through Computing (2012)
- 3rd International Workshop on Programming based on Actors, Agents, and Decentralized Control 2013
- Onward! Conference 2013
- Future of Programming Workshop 2015
- 8th Workshop on Dynamic Languages and Applications 2014
- 1st International Constrained and Reactive Objects Workshop 2016
- 3th Workshop on Reactive and Event-based Languages & Systems 2017
- International Workshop on Smalltalk Technologies 2016
- Programming Experience Workshop 2016
- The 22nd International Conference on Distributed Multimedia Systems 2016
- Programming Experience Workshop 2017
- International Workshop on Smalltalk Technologies 2017
- 4th Workshop on Reactive and Event-based Languages & Systems 2017
- Blocks and Beyond: 2nd Workshop on Lessons and Directions for First Programming Environments 2017
- Programming Experience Workshop 2017.2
- Programming Experience Workshop 2018
- 5th Workshop on Reactive and Event-based Languages & Systems 2018
- Programming Experience Workshop 2019
- Blocks and Beyond 2019: Beyond Blocks
- 6th Workshop on Reactive and Event-based Languages & Systems 2019
- Programming Experience Workshop 2020
- Symposium on Visual Languages and Human-Centric Computing 2020
- Onward! Conference 2020
- 7th Workshop on Reactive and Event-based Languages & Systems 2020
- Programming Experience Workshop 2021
- 8th Workshop on Reactive and Event-based Languages & Systems 2021
- Programming Experience Workshop 2022
- Workshop on Functional Art, Music, Modelling and Design (FARM 2022)
- Reactive and Event-based Languages & Systems 2022
- Programming Experience Workshop 2023
- Workshop on Functional Art, Music, Modelling and Design (FARM 2023)
- Programming Experience Workshop 2024
Other Work
I serve as an advisor for the Kyoto Text Lab Company since September 2021. I write a monthly essay series on their website that discusses a history of computing.
Education
I received the following degrees.
- BSc from Department of Information Science at Tokyo Institute of Technology (1994)
- MSc from Department of Mathematical and Computing Sciences at Tokyo Institute of Technology. Project: Developing a concurrent programming language with nested transactions (1996)
- Ph.D from Department of Mathematical and Computing Sciences at Tokyo Institute of Technology. Project: Designing and developing an end-user programming environment for constructing massively parallel programs (2006).
As you can see, these are all from the same college, and actually from the same advisor. (It is common in Japan). I was enrolled in the Ph.D course after I finished my masters degree, but I took a leave of absence during the course. Japanese universities have a system where a person has enough to show, they can still award a Ph.D. to an applicant. I took advantage of it and got my degree on a topic that was different from what I would have done if I had stayed.
Employment
Here are my past and current employers and the title of the position. It may appear that I am changing my job often, but that is not the case — Viewpoints Research Institute, SAP Labs, and Y Combinator Research are basically the same group but sponsored by different benefactors, grants and companies. The core group stayed together to achieve the same goal.
- Computer Scientist at Croquet Corporation (2018 to present)
- Principal Investigator at Human Advancement Research Community (HARC), Y Combinator Research (2016 - 2017)
- Principal Investigator at Communications Design Group, SAP Labs (2014 - 2016)
- Researcher at Viewpoints Research Institute (2007 - 2014)
- Software Researcher and Developer at Twin Sun, Inc. (2002 - 2006)
- Intern and Technical Staff Member at Walt Disney Imagineering R&D (2000 - 2002)
I also took part time jobs at companies such as Vianai and another book translation project, etc.
Other Interests and Activities
I have played various sports, but volleyball was the most serious one. I played from middle school until my kids got in the way. I played for the college varsity team — even though it was a geek's tech college, it was quite competitive.
I am an assistant coach for a U-15 soccer team. I watch a lot of soccer games, but don't have real experience.
I teach a STEM class for high school students at a Japanese Saturday school in Los Angeles. I pick a topic from a wide variety of fields, and often try to use interactive computer-based explanations.
I am on Twitter and I write something about once a week or so. Around 2019, I was writing an answer a day or so on Quora but my rate of contribution is much lower in 2020. I have a hatena blog. I used to update it daily, but now it is mostly dormant.