Hi, I am Wish!

Most of the time, I am a software engineer.

I love music and good time, but what keeps me waking up every day is to create memorable interactive experience for every guest.

Projects

What is a Virtual Film Set?

Introduction

Film cinematography has the function of eliciting emotions from the audience. It influences not only how scripts are written, but also how the director chooses to direct the movie.

To improve one’s skills about cinematography, we believe that practice makes perfect. However, setting up a film set with real props and actors is really expensive and not easily available to most of the novices.

In this virtual film set, a user can act as a director, photographer, or an editor.

Director Mode

The user can decide the number of cameras that should be placed by observing the whole film set from the god’s perspective and the storyboard

Photographer Mode

The user is able to determine where to place the cameras in order to have the desirable framing. We also provided dynamic tracking camera system for the user.

Editor Mode

The user is expected to arrange the story by composing a sequence of shots from the various camera streams.

System Architecture

The system was developed using Unity 3D and runs on HTC VIVE. While operating the virtual film set, a user simply puts on the headset and interacts with the set using the two hand controllers.

The architecture of the virtual film set is composed of three main parts: (1) a navigation component to move around cameras and the monitor, (2) shot management components (right of the figure) including a database, recommendation, and editing functions, (3) the workspace allowing users to take on various filmmaking roles, and export the output as a video.

Contribution

  • Collected shot data from experts and compiled the raw data into specific data type. (.xml)
  • Provided shot recommendation system based on experts’ experiences in virtual film set.
  • Implemented the adaptive assisting learning interface according to the scaffolding theory.
  • Improved the system to decide the reaction of non-player character with the actor using motion capture in the virtual film set.
  • Fixed bugs and cleaned up code in the virtual film set.

Publication

  • C.-H. Kuo, T.-Y. Li, 2019.06, “Camera Shot Recommendation for Virtual Film Set,” in Proc. of 2019 Computer Graphics Workshop, Tao-Yuan.
    (paper in Chinese) [Rewarded The Honorable Mention Award of Computer Graphics Workshop 2019, Taipei ACM SIGGRAPH]
  • Q.-J. Wu, C.-H. Kuo, H.-Y. Wu, T.-Y. Li, 2020.03, “Designing an Adaptive Assisting Interface for Learning Virtual Filmmaking,” in Proc. of EUROGRAPHICS 9th Workshop on Cinematography and Editing, virtual. (paper)
    Full presentation on the virtual conference: [Link to Youtube] start from 18:30

Introduction

Here are several small games created on the course: Computer Game Programming (15-466/15-666) at CMU. Those games were fully implemented by C++, featuring OpenGL.

Chunk

Author  

Thomas Wrabetz, Hao Chen, Liang-Yen Chou, Chih-Hsuan (Wish) Kuo

Project link

https://wishkuo.itch.io/chunk

Design

You are a six legged housekeeping robot, and there are some drunk people either standing or lying on the ground. Try to throw all of the drunk people into the trash bins!

Tank World (Multiplayer)

Author  

Leo Chou, Wish Kuo

Source code

https://github.com/WishKuo/Eating-in-Orderhttps://github.com/WishKuo/Tank-Worlds

Design

It's a battle field for multiplayers(two for now) to control the tanks and fight against each others.

Networking

There are 1 server and 2 clients (Player01 / Player02) in this game. Each time when a state change, for example, any control keys down or up, the package will be sent from the client to the server. Each package contains an identifier ('b' for keyboard event, and 'f' for being hit event) and the content. A 'b' package contains keyboard status and counters, while a 'f' package contains current score for both players.

After the client sends the msg to the server, it will reply a package recording all the game status, including keyboard status, event counters, current score for both players.

Eating in Order

Author  

Wish Kuo

Source code

https://github.com/WishKuo/Eating-in-Order

Design

You are attending a big eater! However, while approaching to the end of the game, you are required to finish the last four dishes in order.

Rabbit in the Cave

Author

Leo Chou, Wish Kuo, Wizard Hsu

Source code

https://github.com/WishKuo/Rabbit-in-the-Cave

Design

I'm so hungry, let me eat all the carrots!

How The Asset Pipeline Works

Built from asset_generation.cpp. Read ast_list.txt to process .png files in the list. PNG files will be converted to .asset files. During gameplay, the game loads .asset files to process tiles and palette via PPU.

Explore -- walking simulator

Author

Wish Kuo

Source code

https://github.com/WishKuo/Explore----walking-simulator

Design

Just walk and explore the world.

ColorPong!

Author

Wish Kuo

Source code

https://github.com/WishKuo/ColorPong-

Design

Try to hit rectangles with the ball in the same color, the color of the ball will change after each time it hits the rectangles.

Introduction

Lyraflo is a student pitch project at the Carnegie Mellon University’s Entertainment Technology Center (ETC) discovering how interactions, visualizations, and gameplay can be used to convey music theory concepts in virtual reality.

Project website: https://projects.etc.cmu.edu/lyraflo/

Interaction Examples

Slingshot

The user can grab the note and hear the pitch at the same time, and then release the note by release the trigger on the controller.

The slingshot is designed as a C major scale, therefore, the user can get a sense of how does a scale sound like.

Accordion

The accordion is implemented through Bezier curve. The user can interact with the accordion by horizontal squeezing and stretching.

Accordion (Pump)

The user is able to pump the correct note into the air pipe by the accordion.

Trailer

Introduction

The Vlight project is to create an edge-native AR game by integrating innovative technologies including AR, AI, and edge computing and carry out data analysis to benchmark the performance of the game.

Project website: https://projects.etc.cmu.edu/v-light/

Introduction

Building Virtual Worlds (BVW) is a course from Carnegie Mellon University. It challenges students to work quickly, creatively and collaboratively. Using rapid prototyping and communication across roles to complete sprints within a tight time frame.

BVW gives small teams of students, 5 team members (2 programmers, 2 artists, 1 sound designer), two weeks to create a virtual world, with new groups and goals for each round. It all culminates in a public festival to hundreds of spectators.