Microsoft MakeCode KAMEN

Microsoft MakeCode KAMEN

Programmable Augmented Reality




My Role

Software Engineer
UX Engineer


Experience Design Web Development


Cornell CIS &
Microsoft Research

Project Time

Aug - Dec 2017





Code Repository


Live Version







My Journey with MSR MakeCode Team

In cooperation with Cornell CIS MPS Program, Microsoft Research (Redmond) MakeCode Team proposed this project of building customized coding environment with Microsoft MakeCode. The ultimate project goal is to build a programming platform that allows people with very few programming experience building JavaScript applications. 

During this semester-long project, we worked in a group of three, lead by Tom Ball and Jonathan Peli de Halleux from MakeCode Team to build this application. 

The project is presented during Cornell MPS 2017 Fall Project Showcase & Cornell 2018 Engineering Project Showcase. The project is being published in Microsoft MakeCode Labs. It can be accessed here.



Goal: Effortless AR Coding Environment




AR apps such as SNOW, Snapchat, and the newly released Apple Animoji are very popular amongst people. With such an trend in AR technology, Microsoft Research want to promote the idea of programming with AR technology on its MakeCode platform. We then launch the project with three high level goals:

  • People with few programming experience can enjoy building AR application

  • It stimulates people's interests in programming

  • It improves people's skills in programming


About MakeCode

Microsoft MakeCode is a free, open source platform for creating engaging computer science learning experiences that support a progression path into real-world programming. The vision is to "Combine the magic of making with the power of code across a variety of different products".



The Users

Microsoft MakeCode is designed for educational use mainly, the major user of the platform would be people with very few, or even none programming experiences. We would be encounter users from people who just get started learning programming by their own. However, they want to use the code to create something.


Check out the case study of Lufkin Independent School.




As the AR development community continues to thrive, there are many great projects that allow people to build AR applications without starting from scratch. However, for beginners, building such an AR app can still be very difficult: 

"What makes an enjoyable AR programming experience?"

To answer this question, we must thinking from a user's perspective.



Break down

1. Language Semantics: How might we ease the learning curve of Javascript?



2. Overly-complicated function blocks: How might we reduce the confusion in understand the usage of each function blocks?

hmw 02.png



3. No fun in learning: How might we induce people's interests in AR programming?




The name "KAMEN" comes from the Japanese word 仮面 (reads kamen), which stands for facial masks. The word is usually used with super heroes who always wear masks when bringing people justice. We hope our users could build their own KAMEN hero within our application.







The effortless way of Programming

MakeCode provides the user a way to build applications by constructing visual blocks of functions. In such a way. The user does not need to know details of JavaScript semantics in order to complete a program.

Aside from that. Visual blocks also give a better view of the flow of the program. Thus, it is easy to interpret the purpose of the code even for non-programmers. 


"Make me Ironman!" - Here you go

The users can explore the full function of augmented reality in an drag-and-drop. By dragging the function block into the code playground, they can see feedback from the webcam instantly.


Advanced Features for Advanced Users

When the users are more comfortable with programming with JavaScript, they could explore the full power of KAMEN by playing functions in advanced modules.