Lingyi Zhou
Portfolio Website
All My Works
I believe my strong interest in developing for better productivity is a guiding force in all my work. Explore my complete portfolio to see how I combine technical expertise with creative problem-solving across all disciplines.
Full Stack Engineer
I have hands-on experience building online games, AR experiences, web apps, and mobile apps. Throughout my career—especially at Snapchat and Moviebill—I've developed numerous internal tools that streamlined development and accelerated creative workflows.
Game Developer
I'm passionate about designing unique mechanics and interactions. From indie narrative games to physics-based prototypes, I've built games that explore both emotional storytelling and technical creativity.
3D Designer
I'm experienced in both industrial design for custom 3D-printed parts that solve real-life problems, and digital modeling for game assets.
Graphic Designer
I'm experienced in designing exhibition materials, marketing collateral, packaging, and more.
XR Developer
I create immersive AR and VR experiences that push the boundaries of interactive technology, combining my full-stack development skills with cutting-edge spatial computing.

Ping Pong Game (2021)

I've been playing ping pong for over 20 years, including nearly a decade competing in professional leagues in China. This game project is a tribute to that journey. The gameplay is simple—click to serve and control your paddle with your mouse. The capsule shows your hitting area. If the ball hits inside the capsule, it will return. Easy to play, but full of technical depth.

Tech Stack

  • Engine: No Game Engine
  • Languages: JavaScript
  • Features: 3D to 2D projection, custom physics, modular architecture, build-from-sketch game asset management like Unity engine

Core Features

  • 3D to 2D Projection without WebGL
  • Custom Capsule Collider for Ping Pong Hit Detection
  • Modular Class-Based Engine Architecture
  • Unity-style Scene Manager in pure p5js JavaScript
  • Sound Effects for Real-Time Feedback

Challenges


This entire project was built from scratch with no game engine, no external libraries, and no AI assistance. Every line of code—from the physics system to the collision detection—was written by hand using pure JavaScript and HTML5 Canvas.

I managed the entire project with clean, modular code architecture, proving that complex game mechanics can be implemented without relying on frameworks or automated tools.
   

<<Play the Game Here


Play Tips

  • Click to serve the ball
  • Control the paddle using your mouse
  • The capsule shows your hit area—try to intercept the ball inside it

Personal Connection

I also won a championship at Columbia's ping pong tournament, which makes this project feel even more personal. It represents not just a technical challenge but a core part of my identity.

Technical Implementation

The biggest technical challenge was organizing the game logic. Initially, everything was in one file, making it hard to maintain or add new features. I spent two days refactoring the codebase into a modular structure that mirrors how Unity handles game scenes.

I implemented my own basic physics system, including velocity and collision response, using simple vector math. The custom capsule collider was built from scratch based on prior experience writing shaders and raymarching capsules.


Development Process


This project taught me the importance of clean structure, scene transitions, and scalable code. It was also my first time using JavaScript classes so extensively—something that paid off by the end.

Thanks to my background in Unity, I already had a sense of how game engines should work. This project pushed me to build that from the ground up in JavaScript, without relying on libraries or WebGL.

      *Video: First iteration of playing against a wall.     
Iteration 2: Added color and an computer opponent to play againtStrike is added to control the direction of the ball, and I made a sideview debug view on top right to see where the ball is. A strike should hit the ball to return, so a 2d capsule collider is made for the mechanics. Final Version with colors and score tracking.